nodeguy/src/lib/core/FlexLayout/index.ts
2019-07-09 21:22:09 +02:00

26 lines
967 B
TypeScript

import addon from "../addon";
import { NodeWidget } from "../../QtGui/QWidget";
import { NodeLayout } from "../../QtWidgets/QLayout";
import { FlexNode } from "../YogaWidget";
import { NativeElement } from "../Component";
export class FlexLayout extends NodeLayout {
native: NativeElement = new addon.FlexLayout();
protected flexNode?: FlexNode;
addWidget = (childWidget: NodeWidget, childFlexNode?: FlexNode) => {
const childYogaNode = childFlexNode || childWidget.getFlexNode();
this.children.add(childWidget);
this.native.addWidget(childWidget.native, childYogaNode);
};
removeWidget = (childWidget: NodeWidget, childFlexNode?: FlexNode) => {
const childYogaNode = childFlexNode || childWidget.getFlexNode();
this.native.removeWidget(childWidget.native, childYogaNode);
this.children.delete(childWidget);
};
setFlexNode = (flexNode: FlexNode) => {
this.flexNode = flexNode;
this.native.setFlexNode(flexNode);
};
}