diff --git a/src/cpp/include/nodegui/QtWidgets/QSystemTrayIcon/nsystemtrayicon.hpp b/src/cpp/include/nodegui/QtWidgets/QSystemTrayIcon/nsystemtrayicon.hpp index d780a4dd8..f6734dcc1 100644 --- a/src/cpp/include/nodegui/QtWidgets/QSystemTrayIcon/nsystemtrayicon.hpp +++ b/src/cpp/include/nodegui/QtWidgets/QSystemTrayIcon/nsystemtrayicon.hpp @@ -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(); diff --git a/src/cpp/include/nodegui/QtWidgets/QSystemTrayIcon/qsystemtrayicon_wrap.h b/src/cpp/include/nodegui/QtWidgets/QSystemTrayIcon/qsystemtrayicon_wrap.h index d0beddb9c..4d2a4c970 100644 --- a/src/cpp/include/nodegui/QtWidgets/QSystemTrayIcon/qsystemtrayicon_wrap.h +++ b/src/cpp/include/nodegui/QtWidgets/QSystemTrayIcon/qsystemtrayicon_wrap.h @@ -24,6 +24,7 @@ class QSystemTrayIconWrap : public Napi::ObjectWrap { 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 }; diff --git a/src/cpp/lib/QtWidgets/QSystemTrayIcon/qsystemtrayicon_wrap.cpp b/src/cpp/lib/QtWidgets/QSystemTrayIcon/qsystemtrayicon_wrap.cpp index 0ce41d393..b3816c91e 100644 --- a/src/cpp/lib/QtWidgets/QSystemTrayIcon/qsystemtrayicon_wrap.cpp +++ b/src/cpp/lib/QtWidgets/QSystemTrayIcon/qsystemtrayicon_wrap.cpp @@ -1,9 +1,10 @@ #include "QtWidgets/QSystemTrayIcon/qsystemtrayicon_wrap.h" +#include #include -#include #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::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 message = info[1].As(); + Napi::Object iconObject = info[2].As(); + QIconWrap* iconWrap = Napi::ObjectWrap::Unwrap(iconObject); + Napi::Number millis = info[3].As(); + 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(); } \ No newline at end of file diff --git a/src/demo.ts b/src/demo.ts index c550510c9..b1a6ea926 100644 --- a/src/demo.ts +++ b/src/demo.ts @@ -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; diff --git a/src/lib/QtWidgets/QSystemTrayIcon.ts b/src/lib/QtWidgets/QSystemTrayIcon.ts index 781b6fdb6..cbf490cf2 100644 --- a/src/lib/QtWidgets/QSystemTrayIcon.ts +++ b/src/lib/QtWidgets/QSystemTrayIcon.ts @@ -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); }