feat: add tray.removeBalloon() (#19547)
This commit is contained in:
parent
8f043bbdaa
commit
ee674acca4
7 changed files with 26 additions and 0 deletions
|
@ -228,6 +228,10 @@ Returns `Boolean` - Whether double click events will be ignored.
|
|||
|
||||
Displays a tray balloon.
|
||||
|
||||
#### `tray.removeBalloon()` _Windows_
|
||||
|
||||
Removes a tray balloon.
|
||||
|
||||
#### `tray.popUpContextMenu([menu, position])` _macOS_ _Windows_
|
||||
|
||||
* `menu` Menu (optional)
|
||||
|
|
|
@ -175,6 +175,10 @@ void Tray::DisplayBalloon(mate::Arguments* args,
|
|||
#endif
|
||||
}
|
||||
|
||||
void Tray::RemoveBalloon() {
|
||||
tray_icon_->RemoveBalloon();
|
||||
}
|
||||
|
||||
void Tray::PopUpContextMenu(mate::Arguments* args) {
|
||||
mate::Handle<Menu> menu;
|
||||
args->GetNext(&menu);
|
||||
|
@ -208,6 +212,7 @@ void Tray::BuildPrototype(v8::Isolate* isolate,
|
|||
.SetMethod("getIgnoreDoubleClickEvents",
|
||||
&Tray::GetIgnoreDoubleClickEvents)
|
||||
.SetMethod("displayBalloon", &Tray::DisplayBalloon)
|
||||
.SetMethod("removeBalloon", &Tray::RemoveBalloon)
|
||||
.SetMethod("popUpContextMenu", &Tray::PopUpContextMenu)
|
||||
.SetMethod("setContextMenu", &Tray::SetContextMenu)
|
||||
.SetMethod("getBounds", &Tray::GetBounds);
|
||||
|
|
|
@ -73,6 +73,7 @@ class Tray : public mate::TrackableObject<Tray>, public TrayIconObserver {
|
|||
void SetIgnoreDoubleClickEvents(bool ignore);
|
||||
bool GetIgnoreDoubleClickEvents();
|
||||
void DisplayBalloon(mate::Arguments* args, const mate::Dictionary& options);
|
||||
void RemoveBalloon();
|
||||
void PopUpContextMenu(mate::Arguments* args);
|
||||
void SetContextMenu(v8::Isolate* isolate, mate::Handle<Menu> menu);
|
||||
gfx::Rect GetBounds();
|
||||
|
|
|
@ -16,6 +16,8 @@ void TrayIcon::DisplayBalloon(ImageType icon,
|
|||
const base::string16& title,
|
||||
const base::string16& contents) {}
|
||||
|
||||
void TrayIcon::RemoveBalloon() {}
|
||||
|
||||
void TrayIcon::PopUpContextMenu(const gfx::Point& pos,
|
||||
AtomMenuModel* menu_model) {}
|
||||
|
||||
|
|
|
@ -55,6 +55,9 @@ class TrayIcon {
|
|||
const base::string16& title,
|
||||
const base::string16& contents);
|
||||
|
||||
// Removes the notification balloon.
|
||||
virtual void RemoveBalloon();
|
||||
|
||||
// Popups the menu.
|
||||
virtual void PopUpContextMenu(const gfx::Point& pos,
|
||||
AtomMenuModel* menu_model);
|
||||
|
|
|
@ -138,6 +138,16 @@ void NotifyIcon::DisplayBalloon(HICON icon,
|
|||
LOG(WARNING) << "Unable to create status tray balloon.";
|
||||
}
|
||||
|
||||
void NotifyIcon::RemoveBalloon() {
|
||||
NOTIFYICONDATA icon_data;
|
||||
InitIconData(&icon_data);
|
||||
icon_data.uFlags |= NIF_INFO;
|
||||
|
||||
BOOL result = Shell_NotifyIcon(NIM_MODIFY, &icon_data);
|
||||
if (!result)
|
||||
LOG(WARNING) << "Unable to remove status tray balloon.";
|
||||
}
|
||||
|
||||
void NotifyIcon::PopUpContextMenu(const gfx::Point& pos,
|
||||
AtomMenuModel* menu_model) {
|
||||
// Returns if context menu isn't set.
|
||||
|
|
|
@ -61,6 +61,7 @@ class NotifyIcon : public TrayIcon {
|
|||
void DisplayBalloon(HICON icon,
|
||||
const base::string16& title,
|
||||
const base::string16& contents) override;
|
||||
void RemoveBalloon() override;
|
||||
void PopUpContextMenu(const gfx::Point& pos,
|
||||
AtomMenuModel* menu_model) override;
|
||||
void SetContextMenu(AtomMenuModel* menu_model) override;
|
||||
|
|
Loading…
Reference in a new issue