Index: chrome/browser/ui/libgtk2ui/menu_util.h |
diff --git a/chrome/browser/ui/libgtk2ui/menu_util.h b/chrome/browser/ui/libgtk2ui/menu_util.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9e0db253deea64e7754975ee8b51b3147897c0a0 |
--- /dev/null |
+++ b/chrome/browser/ui/libgtk2ui/menu_util.h |
@@ -0,0 +1,56 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_BROWSER_UI_LIBGTK2UI_MENU_UTIL_H_ |
+#define CHROME_BROWSER_UI_LIBGTK2UI_MENU_UTIL_H_ |
+ |
+#include <gtk/gtk.h> |
+ |
+#include "ui/gfx/image/image.h" |
+ |
+namespace ui { |
+class MenuModel; |
+} |
+ |
+namespace libgtk2ui { |
+// Builds GtkImageMenuItems. |
+GtkWidget* BuildMenuItemWithImage(const std::string& label, GtkWidget* image); |
+GtkWidget* BuildMenuItemWithImage(const std::string& label, |
+ const gfx::Image& icon); |
+GtkWidget* BuildMenuItemWithLabel(const std::string& label); |
+ |
+ui::MenuModel* ModelForMenuItem(GtkMenuItem* menu_item); |
+ |
+// This method is used to build the menu dynamically. The return value is the |
+// new menu item. |
+GtkWidget* AppendMenuItemToMenu(int index, |
+ ui::MenuModel* model, |
+ GtkWidget* menu_item, |
+ GtkWidget* menu, |
+ bool connect_to_activate, |
+ GCallback item_activated_cb, |
+ void* this_ptr); |
+ |
+// Gets the ID of a menu item. |
+// Returns true if the menu item has an ID. |
+bool GetMenuItemID(GtkWidget* menu_item, int* menu_id); |
+ |
+// Execute command associated with specified id. |
+void ExecuteCommand(ui::MenuModel* model, int id); |
+ |
+// Creates a GtkMenu from |model_|. block_activation_ptr is used to disable |
+// the item_activated_callback while we set up the set up the menu items. |
+// See comments in definition of SetMenuItemInfo for more info. |
+void BuildSubmenuFromModel(ui::MenuModel* model, |
+ GtkWidget* menu, |
+ GCallback item_activated_cb, |
+ bool* block_activation, |
+ void* this_ptr); |
+ |
+// Sets the check mark, enabled/disabled state and dynamic labels on menu items. |
+void SetMenuItemInfo(GtkWidget* widget, void* block_activation_ptr); |
+ |
+} // namespace libgtk2ui |
+ |
+#endif // CHROME_BROWSER_UI_LIBGTK2UI_MENU_UTIL_H_ |