OLD | NEW |
| (Empty) |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef CHROME_BROWSER_UI_LIBGTK2UI_MENU_UTIL_H_ | |
6 #define CHROME_BROWSER_UI_LIBGTK2UI_MENU_UTIL_H_ | |
7 | |
8 #include <gtk/gtk.h> | |
9 | |
10 #include "ui/gfx/image/image.h" | |
11 | |
12 namespace ui { | |
13 class MenuModel; | |
14 } | |
15 | |
16 namespace libgtk2ui { | |
17 // Builds GtkImageMenuItems. | |
18 GtkWidget* BuildMenuItemWithImage(const std::string& label, GtkWidget* image); | |
19 GtkWidget* BuildMenuItemWithImage(const std::string& label, | |
20 const gfx::Image& icon); | |
21 GtkWidget* BuildMenuItemWithLabel(const std::string& label); | |
22 | |
23 ui::MenuModel* ModelForMenuItem(GtkMenuItem* menu_item); | |
24 | |
25 // This method is used to build the menu dynamically. The return value is the | |
26 // new menu item. | |
27 GtkWidget* AppendMenuItemToMenu(int index, | |
28 ui::MenuModel* model, | |
29 GtkWidget* menu_item, | |
30 GtkWidget* menu, | |
31 bool connect_to_activate, | |
32 GCallback item_activated_cb, | |
33 void* this_ptr); | |
34 | |
35 // Gets the ID of a menu item. | |
36 // Returns true if the menu item has an ID. | |
37 bool GetMenuItemID(GtkWidget* menu_item, int* menu_id); | |
38 | |
39 // Execute command associated with specified id. | |
40 void ExecuteCommand(ui::MenuModel* model, int id); | |
41 | |
42 // Creates a GtkMenu from |model_|. block_activation_ptr is used to disable | |
43 // the item_activated_callback while we set up the set up the menu items. | |
44 // See comments in definition of SetMenuItemInfo for more info. | |
45 void BuildSubmenuFromModel(ui::MenuModel* model, | |
46 GtkWidget* menu, | |
47 GCallback item_activated_cb, | |
48 bool* block_activation, | |
49 void* this_ptr); | |
50 | |
51 // Sets the check mark, enabled/disabled state and dynamic labels on menu items. | |
52 void SetMenuItemInfo(GtkWidget* widget, void* block_activation_ptr); | |
53 | |
54 } // namespace libgtk2ui | |
55 | |
56 #endif // CHROME_BROWSER_UI_LIBGTK2UI_MENU_UTIL_H_ | |
OLD | NEW |