Add signals to QSystemTrayIcon (#258)

* Add signals to QSystemTrayIcon

- `activated(QSystemTrayIcon::ActivationReason reason)`
- `messageClicked()`

* Fix `QSystemTrayIconActivationReason` export
This commit is contained in:
Maksim Karelov 2019-12-11 10:42:04 +03:00 committed by Atul R
parent 4703dd4d27
commit 16b9bc5585
3 changed files with 32 additions and 2 deletions

View File

@ -11,5 +11,22 @@ class NSystemTrayIcon : public QSystemTrayIcon, public EventWidget {
public:
using QSystemTrayIcon::QSystemTrayIcon; // inherit all constructors of
// QSystemTrayIcon
void connectWidgetSignalsToEventEmitter() {}
void connectWidgetSignalsToEventEmitter() {
QObject::connect(this, &QSystemTrayIcon::activated, [=](int reason) {
Napi::Env env = this->emitOnNode.Env();
Napi::HandleScope scope(env);
this->emitOnNode.Call({
Napi::String::New(env, "activated"),
Napi::Value::From(env, reason),
});
});
QObject::connect(this, &QSystemTrayIcon::messageClicked, [=]() {
Napi::Env env = this->emitOnNode.Env();
Napi::HandleScope scope(env);
this->emitOnNode.Call({
Napi::String::New(env, "messageClicked"),
});
});
}
};

View File

@ -41,7 +41,11 @@ export { QMenu, QMenuEvents } from './lib/QtWidgets/QMenu';
export { QMenuBar, QMenuBarEvents } from './lib/QtWidgets/QMenuBar';
export { QPlainTextEdit, QPlainTextEditEvents, LineWrapMode } from './lib/QtWidgets/QPlainTextEdit';
export { QScrollArea, QScrollAreaEvents } from './lib/QtWidgets/QScrollArea';
export { QSystemTrayIcon, QSystemTrayIconEvents } from './lib/QtWidgets/QSystemTrayIcon';
export {
QSystemTrayIcon,
QSystemTrayIconEvents,
QSystemTrayIconActivationReason,
} from './lib/QtWidgets/QSystemTrayIcon';
export { QAction, QActionEvents } from './lib/QtWidgets/QAction';
export { QShortcut, QShortcutEvents } from './lib/QtWidgets/QShortcut';
export { QGroupBox, QGroupBoxEvents } from './lib/QtWidgets/QGroupBox';

View File

@ -8,6 +8,15 @@ import { NodeObject } from '../QtCore/QObject';
export const QSystemTrayIconEvents = Object.freeze({
...BaseWidgetEvents,
activated: 'activated',
messageClicked: 'messageClicked',
});
export const QSystemTrayIconActivationReason = Object.freeze({
Unknown: 0,
Context: 1,
DoubleClick: 2,
Trigger: 3,
MiddleClick: 4,
});
export class QSystemTrayIcon extends NodeObject {
native: NativeElement;