• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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