diff --git a/config/common.cmake b/config/common.cmake
index 5d68d9155..cbacf7519 100644
--- a/config/common.cmake
+++ b/config/common.cmake
@@ -5,7 +5,7 @@ if(CCACHE_PROGRAM)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
endif()
-set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "Minimum OS X deployment version")
+set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13" CACHE STRING "Minimum OS X deployment version")
function(AddCommonConfig addonName)
target_compile_features(${addonName} PRIVATE
diff --git a/src/cpp/lib/QtWidgets/QScrollArea/qscrollarea_wrap.cpp b/src/cpp/lib/QtWidgets/QScrollArea/qscrollarea_wrap.cpp
index 512df7b13..40d74d2bb 100644
--- a/src/cpp/lib/QtWidgets/QScrollArea/qscrollarea_wrap.cpp
+++ b/src/cpp/lib/QtWidgets/QScrollArea/qscrollarea_wrap.cpp
@@ -51,7 +51,7 @@ QScrollAreaWrap::QScrollAreaWrap(const Napi::CallbackInfo& info)
this->rawData = extrautils::configureQWidget(
this->getInternalInstance(), this->getInternalInstance()->getFlexNode(),
- true);
+ false);
}
Napi::Value QScrollAreaWrap::ensureVisible(const Napi::CallbackInfo& info) {
diff --git a/src/demo.ts b/src/demo.ts
index 0b0e9fd43..fcb97f8b6 100644
--- a/src/demo.ts
+++ b/src/demo.ts
@@ -1,118 +1,69 @@
import { QMainWindow, QWidget } from '.';
-import { QGridLayout } from './lib/QtWidgets/QGridLayout';
import { QLabel } from './lib/QtWidgets/QLabel';
-import { QTreeWidget } from './lib/QtWidgets/QTreeWidget';
-import { QTreeWidgetItem } from './lib/QtWidgets/QTreeWidgetItem';
-import { QIcon } from './lib/QtGui/QIcon';
-import { QDesktopWidget } from './lib/QtWidgets/QDesktopWidget';
-import { QApplication } from './lib/QtGui/QApplication';
+import { QScrollArea } from './lib/QtWidgets/QScrollArea';
+import { FlexLayout } from './lib/core/FlexLayout';
+import { WidgetEventTypes } from './lib/core/EventWidget';
+import { SizeConstraint } from './lib/QtWidgets/QLayout';
const win = new QMainWindow();
win.resize(500, 500);
-
-// ex 1
-const desktop = new QDesktopWidget();
-const availableGeometry = desktop.availableGeometry();
-const screenGeometry = desktop.screenGeometry();
-console.log(availableGeometry.width() + 'x' + availableGeometry.height());
-console.log(screenGeometry.width() + 'x' + screenGeometry.height());
-console.log(desktop.screenNumber());
-// ex 2
-const qApp = QApplication.desktop();
-const availableGeometry2 = qApp.availableGeometry();
-const screenGeometry2 = qApp.screenGeometry();
-console.log(availableGeometry2.width() + 'x' + availableGeometry2.height());
-console.log(screenGeometry2.width() + 'x' + screenGeometry2.height());
-console.log(qApp.screenNumber());
+win.setObjectName('win');
const outer = new QWidget();
-const outerLayout = new QGridLayout();
-outer.setLayout(outerLayout);
-outer.setInlineStyle('background-color: red');
-console.log(outerLayout.rowCount(), outerLayout.columnCount());
-outerLayout.setColumnStretch(0, 2);
-outerLayout.setRowStretch(1, 2);
-outerLayout.setColumnMinimumWidth(1, 200);
-outerLayout.setRowMinimumHeight(0, 100);
-outerLayout.setHorizontalSpacing(20);
-outerLayout.setVerticalSpacing(50);
+outer.setObjectName('outer');
+outer.setInlineStyle(`border: 2px solid pink;`);
+const scrollArea = new QScrollArea();
+scrollArea.setObjectName('scrollArea');
+outer.setLayout(new FlexLayout());
-console.log(outerLayout.columnStretch(0), outerLayout.columnStretch(1));
-console.log(outerLayout.rowMinimumHeight(0), outerLayout.rowMinimumHeight(1));
-console.log(outerLayout.verticalSpacing(), outerLayout.horizontalSpacing());
+scrollArea.setInlineStyle(`flex: 1; min-height:0; align-self:'stretch';border: 2px solid green;`);
+const sview = new QWidget();
+sview.setObjectName('sview');
+sview.setLayout(new FlexLayout());
+sview.setInlineStyle(`border:2px solid yellow; min-width: 100%;`);
-const columnOne = new QLabel();
-columnOne.setText('One');
-columnOne.setInlineStyle('background-color: blue');
-outerLayout.addWidget(columnOne, 0, 0);
-
-const columnTwo = new QLabel();
-columnTwo.setText('Two');
-columnTwo.setInlineStyle('background-color: green');
-outerLayout.addWidget(columnTwo, 0, 1);
-
-const columnThree = new QLabel();
-columnThree.setText('Three');
-columnThree.setInlineStyle('background-color: yellow');
-outerLayout.addWidget(columnThree, 1, 0);
-
-const columnFour = new QLabel();
-columnFour.setText('Four');
-columnFour.setInlineStyle('background-color: orange');
-outerLayout.addWidget(columnFour, 1, 1);
-
-const tree = new QTreeWidget();
-tree.setColumnCount(2);
-tree.setHeaderLabels(['First Column', 'Second Column']);
-tree.setSortingEnabled(true);
-tree.setInlineStyle('font-size: 24px');
-outerLayout.addWidget(tree, 2, 0, 2, 0);
-
-console.log(outerLayout.rowCount(), outerLayout.columnCount());
-
-const myImage = './website/static/img/logo.png';
-const icon = new QIcon(myImage);
-
-const item1 = new QTreeWidgetItem();
-item1.setText(0, `item-1`);
-item1.setText(1, `1-item-1`);
-item1.setIcon(1, icon);
-const item2 = new QTreeWidgetItem();
-item2.setText(0, `item-2`);
-item2.setText(1, `1-item-2`);
-item2.setIcon(1, icon);
-const item3 = new QTreeWidgetItem();
-item3.setText(0, `item-3`);
-item3.setText(1, `1-item-3`);
-item3.setIcon(1, icon);
-const item4 = new QTreeWidgetItem();
-item4.setText(0, `item-4`);
-item4.setText(1, `1-item-4`);
-item4.setIcon(1, icon);
-const item5 = new QTreeWidgetItem();
-item5.setText(0, `item-5`);
-item5.setText(1, `1-item-5`);
-item5.setIcon(1, icon);
-const item6 = new QTreeWidgetItem();
-item6.setText(0, `item-6`);
-item6.setText(1, `1-item-6`);
-item6.setIcon(1, icon);
-
-console.info('item6.icon()=', item6.icon(1));
-
-tree.addTopLevelItem(item1);
-tree.insertTopLevelItems(0, [item2, item3]);
-tree.addTopLevelItems([item4, item5]);
-tree.insertTopLevelItem(2, item6);
-
-// Add children to item1
-const c1item1 = new QTreeWidgetItem(item1);
-c1item1.setText(0, `c1item1`);
-c1item1.setText(1, `c1item2`);
-const c1item2 = new QTreeWidgetItem(item1);
-c1item2.setText(0, `c1item1`);
-c1item2.setText(1, `c1item2`);
+const textView = new QLabel();
+textView.setObjectName('textView');
+textView.setText(`
+a
+a
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+a
+a
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+a
+a
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+a
+a
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+a
+a
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+a
+a
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+a
+a
+`);
+sview.layout?.addWidget(textView);
+scrollArea.setWidget(sview);
+outer.layout?.addWidget(scrollArea);
+outer.addEventListener(WidgetEventTypes.Resize, () => {
+ // console.log('scrollarea min +' + scrollArea.minimumSize().width(), 'X', scrollArea.minimumSize().height());
+ // console.log('scrollarea size +' + scrollArea.size().width(), 'X', scrollArea.size().height());
+});
win.setCentralWidget(outer);
win.show();
(global as any).win = win;
+
+//
+//
+//
+//
+//
+//
+//
+//
+//
diff --git a/src/lib/QtWidgets/QMainWindow.ts b/src/lib/QtWidgets/QMainWindow.ts
index a8c270f05..fbbd974eb 100644
--- a/src/lib/QtWidgets/QMainWindow.ts
+++ b/src/lib/QtWidgets/QMainWindow.ts
@@ -67,6 +67,7 @@ export class QMainWindow extends NodeWidget {
const centralWidget = this.centralWidget;
this.centralWidget = null;
if (centralWidget) {
+ centralWidget.setFlexNodeSizeControlled(false);
this.native.takeCentralWidget();
return centralWidget;
}
diff --git a/src/lib/QtWidgets/QScrollArea.ts b/src/lib/QtWidgets/QScrollArea.ts
index 07c42666f..347875cd8 100644
--- a/src/lib/QtWidgets/QScrollArea.ts
+++ b/src/lib/QtWidgets/QScrollArea.ts
@@ -42,7 +42,6 @@ export class QScrollArea extends QAbstractScrollArea {
super(native);
this.native = native;
this.setNodeParent(parent);
- this.setWidgetResizable(true);
}
setAlignment(alignment: AlignmentFlag): void {
this.setProperty('alignment', alignment);
@@ -52,9 +51,6 @@ export class QScrollArea extends QAbstractScrollArea {
}
setWidgetResizable(resizable: boolean): void {
this.setProperty('widgetResizable', resizable);
- if (this.contentWidget) {
- this.contentWidget.setFlexNodeSizeControlled(resizable);
- }
}
widgetResizable(): boolean {
return this.property('widgetResizable').toBool();
@@ -68,7 +64,6 @@ export class QScrollArea extends QAbstractScrollArea {
setWidget(widget: NodeWidget): void {
this.contentWidget = widget;
this.native.setWidget(widget.native);
- this.contentWidget.setFlexNodeSizeControlled(this.widgetResizable());
}
widget(): NodeWidget | null {
if (this.contentWidget) {