This commit is contained in:
Atul R 2019-12-18 20:01:28 +05:30 committed by GitHub
parent 1dbdd8c707
commit 4a88933eb2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 32 additions and 4 deletions

View File

@ -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();

View File

@ -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
};

View File

@ -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();
}

View File

@ -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;

View File

@ -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);
}