OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2011 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 |