flutter: generate more bindings
This commit is contained in:
67
src/flutter/dart/lib/PositionedWidget.dart
Normal file
67
src/flutter/dart/lib/PositionedWidget.dart
Normal file
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
This file is part of KDDockWidgets.
|
||||
|
||||
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||
|
||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||
*/
|
||||
|
||||
import 'package:KDDockWidgets/View_flutter.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class PositionedWidget extends StatefulWidget {
|
||||
final View_flutter kddwView;
|
||||
|
||||
const PositionedWidget(this.kddwView, {Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<PositionedWidget> createState() => _PositionedWidgetState(kddwView);
|
||||
}
|
||||
|
||||
class _PositionedWidgetState extends State<PositionedWidget> {
|
||||
final View_flutter kddwView;
|
||||
int x = 100;
|
||||
int y = 100;
|
||||
int width = 400;
|
||||
int height = 400;
|
||||
|
||||
var childWidgets = <PositionedWidget>[];
|
||||
|
||||
_PositionedWidgetState(this.kddwView) {
|
||||
kddwView.updatePositionCallback = updatePosition;
|
||||
kddwView.updateSizeCallback = updateSize;
|
||||
}
|
||||
|
||||
void updatePosition(int kddwX, int kddwY) {
|
||||
final int kddwX = kddwView.x();
|
||||
final int kddwY = kddwView.y();
|
||||
setState(() {
|
||||
this.x = kddwX;
|
||||
this.y = kddwY;
|
||||
});
|
||||
}
|
||||
|
||||
void updateSize(int kddwWidth, int kddwHeight) {
|
||||
setState(() {
|
||||
height = kddwHeight;
|
||||
width = kddwWidth;
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Positioned(
|
||||
height: height * 1.0,
|
||||
width: width * 1.0,
|
||||
top: y * 1.0,
|
||||
left: x * 1.0,
|
||||
child: Container(
|
||||
color: Colors.red,
|
||||
child: Stack(
|
||||
children: childWidgets,
|
||||
)));
|
||||
}
|
||||
}
|
||||
@@ -25,4 +25,11 @@ class ViewFactory_flutter extends KDDockWidgetBindings.ViewFactory_flutter {
|
||||
print("ViewFactory_flutter: Created DropArea");
|
||||
return da;
|
||||
}
|
||||
|
||||
KDDockWidgetBindings.ClassicIndicatorWindowViewInterface
|
||||
createClassicIndicatorWindow(
|
||||
KDDockWidgetBindings.ClassicIndicators? indicators) {
|
||||
print("ViewFactory_flutter: createClassicIndicatorWindow");
|
||||
return KDDockWidgetBindings.ClassicIndicatorWindowViewInterface();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,11 +9,36 @@
|
||||
Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||
*/
|
||||
|
||||
import 'package:KDDockWidgets/PositionedWidget.dart';
|
||||
import 'package:KDDockWidgetsBindings/Bindings.dart' as KDDockWidgetBindings;
|
||||
|
||||
class View_flutter extends KDDockWidgetBindings.View_flutter {
|
||||
late final PositionedWidget flutterWidget;
|
||||
|
||||
Function(int, int)? updatePositionCallback;
|
||||
Function(int, int)? updateSizeCallback;
|
||||
|
||||
int m_x = 100;
|
||||
int m_y = 100;
|
||||
int m_width = 400;
|
||||
int m_height = 400;
|
||||
|
||||
View_flutter(KDDockWidgetBindings.Controller? controller, int type,
|
||||
KDDockWidgetBindings.View? parent,
|
||||
{int windowFlags = 0})
|
||||
: super(controller, type, parent, windowFlags: windowFlags);
|
||||
: super(controller, type, parent, windowFlags: windowFlags) {
|
||||
flutterWidget = PositionedWidget(this);
|
||||
}
|
||||
|
||||
View_flutter.fromCppPointer(var cppPointer, [var needsAutoDelete = false])
|
||||
: super.fromCppPointer(cppPointer, needsAutoDelete) {}
|
||||
|
||||
setSize_2(int width, int height) {
|
||||
print("View_flutter::setSize called ${width}x${height}");
|
||||
if (m_width != width || m_height != height) {
|
||||
m_height = height;
|
||||
m_width = width;
|
||||
if (updateSizeCallback != null) updateSizeCallback!(width, height);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,10 @@
|
||||
import 'package:KDDockWidgets/Platform_flutter.dart';
|
||||
import 'package:KDDockWidgetsBindings/src/Config.dart' as KDDockWidgetBindings;
|
||||
|
||||
void f(Function(int x, int y)? f) {
|
||||
if (f != null) f(0, 0);
|
||||
}
|
||||
|
||||
void main(List<String> args) {
|
||||
var p = Platform_flutter();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user