wip (#280)
This commit is contained in:
parent
1dbdd8c707
commit
4a88933eb2
@ -9,8 +9,8 @@ class NSystemTrayIcon : public QSystemTrayIcon, public EventWidget {
|
||||
Q_OBJECT
|
||||
EVENTWIDGET_IMPLEMENTATIONS(QSystemTrayIcon)
|
||||
public:
|
||||
using QSystemTrayIcon::QSystemTrayIcon; // inherit all constructors of
|
||||
// QSystemTrayIcon
|
||||
// inherit all constructors of QSystemTrayIcon
|
||||
using QSystemTrayIcon::QSystemTrayIcon;
|
||||
void connectWidgetSignalsToEventEmitter() {
|
||||
QObject::connect(this, &QSystemTrayIcon::activated, [=](int reason) {
|
||||
Napi::Env env = this->emitOnNode.Env();
|
||||
|
||||
@ -24,6 +24,7 @@ class QSystemTrayIconWrap : public Napi::ObjectWrap<QSystemTrayIconWrap> {
|
||||
Napi::Value isVisible(const Napi::CallbackInfo& info);
|
||||
Napi::Value setToolTip(const Napi::CallbackInfo& info);
|
||||
Napi::Value setContextMenu(const Napi::CallbackInfo& info);
|
||||
Napi::Value showMessage(const Napi::CallbackInfo& info);
|
||||
|
||||
EVENTWIDGET_WRAPPED_METHODS_DECLARATION
|
||||
};
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
#include "QtWidgets/QSystemTrayIcon/qsystemtrayicon_wrap.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QWidget>
|
||||
#include <iostream>
|
||||
|
||||
#include "Extras/Utils/nutils.h"
|
||||
#include "QtGui/QIcon/qicon_wrap.h"
|
||||
#include "QtWidgets/QMenu/qmenu_wrap.h"
|
||||
#include "QtWidgets/QWidget/qwidget_wrap.h"
|
||||
|
||||
@ -20,6 +21,7 @@ Napi::Object QSystemTrayIconWrap::init(Napi::Env env, Napi::Object exports) {
|
||||
InstanceMethod("isVisible", &QSystemTrayIconWrap::isVisible),
|
||||
InstanceMethod("setToolTip", &QSystemTrayIconWrap::setToolTip),
|
||||
InstanceMethod("setContextMenu", &QSystemTrayIconWrap::setContextMenu),
|
||||
InstanceMethod("showMessage", &QSystemTrayIconWrap::showMessage),
|
||||
EVENTWIDGET_WRAPPED_METHODS_EXPORT_DEFINE(QSystemTrayIconWrap)});
|
||||
constructor = Napi::Persistent(func);
|
||||
exports.Set(CLASSNAME, func);
|
||||
@ -107,4 +109,20 @@ Napi::Value QSystemTrayIconWrap::setContextMenu(
|
||||
QMenuWrap* menuWrap = Napi::ObjectWrap<QMenuWrap>::Unwrap(menuObject);
|
||||
this->instance->setContextMenu(menuWrap->getInternalInstance());
|
||||
return env.Null();
|
||||
}
|
||||
|
||||
Napi::Value QSystemTrayIconWrap::showMessage(const Napi::CallbackInfo& info) {
|
||||
Napi::Env env = info.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
Napi::String title = info[0].As<Napi::String>();
|
||||
Napi::String message = info[1].As<Napi::String>();
|
||||
Napi::Object iconObject = info[2].As<Napi::Object>();
|
||||
QIconWrap* iconWrap = Napi::ObjectWrap<QIconWrap>::Unwrap(iconObject);
|
||||
Napi::Number millis = info[3].As<Napi::Number>();
|
||||
QString msgTitle = QString::fromUtf8(title.Utf8Value().c_str());
|
||||
QString msgMessage = QString::fromUtf8(message.Utf8Value().c_str());
|
||||
this->instance->showMessage(msgTitle, msgMessage,
|
||||
*iconWrap->getInternalInstance(),
|
||||
millis.Int32Value());
|
||||
return env.Null();
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
import { FlexLayout, QMainWindow, QTreeWidget, QTreeWidgetItem, QWidget } from './index';
|
||||
import { QMainWindow, QTreeWidget, QTreeWidgetItem, QSystemTrayIcon, QIcon, QWidget, FlexLayout } from './index';
|
||||
|
||||
const win = new QMainWindow();
|
||||
const center = new QWidget();
|
||||
@ -29,4 +29,10 @@ center.layout?.addWidget(tree);
|
||||
win.setCentralWidget(center);
|
||||
win.show();
|
||||
|
||||
const systray = new QSystemTrayIcon();
|
||||
systray.setIcon(new QIcon());
|
||||
systray.show();
|
||||
systray.showMessage('Hello', 'world');
|
||||
|
||||
(global as any).win = win;
|
||||
(global as any).systray = systray;
|
||||
|
||||
@ -37,6 +37,9 @@ export class QSystemTrayIcon extends NodeObject {
|
||||
hide(): void {
|
||||
this.native.hide();
|
||||
}
|
||||
showMessage(title = '', message = '', icon: QIcon = new QIcon(), millisecondsTimeoutHint = 10000): void {
|
||||
this.native.showMessage(title, message, icon.native, millisecondsTimeoutHint);
|
||||
}
|
||||
setIcon(icon: QIcon): void {
|
||||
this.native.setIcon(icon.native);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user