first pass at menu event emission

This commit is contained in:
Shelley Vohr 2018-01-27 09:35:58 -05:00
Родитель 39554566cc
Коммит 3399480304
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: F13993A75599653C
6 изменённых файлов: 29 добавлений и 5 удалений

Просмотреть файл

@ -153,6 +153,14 @@ bool Menu::IsVisibleAt(int index) const {
return model_->IsVisibleAt(index);
}
void Menu::OnMenuWillClose() {
Emit("menu-will-close");
}
void Menu::OnMenuWillShow() {
Emit("menu-will-show");
}
// static
void Menu::BuildPrototype(v8::Isolate* isolate,
v8::Local<v8::FunctionTemplate> prototype) {

Просмотреть файл

@ -60,6 +60,10 @@ class Menu : public mate::TrackableObject<Menu>,
std::unique_ptr<AtomMenuModel> model_;
Menu* parent_;
// Observable:
void OnMenuWillClose() override;
void OnMenuWillShow() override;
private:
void InsertItemAt(int index, int command_id, const base::string16& label);
void InsertSeparatorAt(int index);

Просмотреть файл

@ -42,8 +42,16 @@ bool AtomMenuModel::GetAcceleratorAtWithParams(
void AtomMenuModel::MenuWillClose() {
ui::SimpleMenuModel::MenuWillClose();
for (Observer& observer : observers_)
observer.MenuWillClose();
for (Observer& observer : observers_) {
observer.OnMenuWillClose();
}
}
void AtomMenuModel::MenuWillShow() {
ui::SimpleMenuModel::MenuWillShow();
for (Observer& observer : observers_) {
observer.OnMenuWillShow();
}
}
AtomMenuModel* AtomMenuModel::GetSubmenuModelAt(int index) {

Просмотреть файл

@ -36,8 +36,11 @@ class AtomMenuModel : public ui::SimpleMenuModel {
public:
virtual ~Observer() {}
// Notifies the menu will open.
virtual void OnMenuWillShow() {}
// Notifies the menu has been closed.
virtual void MenuWillClose() {}
virtual void OnMenuWillClose() {}
};
explicit AtomMenuModel(Delegate* delegate);
@ -54,6 +57,7 @@ class AtomMenuModel : public ui::SimpleMenuModel {
// ui::SimpleMenuModel:
void MenuWillClose() override;
void MenuWillShow() override;
using SimpleMenuModel::GetSubmenuModelAt;
AtomMenuModel* GetSubmenuModelAt(int index);

Просмотреть файл

@ -35,7 +35,7 @@ class TrayIconCocoa : public TrayIcon,
protected:
// AtomMenuModel::Observer:
void MenuWillClose() override;
void OnMenuWillClose() override;
private:
// Atom custom view for NSStatusItem.

Просмотреть файл

@ -461,7 +461,7 @@ gfx::Rect TrayIconCocoa::GetBounds() {
return bounds;
}
void TrayIconCocoa::MenuWillClose() {
void TrayIconCocoa::OnMenuWillClose() {
[status_item_view_ setNeedsDisplay:YES];
}