Enable setting icon of menu item
This commit is contained in:
parent
b28a241dbf
commit
e81baf759a
4 changed files with 13 additions and 4 deletions
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
#include "atom/browser/native_window.h"
|
#include "atom/browser/native_window.h"
|
||||||
#include "atom/common/native_mate_converters/accelerator_converter.h"
|
#include "atom/common/native_mate_converters/accelerator_converter.h"
|
||||||
|
#include "atom/common/native_mate_converters/image_converter.h"
|
||||||
#include "atom/common/native_mate_converters/string16_converter.h"
|
#include "atom/common/native_mate_converters/string16_converter.h"
|
||||||
#include "native_mate/callback.h"
|
#include "native_mate/callback.h"
|
||||||
#include "native_mate/constructor.h"
|
#include "native_mate/constructor.h"
|
||||||
|
@ -103,6 +104,10 @@ void Menu::InsertSubMenuAt(int index,
|
||||||
model_->InsertSubMenuAt(index, command_id, label, menu->model_.get());
|
model_->InsertSubMenuAt(index, command_id, label, menu->model_.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Menu::SetIcon(int index, const gfx::Image& image) {
|
||||||
|
model_->SetIcon(index, image);
|
||||||
|
}
|
||||||
|
|
||||||
void Menu::SetSublabel(int index, const base::string16& sublabel) {
|
void Menu::SetSublabel(int index, const base::string16& sublabel) {
|
||||||
model_->SetSublabel(index, sublabel);
|
model_->SetSublabel(index, sublabel);
|
||||||
}
|
}
|
||||||
|
@ -152,6 +157,7 @@ void Menu::BuildPrototype(v8::Isolate* isolate,
|
||||||
.SetMethod("insertRadioItem", &Menu::InsertRadioItemAt)
|
.SetMethod("insertRadioItem", &Menu::InsertRadioItemAt)
|
||||||
.SetMethod("insertSeparator", &Menu::InsertSeparatorAt)
|
.SetMethod("insertSeparator", &Menu::InsertSeparatorAt)
|
||||||
.SetMethod("insertSubMenu", &Menu::InsertSubMenuAt)
|
.SetMethod("insertSubMenu", &Menu::InsertSubMenuAt)
|
||||||
|
.SetMethod("setIcon", &Menu::SetIcon)
|
||||||
.SetMethod("setSublabel", &Menu::SetSublabel)
|
.SetMethod("setSublabel", &Menu::SetSublabel)
|
||||||
.SetMethod("clear", &Menu::Clear)
|
.SetMethod("clear", &Menu::Clear)
|
||||||
.SetMethod("getIndexOfCommandId", &Menu::GetIndexOfCommandId)
|
.SetMethod("getIndexOfCommandId", &Menu::GetIndexOfCommandId)
|
||||||
|
|
|
@ -46,9 +46,8 @@ class Menu : public mate::Wrappable,
|
||||||
bool IsCommandIdChecked(int command_id) const override;
|
bool IsCommandIdChecked(int command_id) const override;
|
||||||
bool IsCommandIdEnabled(int command_id) const override;
|
bool IsCommandIdEnabled(int command_id) const override;
|
||||||
bool IsCommandIdVisible(int command_id) const override;
|
bool IsCommandIdVisible(int command_id) const override;
|
||||||
bool GetAcceleratorForCommandId(
|
bool GetAcceleratorForCommandId(int command_id,
|
||||||
int command_id,
|
ui::Accelerator* accelerator) override;
|
||||||
ui::Accelerator* accelerator) override;
|
|
||||||
void ExecuteCommand(int command_id, int event_flags) override;
|
void ExecuteCommand(int command_id, int event_flags) override;
|
||||||
void MenuWillShow(ui::SimpleMenuModel* source) override;
|
void MenuWillShow(ui::SimpleMenuModel* source) override;
|
||||||
|
|
||||||
|
@ -73,6 +72,7 @@ class Menu : public mate::Wrappable,
|
||||||
int command_id,
|
int command_id,
|
||||||
const base::string16& label,
|
const base::string16& label,
|
||||||
Menu* menu);
|
Menu* menu);
|
||||||
|
void SetIcon(int index, const gfx::Image& image);
|
||||||
void SetSublabel(int index, const base::string16& sublabel);
|
void SetSublabel(int index, const base::string16& sublabel);
|
||||||
void Clear();
|
void Clear();
|
||||||
int GetIndexOfCommandId(int command_id);
|
int GetIndexOfCommandId(int command_id);
|
||||||
|
|
|
@ -9,13 +9,14 @@ class MenuItem
|
||||||
constructor: (options) ->
|
constructor: (options) ->
|
||||||
Menu = require 'menu'
|
Menu = require 'menu'
|
||||||
|
|
||||||
{click, @selector, @type, @label, @sublabel, @accelerator, @enabled, @visible, @checked, @submenu} = options
|
{click, @selector, @type, @label, @sublabel, @accelerator, @icon, @enabled, @visible, @checked, @submenu} = options
|
||||||
|
|
||||||
@type = 'submenu' if not @type? and @submenu?
|
@type = 'submenu' if not @type? and @submenu?
|
||||||
throw new Error('Invalid submenu') if @type is 'submenu' and @submenu?.constructor isnt Menu
|
throw new Error('Invalid submenu') if @type is 'submenu' and @submenu?.constructor isnt Menu
|
||||||
|
|
||||||
@overrideReadOnlyProperty 'type', 'normal'
|
@overrideReadOnlyProperty 'type', 'normal'
|
||||||
@overrideReadOnlyProperty 'accelerator'
|
@overrideReadOnlyProperty 'accelerator'
|
||||||
|
@overrideReadOnlyProperty 'icon'
|
||||||
@overrideReadOnlyProperty 'submenu'
|
@overrideReadOnlyProperty 'submenu'
|
||||||
@overrideProperty 'label', ''
|
@overrideProperty 'label', ''
|
||||||
@overrideProperty 'sublabel', ''
|
@overrideProperty 'sublabel', ''
|
||||||
|
|
|
@ -35,6 +35,7 @@ Menu::_init = ->
|
||||||
isCommandIdEnabled: (commandId) => @commandsMap[commandId]?.enabled
|
isCommandIdEnabled: (commandId) => @commandsMap[commandId]?.enabled
|
||||||
isCommandIdVisible: (commandId) => @commandsMap[commandId]?.visible
|
isCommandIdVisible: (commandId) => @commandsMap[commandId]?.visible
|
||||||
getAcceleratorForCommandId: (commandId) => @commandsMap[commandId]?.accelerator
|
getAcceleratorForCommandId: (commandId) => @commandsMap[commandId]?.accelerator
|
||||||
|
getIconForCommandId: (commandId) => @commandsMap[commandId]?.icon
|
||||||
executeCommand: (commandId) => @commandsMap[commandId]?.click()
|
executeCommand: (commandId) => @commandsMap[commandId]?.click()
|
||||||
menuWillShow: =>
|
menuWillShow: =>
|
||||||
# Make sure radio groups have at least one menu item seleted.
|
# Make sure radio groups have at least one menu item seleted.
|
||||||
|
@ -82,6 +83,7 @@ Menu::insert = (pos, item) ->
|
||||||
@insertRadioItem pos, item.commandId, item.label, item.groupId
|
@insertRadioItem pos, item.commandId, item.label, item.groupId
|
||||||
|
|
||||||
@setSublabel pos, item.sublabel if item.sublabel?
|
@setSublabel pos, item.sublabel if item.sublabel?
|
||||||
|
@setIcon pos, item.icon if item.icon?
|
||||||
|
|
||||||
# Make menu accessable to items.
|
# Make menu accessable to items.
|
||||||
item.overrideReadOnlyProperty 'menu', this
|
item.overrideReadOnlyProperty 'menu', this
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue