win: Add "balloon-show" and "balloon-closed" events
This commit is contained in:
parent
ee3fa67c48
commit
9f99209733
8 changed files with 31 additions and 8 deletions
|
@ -41,10 +41,18 @@ void Tray::OnDoubleClicked() {
|
|||
Emit("double-clicked");
|
||||
}
|
||||
|
||||
void Tray::OnBalloonShow() {
|
||||
Emit("balloon-show");
|
||||
}
|
||||
|
||||
void Tray::OnBalloonClicked() {
|
||||
Emit("balloon-clicked");
|
||||
}
|
||||
|
||||
void Tray::OnBalloonClosed() {
|
||||
Emit("balloon-closed");
|
||||
}
|
||||
|
||||
void Tray::Destroy() {
|
||||
tray_icon_.reset();
|
||||
}
|
||||
|
|
|
@ -43,7 +43,9 @@ class Tray : public mate::EventEmitter,
|
|||
// TrayIconObserver:
|
||||
void OnClicked() override;
|
||||
void OnDoubleClicked() override;
|
||||
void OnBalloonShow() override;
|
||||
void OnBalloonClicked() override;
|
||||
void OnBalloonClosed() override;
|
||||
|
||||
void Destroy();
|
||||
void SetImage(mate::Arguments* args, const gfx::ImageSkia& image);
|
||||
|
|
|
@ -31,8 +31,16 @@ void TrayIcon::NotifyDoubleClicked() {
|
|||
FOR_EACH_OBSERVER(TrayIconObserver, observers_, OnDoubleClicked());
|
||||
}
|
||||
|
||||
void TrayIcon::NotifyBalloonShow() {
|
||||
FOR_EACH_OBSERVER(TrayIconObserver, observers_, OnBalloonShow());
|
||||
}
|
||||
|
||||
void TrayIcon::NotifyBalloonClicked() {
|
||||
FOR_EACH_OBSERVER(TrayIconObserver, observers_, OnBalloonClicked());
|
||||
}
|
||||
|
||||
void TrayIcon::NotifyBalloonClosed() {
|
||||
FOR_EACH_OBSERVER(TrayIconObserver, observers_, OnBalloonClosed());
|
||||
}
|
||||
|
||||
} // namespace atom
|
||||
|
|
|
@ -52,7 +52,9 @@ class TrayIcon {
|
|||
void RemoveObserver(TrayIconObserver* obs) { observers_.RemoveObserver(obs); }
|
||||
void NotifyClicked();
|
||||
void NotifyDoubleClicked();
|
||||
void NotifyBalloonShow();
|
||||
void NotifyBalloonClicked();
|
||||
void NotifyBalloonClosed();
|
||||
|
||||
protected:
|
||||
TrayIcon();
|
||||
|
|
|
@ -11,7 +11,9 @@ class TrayIconObserver {
|
|||
public:
|
||||
virtual void OnClicked() {}
|
||||
virtual void OnDoubleClicked() {}
|
||||
virtual void OnBalloonShow() {}
|
||||
virtual void OnBalloonClicked() {}
|
||||
virtual void OnBalloonClosed() {}
|
||||
|
||||
protected:
|
||||
virtual ~TrayIconObserver() {}
|
||||
|
|
|
@ -71,10 +71,6 @@ void NotifyIcon::HandleClickEvent(const gfx::Point& cursor_pos,
|
|||
ui::MENU_SOURCE_MOUSE));
|
||||
}
|
||||
|
||||
void NotifyIcon::HandleBalloonClickEvent() {
|
||||
NotifyBalloonClicked();
|
||||
}
|
||||
|
||||
void NotifyIcon::ResetIcon() {
|
||||
NOTIFYICONDATA icon_data;
|
||||
InitIconData(&icon_data);
|
||||
|
|
|
@ -35,9 +35,6 @@ class NotifyIcon : public TrayIcon {
|
|||
// otherwise displays the context menu if there is one.
|
||||
void HandleClickEvent(const gfx::Point& cursor_pos, bool left_button_click);
|
||||
|
||||
// Handles a click on the balloon from the user.
|
||||
void HandleBalloonClickEvent();
|
||||
|
||||
// Re-creates the status tray icon now after the taskbar has been created.
|
||||
void ResetIcon();
|
||||
|
||||
|
|
|
@ -132,8 +132,16 @@ LRESULT CALLBACK NotifyIconHost::WndProc(HWND hwnd,
|
|||
return TRUE;
|
||||
|
||||
switch (lparam) {
|
||||
case TB_CHECKBUTTON:
|
||||
win_icon->NotifyBalloonShow();
|
||||
return TRUE;
|
||||
|
||||
case TB_INDETERMINATE:
|
||||
win_icon->HandleBalloonClickEvent();
|
||||
win_icon->NotifyBalloonClicked();
|
||||
return TRUE;
|
||||
|
||||
case TB_HIDEBUTTON:
|
||||
win_icon->NotifyBalloonClosed();
|
||||
return TRUE;
|
||||
|
||||
case WM_LBUTTONDOWN:
|
||||
|
|
Loading…
Reference in a new issue