Index: app/menus/simple_menu_model.cc |
diff --git a/app/menus/simple_menu_model.cc b/app/menus/simple_menu_model.cc |
index 863166671e65dd308ff219ec3a8e1abd6e615cd9..3e519864edcfcab0c20536e11b6c67aa86c99402 100644 |
--- a/app/menus/simple_menu_model.cc |
+++ b/app/menus/simple_menu_model.cc |
@@ -20,7 +20,7 @@ SimpleMenuModel::~SimpleMenuModel() { |
} |
void SimpleMenuModel::AddItem(int command_id, const string16& label) { |
- Item item = { command_id, label, SkBitmap(), TYPE_COMMAND, -1, NULL }; |
+ Item item = { command_id, label, SkBitmap(), TYPE_COMMAND, -1, NULL, NULL }; |
AppendItem(item); |
} |
@@ -30,7 +30,7 @@ void SimpleMenuModel::AddItemWithStringId(int command_id, int string_id) { |
void SimpleMenuModel::AddSeparator() { |
Item item = { kSeparatorId, string16(), SkBitmap(), TYPE_SEPARATOR, -1, |
- NULL }; |
+ NULL, NULL }; |
AppendItem(item); |
} |
@@ -45,7 +45,8 @@ void SimpleMenuModel::AddCheckItemWithStringId(int command_id, int string_id) { |
void SimpleMenuModel::AddRadioItem(int command_id, const string16& label, |
int group_id) { |
- Item item = { command_id, label, SkBitmap(), TYPE_RADIO, group_id, NULL }; |
+ Item item = { command_id, label, SkBitmap(), TYPE_RADIO, group_id, NULL, |
+ NULL }; |
AppendItem(item); |
} |
@@ -54,9 +55,15 @@ void SimpleMenuModel::AddRadioItemWithStringId(int command_id, int string_id, |
AddRadioItem(command_id, l10n_util::GetStringUTF16(string_id), group_id); |
} |
+void SimpleMenuModel::AddButtonItem(int command_id, |
+ ButtonMenuItemModel* model) { |
+ Item item = { 0, string16(), SkBitmap(), TYPE_BUTTON_ITEM, -1, NULL, model }; |
+ AppendItem(item); |
+} |
+ |
void SimpleMenuModel::AddSubMenu(int command_id, const string16& label, |
MenuModel* model) { |
- Item item = { command_id, label, SkBitmap(), TYPE_SUBMENU, -1, model }; |
+ Item item = { command_id, label, SkBitmap(), TYPE_SUBMENU, -1, model, NULL }; |
AppendItem(item); |
} |
@@ -67,7 +74,7 @@ void SimpleMenuModel::AddSubMenuWithStringId(int command_id, |
void SimpleMenuModel::InsertItemAt( |
int index, int command_id, const string16& label) { |
- Item item = { command_id, label, SkBitmap(), TYPE_COMMAND, -1, NULL }; |
+ Item item = { command_id, label, SkBitmap(), TYPE_COMMAND, -1, NULL, NULL }; |
InsertItemAtIndex(item, index); |
} |
@@ -78,13 +85,13 @@ void SimpleMenuModel::InsertItemWithStringIdAt( |
void SimpleMenuModel::InsertSeparatorAt(int index) { |
Item item = { kSeparatorId, string16(), SkBitmap(), TYPE_SEPARATOR, -1, |
- NULL }; |
+ NULL, NULL }; |
InsertItemAtIndex(item, index); |
} |
void SimpleMenuModel::InsertCheckItemAt( |
int index, int command_id, const string16& label) { |
- Item item = { command_id, label, SkBitmap(), TYPE_CHECK, -1, NULL }; |
+ Item item = { command_id, label, SkBitmap(), TYPE_CHECK, -1, NULL, NULL }; |
InsertItemAtIndex(item, index); |
} |
@@ -96,7 +103,8 @@ void SimpleMenuModel::InsertCheckItemWithStringIdAt( |
void SimpleMenuModel::InsertRadioItemAt( |
int index, int command_id, const string16& label, int group_id) { |
- Item item = { command_id, label, SkBitmap(), TYPE_RADIO, group_id, NULL }; |
+ Item item = { command_id, label, SkBitmap(), TYPE_RADIO, group_id, NULL, |
+ NULL }; |
InsertItemAtIndex(item, index); |
} |
@@ -108,7 +116,7 @@ void SimpleMenuModel::InsertRadioItemWithStringIdAt( |
void SimpleMenuModel::InsertSubMenuAt( |
int index, int command_id, const string16& label, MenuModel* model) { |
- Item item = { command_id, label, SkBitmap(), TYPE_SUBMENU, -1, model }; |
+ Item item = { command_id, label, SkBitmap(), TYPE_SUBMENU, -1, model, NULL }; |
InsertItemAtIndex(item, index); |
} |
@@ -199,9 +207,14 @@ bool SimpleMenuModel::GetIconAt(int index, SkBitmap* icon) const { |
return true; |
} |
+ButtonMenuItemModel* SimpleMenuModel::GetButtonMenuItemAt(int index) const { |
+ return items_.at(FlipIndex(index)).button_model; |
+} |
+ |
bool SimpleMenuModel::IsEnabledAt(int index) const { |
int command_id = GetCommandIdAt(index); |
- if (!delegate_ || command_id == kSeparatorId) |
+ if (!delegate_ || command_id == kSeparatorId || |
+ items_.at(FlipIndex(index)).button_model) |
return true; |
return delegate_->IsCommandIdEnabled(command_id); |
} |