Add QStyle.polish(), QStyle.unpolish(), and QWidget.style()
This commit is contained in:
parent
44bb1e5f0e
commit
590385339c
@ -20,4 +20,6 @@ class DLL_EXPORT QStyleWrap : public Napi::ObjectWrap<QStyleWrap> {
|
||||
QStyle* getInternalInstance();
|
||||
// Wrapped methods
|
||||
Napi::Value pixelMetric(const Napi::CallbackInfo& info);
|
||||
Napi::Value polish(const Napi::CallbackInfo& info);
|
||||
Napi::Value unpolish(const Napi::CallbackInfo& info);
|
||||
};
|
||||
|
||||
@ -9,6 +9,7 @@
|
||||
#include "QtCore/QSize/qsize_wrap.h"
|
||||
#include "QtGui/QCursor/qcursor_wrap.h"
|
||||
#include "QtGui/QIcon/qicon_wrap.h"
|
||||
#include "QtGui/QStyle/qstyle_wrap.h"
|
||||
#include "QtWidgets/QAction/qaction_wrap.h"
|
||||
#include "QtWidgets/QLayout/qlayout_wrap.h"
|
||||
#include "core/YogaWidget/yogawidget_macro.h"
|
||||
@ -483,6 +484,13 @@
|
||||
int minh = info[0].As<Napi::Number>().Int32Value(); \
|
||||
this->instance->setMinimumHeight(minh); \
|
||||
return env.Null(); \
|
||||
} \
|
||||
Napi::Value style(const Napi::CallbackInfo& info) { \
|
||||
Napi::Env env = info.Env(); \
|
||||
Napi::HandleScope scope(env); \
|
||||
QStyle* style = this->instance->style(); \
|
||||
return QStyleWrap::constructor.New( \
|
||||
{Napi::External<QStyle>::New(env, style)}); \
|
||||
}
|
||||
|
||||
#endif // QWIDGET_WRAPPED_METHODS_DECLARATION
|
||||
@ -551,7 +559,8 @@
|
||||
InstanceMethod("setMaximumHeight", &WidgetWrapName::setMaximumHeight), \
|
||||
InstanceMethod("setMinimumWidth", &WidgetWrapName::setMinimumWidth), \
|
||||
InstanceMethod("setMaximumWidth", &WidgetWrapName::setMaximumWidth), \
|
||||
InstanceMethod("setMinimumHeight", &WidgetWrapName::setMinimumHeight),
|
||||
InstanceMethod("setMinimumHeight", &WidgetWrapName::setMinimumHeight), \
|
||||
InstanceMethod("style", &WidgetWrapName::style),
|
||||
|
||||
#endif // QWIDGET_WRAPPED_METHODS_EXPORT_DEFINE
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
#include "QtGui/QStyle/qstyle_wrap.h"
|
||||
|
||||
#include "Extras/Utils/nutils.h"
|
||||
#include "QtWidgets/QWidget/qwidget_wrap.h"
|
||||
|
||||
Napi::FunctionReference QStyleWrap::constructor;
|
||||
|
||||
@ -10,6 +11,8 @@ Napi::Object QStyleWrap::init(Napi::Env env, Napi::Object exports) {
|
||||
Napi::Function func =
|
||||
DefineClass(env, CLASSNAME,
|
||||
{InstanceMethod("pixelMetric", &QStyleWrap::pixelMetric),
|
||||
InstanceMethod("polish", &QStyleWrap::polish),
|
||||
InstanceMethod("unpolish", &QStyleWrap::unpolish),
|
||||
COMPONENT_WRAPPED_METHODS_EXPORT_DEFINE(QStyleWrap)});
|
||||
constructor = Napi::Persistent(func);
|
||||
exports.Set(CLASSNAME, func);
|
||||
@ -39,3 +42,45 @@ Napi::Value QStyleWrap::pixelMetric(const Napi::CallbackInfo& info) {
|
||||
|
||||
return Napi::Value::From(env, this->instance->pixelMetric(metric));
|
||||
}
|
||||
|
||||
Napi::Value QStyleWrap::polish(const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
Napi::Object qwidgetObject = info[0].As<Napi::Object>();
|
||||
NodeWidgetWrap* qwidgetWrap =
|
||||
Napi::ObjectWrap<NodeWidgetWrap>::Unwrap(qwidgetObject);
|
||||
QWidget* qwidget = qwidgetWrap->getInternalInstance();
|
||||
this->instance->polish(qwidget);
|
||||
return env.Null();
|
||||
}
|
||||
|
||||
Napi::Value QStyleWrap::unpolish(const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
Napi::Object qwidgetObject = info[0].As<Napi::Object>();
|
||||
NodeWidgetWrap* qwidgetWrap =
|
||||
Napi::ObjectWrap<NodeWidgetWrap>::Unwrap(qwidgetObject);
|
||||
QWidget* qwidget = qwidgetWrap->getInternalInstance();
|
||||
this->instance->unpolish(qwidget);
|
||||
return env.Null();
|
||||
}
|
||||
|
||||
/*
|
||||
Napi::Value QStyleWrap::polish(const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
|
||||
QWidget* qwidget = info[0].As<Napi::External<QWidget>>();
|
||||
this->instance->polish(qwidget);
|
||||
return env.Null();
|
||||
}
|
||||
|
||||
Napi::Value QStyleWrap::unpolish(const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
|
||||
QWidget* qwidget = info[0].As<Napi::External<QWidget>>();
|
||||
this->instance->unpolish(qwidget);
|
||||
return env.Null();
|
||||
}
|
||||
*/
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import { NodeWidget } from '../..';
|
||||
import { Component, NativeElement } from '../core/Component';
|
||||
import { checkIfNativeElement } from '../utils/helpers';
|
||||
|
||||
@ -15,6 +16,12 @@ export class QStyle extends Component {
|
||||
pixelMetric(metric: QStylePixelMetric): number {
|
||||
return this.native.pixelMetric(metric);
|
||||
}
|
||||
polish(widget: NodeWidget<any>): void {
|
||||
this.native.polish(widget.native);
|
||||
}
|
||||
unpolish(widget: NodeWidget<any>): void {
|
||||
this.native.unpolish(widget.native);
|
||||
}
|
||||
}
|
||||
|
||||
export enum QStylePixelMetric {
|
||||
|
||||
@ -17,7 +17,7 @@ import { QFont } from '../QtGui/QFont';
|
||||
import { QAction } from './QAction';
|
||||
import memoizeOne from 'memoize-one';
|
||||
import { QGraphicsEffect } from './QGraphicsEffect';
|
||||
import { QSizePolicyPolicy } from '../..';
|
||||
import { QSizePolicyPolicy, QStyle } from '../..';
|
||||
|
||||
/**
|
||||
|
||||
@ -373,6 +373,14 @@ export abstract class NodeWidget<Signals extends QWidgetSignals> extends YogaWid
|
||||
size(): QSize {
|
||||
return new QSize(this.native.size());
|
||||
}
|
||||
// TODO: virtual QSize sizeHint() const
|
||||
// TODO: QSize sizeIncrement() const
|
||||
// TODO: QSizePolicy sizePolicy() const
|
||||
// TODO: void stackUnder(QWidget *w)
|
||||
// TODO: QString statusTip() const
|
||||
style(): QStyle {
|
||||
return new QStyle(this.native.style());
|
||||
}
|
||||
styleSheet(): string {
|
||||
return this.native.styleSheet();
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user