Merge pull request #50 from Uriziel01/feature/WidgetMoveAndPosition

widget move and position capabilities
This commit is contained in:
Atul R 2019-08-22 21:54:05 +02:00 committed by GitHub
commit 038d567a59
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 59 additions and 0 deletions

View File

@ -90,6 +90,13 @@ Gets the property that holds the widget's style sheet. It calls the native metho
Hides the widget and its children. It calls the native method [QWidget: hide](https://doc.qt.io/qt-5/qwidget.html#hide).
#### `widget.move(x, y)`
Sets the screen position of the widget. It calls the native method [QWidget: move](https://doc.qt.io/qt-5/qwidget.html#move-1).
- `x` number - Pixels.
- `y` number - Pixels.
#### `widget.setObjectName(objectName)`
Sets the object name of the widget in Qt. It calls the native method [QObject: setObjectName](https://doc.qt.io/qt-5/qobject.html#objectName-prop). Object name can be analogous to `id` of an element in the web world. Using the objectName of the widget one can reference it in the Qt's stylesheet much like what we do with id in the web world.
@ -119,6 +126,15 @@ Sets both the minimum and maximum sizes of the widget. It calls the native metho
- `width` number - Pixels.
- `height` number - Pixels.
#### `widget.setGeometry(x, y, width, height)`
Sets the screen position as well as size of the widget. It calls the native method [QWidget: setGeometry](https://doc.qt.io/qt-5/qwidget.html#setGeometry-1).
- `x` number - Pixels.
- `y` number - Pixels.
- `width` number - Pixels.
- `height` number - Pixels.
#### `widget.setMaximumSize(width, height)`
Sets the maximum size of the widget. It calls the native method [QWidget: setMaximumSize](https://doc.qt.io/qt-5/qwidget.html#setMaximumSize-1).
@ -141,6 +157,10 @@ Repaints the widget. It calls the native method [QWidget: repaint](https://doc.q
Updates the widget. It calls the native method [QWidget: update](https://doc.qt.io/qt-5/qwidget.html#update).
#### `widget.pos()`
returns the current widget position. It calls the native method [QWidget: pos](https://doc.qt.io/qt-5/qwidget.html#pos-prop). The returned size object contains x and y coordinates in pixels.
#### `widget.size()`
returns the current widget size. It calls the native method [QWidget: size](https://doc.qt.io/qt-5/qwidget.html#size-prop). The returned size object contains width and height in pixels.

View File

@ -69,6 +69,14 @@ Napi::Value hide(const Napi::CallbackInfo& info) { \
this->instance->hide(); \
return env.Null(); \
} \
Napi::Value move(const Napi::CallbackInfo& info){ \
Napi::Env env = info.Env(); \
Napi::HandleScope scope(env); \
int x = info[0].As<Napi::Number>().Int32Value(); \
int y = info[1].As<Napi::Number>().Int32Value(); \
this->instance->move(x, y); \
return env.Null(); \
} \
\
Napi::Value setObjectName(const Napi::CallbackInfo& info){ \
Napi::Env env = info.Env(); \
@ -105,6 +113,16 @@ Napi::Value setFixedSize(const Napi::CallbackInfo& info){ \
this->instance->setFixedSize(width, height); \
return env.Null(); \
} \
Napi::Value setGeometry(const Napi::CallbackInfo& info){ \
Napi::Env env = info.Env(); \
Napi::HandleScope scope(env); \
int x = info[0].As<Napi::Number>().Int32Value(); \
int y = info[1].As<Napi::Number>().Int32Value(); \
int width = info[2].As<Napi::Number>().Int32Value(); \
int height = info[3].As<Napi::Number>().Int32Value(); \
this->instance->setGeometry(x, y, width, height); \
return env.Null(); \
} \
Napi::Value setMaximumSize(const Napi::CallbackInfo& info){ \
Napi::Env env = info.Env(); \
Napi::HandleScope scope(env); \
@ -139,6 +157,15 @@ Napi::Value updateGeometry(const Napi::CallbackInfo& info){ \
this->instance->updateGeometry(); \
return env.Null(); \
} \
Napi::Value pos(const Napi::CallbackInfo& info){ \
Napi::Env env = info.Env(); \
Napi::HandleScope scope(env); \
QPoint pos = this->instance->pos(); \
Napi::Object posObj = Napi::Object::New(env); \
posObj.Set("x", pos.x()); \
posObj.Set("y", pos.y()); \
return posObj; \
} \
Napi::Value size(const Napi::CallbackInfo& info){ \
Napi::Env env = info.Env(); \
Napi::HandleScope scope(env); \
@ -194,16 +221,19 @@ Napi::Value setWindowFlag(const Napi::CallbackInfo& info){ \
InstanceMethod("setStyleSheet",&WidgetWrapName::setStyleSheet), \
InstanceMethod("styleSheet",&WidgetWrapName::styleSheet), \
InstanceMethod("hide",&WidgetWrapName::hide), \
InstanceMethod("move",&WidgetWrapName::move), \
InstanceMethod("setObjectName",&WidgetWrapName::setObjectName), \
InstanceMethod("objectName",&WidgetWrapName::objectName), \
InstanceMethod("setMouseTracking",&WidgetWrapName::setMouseTracking), \
InstanceMethod("setEnabled",&WidgetWrapName::setEnabled), \
InstanceMethod("setFixedSize",&WidgetWrapName::setFixedSize), \
InstanceMethod("setGeometry",&WidgetWrapName::setGeometry), \
InstanceMethod("setMaximumSize",&WidgetWrapName::setMaximumSize), \
InstanceMethod("setMinimumSize",&WidgetWrapName::setMinimumSize), \
InstanceMethod("repaint",&WidgetWrapName::repaint), \
InstanceMethod("update",&WidgetWrapName::update), \
InstanceMethod("updateGeometry",&WidgetWrapName::updateGeometry), \
InstanceMethod("pos",&WidgetWrapName::pos), \
InstanceMethod("size",&WidgetWrapName::size), \
InstanceMethod("setAttribute",&WidgetWrapName::setAttribute), \
InstanceMethod("testAttribute",&WidgetWrapName::testAttribute), \

View File

@ -46,6 +46,9 @@ export abstract class NodeWidget extends EventWidget {
hide = () => {
this.native.hide();
};
move = (x: number, y: number) => {
this.native.move(x, y);
};
setObjectName = (objectName: string) => {
this.native.setObjectName(objectName);
};
@ -61,6 +64,9 @@ export abstract class NodeWidget extends EventWidget {
setFixedSize = (width: number, height: number) => {
this.native.setFixedSize(width, height);
};
setGeometry = (x: number, y: number, w: number, h: number) => {
this.native.setGeometry(x, y, w, h);
};
setMaximumSize = (maxw: number, maxh: number) => {
this.native.setMaximumSize(maxw, maxh);
};
@ -76,6 +82,9 @@ export abstract class NodeWidget extends EventWidget {
updateGeometry = () => {
this.native.updateGeometry();
};
pos = (): { x: number; y: number } => {
return this.native.pos();
};
size = (): { width: number; height: number } => {
return this.native.size();
};