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();
}
// 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);
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
void RemoveObserver(TrayIconObserver* obs) { observers_.RemoveObserver(obs); }
void NotifyClicked();
void NotifyDoubleClicked();
+ void NotifyBalloonShow();
void NotifyBalloonClicked();
+ void NotifyBalloonClosed();
protected:
TrayIcon();
public:
virtual void OnClicked() {}
virtual void OnDoubleClicked() {}
+ virtual void OnBalloonShow() {}
virtual void OnBalloonClicked() {}
+ virtual void OnBalloonClosed() {}
protected:
virtual ~TrayIconObserver() {}
ui::MENU_SOURCE_MOUSE));
}
-void NotifyIcon::HandleBalloonClickEvent() {
- NotifyBalloonClicked();
-}
-
void NotifyIcon::ResetIcon() {
NOTIFYICONDATA icon_data;
InitIconData(&icon_data);
// 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();
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: