blob: 99438cf4b87cbde46b26fa5b7ed6d0296b687634 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "flutter/lib/ui/text/text_box.h"
#include "flutter/fml/logging.h"
#include "third_party/tonic/dart_class_library.h"
#include "third_party/tonic/dart_state.h"
#include "third_party/tonic/logging/dart_error.h"
using namespace flutter;
namespace tonic {
namespace {
Dart_Handle GetTextBoxType() {
DartClassLibrary& class_library = DartState::Current()->class_library();
Dart_Handle type =
Dart_HandleFromPersistent(class_library.GetClass("ui", "TextBox"));
FML_DCHECK(!LogIfError(type));
return type;
}
} // anonymous namespace
Dart_Handle DartConverter<flutter::TextBox>::ToDart(
const flutter::TextBox& val) {
constexpr int argc = 5;
Dart_Handle argv[argc] = {
tonic::ToDart(val.rect.fLeft),
tonic::ToDart(val.rect.fTop),
tonic::ToDart(val.rect.fRight),
tonic::ToDart(val.rect.fBottom),
tonic::ToDart(static_cast<int>(val.direction)),
};
return Dart_New(GetTextBoxType(), tonic::ToDart("_"), argc, argv);
}
Dart_Handle DartListFactory<flutter::TextBox>::NewList(intptr_t length) {
return Dart_NewListOfType(GetTextBoxType(), length);
}
} // namespace tonic