1 // Copyright (c) 2012 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_GTK2_UTIL_H_ 6 #define CHROME_BROWSER_UI_LIBGTK2UI_GTK2_UTIL_H_ 7 8 #include <gtk/gtk.h> 9 #include <string> 10 11 #include "ui/native_theme/native_theme.h" 12 13 class SkBitmap; 14 15 namespace aura { 16 class Window; 17 } 18 19 namespace base { 20 class CommandLine; 21 class Environment; 22 } 23 24 namespace ui { 25 class Accelerator; 26 } 27 28 namespace libgtk2ui { 29 30 void GtkInitFromCommandLine(const base::CommandLine& command_line); 31 32 // Returns the name of the ".desktop" file associated with our running process. 33 std::string GetDesktopName(base::Environment* env); 34 35 // Show the image for the given menu item, even if the user's default is to not 36 // show images. Only to be used for favicons or other menus where the image is 37 // crucial to its functionality. 38 void SetAlwaysShowImage(GtkWidget* image_menu_item); 39 40 guint GetGdkKeyCodeForAccelerator(const ui::Accelerator& accelerator); 41 42 GdkModifierType GetGdkModifierForAccelerator( 43 const ui::Accelerator& accelerator); 44 45 // Translates event flags into plaform independent event flags. 46 int EventFlagsFromGdkState(guint state); 47 48 // Sets |dialog| as transient for |parent|, which will keep it on top and center 49 // it above |parent|. Do nothing if |parent| is NULL. 50 void SetGtkTransientForAura(GtkWidget* dialog, aura::Window* parent); 51 52 // Gets the transient parent aura window for |dialog|. 53 aura::Window* GetAuraTransientParent(GtkWidget* dialog); 54 55 // Clears the transient parent for |dialog|. 56 void ClearAuraTransientParent(GtkWidget* dialog); 57 58 // Converts a NativeTheme state to a GtkStateType. 59 GtkStateType GetGtkState(ui::NativeTheme::State state); 60 61 } // namespace libgtk2ui 62 63 #endif // CHROME_BROWSER_UI_LIBGTK2UI_GTK2_UTIL_H_ 64