win: Add "balloon-show" and "balloon-closed" events

This commit is contained in:
Cheng Zhao 2014-11-28 19:42:57 +08:00
parent ee3fa67c48
commit 9f99209733
8 changed files with 31 additions and 8 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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