Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / ozone / ui / webui / ozone_webui.h
1 // Copyright (c) 2014 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_OZONE_WEB_UI_H_
6 #define CHROME_BROWSER_UI_OZONE_WEB_UI_H_
7
8 #include <map>
9 #include <string>
10 #include <vector>
11
12 #include "base/basictypes.h"
13 #include "base/compiler_specific.h"
14 #include "base/observer_list.h"
15 #include "ui/base/ime/linux/linux_input_method_context.h"
16 #include "ui/events/linux/text_edit_key_bindings_delegate_auralinux.h"
17 #include "ui/gfx/color_utils.h"
18 #include "ui/gfx/font_render_params.h"
19 #include "ui/gfx/geometry/insets.h"
20 #include "ui/gfx/image/image.h"
21 #include "ui/gfx/pango_util.h"
22 #include "ui/views/border.h"
23 #include "ui/views/controls/button/label_button.h"
24 #include "ui/views/controls/button/label_button_border.h"
25 #include "ui/views/linux_ui/linux_ui.h"
26 #include "ui/views/window/frame_buttons.h"
27
28 class SkBitmap;
29
30 namespace gfx {
31 class Image;
32 }
33
34 using ui::TextEditCommandAuraLinux;
35
36 namespace views {
37 class Border;
38 class LabelButton;
39 class View;
40 class NativeThemeChangeObserver;
41 class WindowButtonOrderObserver;
42 // Interface to Wayland desktop features.
43 //
44 class OzoneWebUI : public views::LinuxUI {
45  public:
46   OzoneWebUI();
47   virtual ~OzoneWebUI();
48
49   // ui::LinuxInputMethodContextFactory:
50   scoped_ptr<ui::LinuxInputMethodContext> CreateInputMethodContext(
51       ui::LinuxInputMethodContextDelegate* delegate) const override;
52
53   // gfx::LinuxFontDelegate:
54   gfx::FontRenderParams GetDefaultFontRenderParams() const override;
55   scoped_ptr<gfx::ScopedPangoFontDescription>
56       GetDefaultPangoFontDescription() const override;
57   double GetFontDPI() const override;
58
59   // ui::LinuxShellDialog:
60   ui::SelectFileDialog* CreateSelectFileDialog(
61       ui::SelectFileDialog::Listener* listener,
62       ui::SelectFilePolicy* policy) const override;
63
64   // ui::LinuxUI:
65   void Initialize() override;
66
67   // These methods are not needed
68   gfx::Image GetThemeImageNamed(int id) const override;
69   bool GetColor(int id, SkColor* color) const override;
70   bool HasCustomImage(int id) const override;
71   SkColor GetFocusRingColor() const override;
72   SkColor GetThumbActiveColor() const override;
73   SkColor GetThumbInactiveColor() const override;
74   SkColor GetTrackColor() const override;
75   SkColor GetActiveSelectionBgColor() const override;
76   SkColor GetActiveSelectionFgColor() const override;
77   SkColor GetInactiveSelectionBgColor() const override;
78   SkColor GetInactiveSelectionFgColor() const override;
79   double GetCursorBlinkInterval() const override;
80   ui::NativeTheme* GetNativeTheme(aura::Window* window) const override;
81   void SetNativeThemeOverride(const NativeThemeGetter& callback) override;
82   bool GetDefaultUsesSystemTheme() const override;
83   void SetDownloadCount(int count) const override;
84   void SetProgressFraction(float percentage) const override;
85   bool IsStatusIconSupported() const override;
86   scoped_ptr<StatusIconLinux> CreateLinuxStatusIcon(
87       const gfx::ImageSkia& image,
88       const base::string16& tool_tip) const override;
89   gfx::Image GetIconForContentType(const std::string& content_type,
90                                    int size) const override;
91   scoped_ptr<Border> CreateNativeBorder(
92       views::LabelButton* owning_button,
93       scoped_ptr<views::LabelButtonBorder> border) override;
94   void AddWindowButtonOrderObserver(
95       WindowButtonOrderObserver* observer) override;
96   void RemoveWindowButtonOrderObserver(
97       WindowButtonOrderObserver* observer) override;
98   bool UnityIsRunning() override;
99   NonClientMiddleClickAction GetNonClientMiddleClickAction() override;
100   void NotifyWindowManagerStartupComplete() override;
101
102   bool MatchEvent(const ui::Event& event,
103                   std::vector<TextEditCommandAuraLinux>* commands) override;
104
105  private:
106   gfx::FontRenderParams params_;
107   DISALLOW_COPY_AND_ASSIGN(OzoneWebUI);
108 };
109
110 }  // namespace views
111
112 views::LinuxUI* BuildWebUI();
113
114 #endif  // CHROME_BROWSER_UI_OZONE_WEB_UI_H_