* Added the beginning of QTreeWidget and QTreeWidgetItem * Fixed garbage collection * Fixed garbage collection * Rewrote the constructor for QTreeWidgetItem * Code cleanup * Fixed up the QTreeWidgetItem constructor to accept only a string list of columns. Code cleanup * Add setHeaderHidden to QTreeWidget * Started adding signals to QTreeWidget * Started adding signals to QTreeWidget * Started adding signals to QTreeWidget * Added TreeWidget back to main.cpp * Added more functions to QTreeWidgetItem and QPlainTextEdit * linting and cleanup * parenting fix * Fixes garbage collection for treewidget items
51 lines
1.6 KiB
TypeScript
51 lines
1.6 KiB
TypeScript
import addon from '../utils/addon';
|
|
import { NodeWidget } from './QWidget';
|
|
import { BaseWidgetEvents } from '../core/EventWidget';
|
|
import { NativeElement } from '../core/Component';
|
|
import { QAbstractScrollArea } from './QAbstractScrollArea';
|
|
|
|
export const QScrollAreaEvents = Object.freeze({
|
|
...BaseWidgetEvents,
|
|
});
|
|
export class QScrollArea extends QAbstractScrollArea {
|
|
native: NativeElement;
|
|
contentWidget?: NodeWidget | null;
|
|
constructor(parent?: NodeWidget) {
|
|
let native;
|
|
if (parent) {
|
|
native = new addon.QScrollArea(parent.native);
|
|
} else {
|
|
native = new addon.QScrollArea();
|
|
}
|
|
super(native);
|
|
this.native = native;
|
|
this.setNodeParent(parent);
|
|
this.setWidgetResizable(true);
|
|
}
|
|
setWidget(widget: NodeWidget): void {
|
|
// react:✓, //TODO:getter
|
|
this.contentWidget = widget;
|
|
this.native.setWidget(widget.native);
|
|
this.contentWidget.setFlexNodeSizeControlled(this.widgetResizable());
|
|
}
|
|
takeWidget(): NodeWidget | null {
|
|
// react:✓
|
|
const contentWidget = this.contentWidget;
|
|
this.contentWidget = null;
|
|
if (contentWidget) {
|
|
this.native.takeWidget();
|
|
return contentWidget;
|
|
}
|
|
return null;
|
|
}
|
|
setWidgetResizable(resizable: boolean): void {
|
|
this.native.setWidgetResizable(resizable);
|
|
if (this.contentWidget) {
|
|
this.contentWidget.setFlexNodeSizeControlled(resizable);
|
|
}
|
|
}
|
|
widgetResizable(): boolean {
|
|
return this.native.widgetResizable();
|
|
}
|
|
}
|