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.
5 #ifndef CHROME_BROWSER_UI_OZONE_WEB_UI_H_
6 #define CHROME_BROWSER_UI_OZONE_WEB_UI_H_
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"
34 using ui::TextEditCommandAuraLinux;
40 class NativeThemeChangeObserver;
41 class WindowButtonOrderObserver;
42 // Interface to Wayland desktop features.
44 class OzoneWebUI : public views::LinuxUI {
47 virtual ~OzoneWebUI();
49 // ui::LinuxInputMethodContextFactory:
50 scoped_ptr<ui::LinuxInputMethodContext> CreateInputMethodContext(
51 ui::LinuxInputMethodContextDelegate* delegate) const override;
53 // gfx::LinuxFontDelegate:
54 gfx::FontRenderParams GetDefaultFontRenderParams() const override;
55 scoped_ptr<gfx::ScopedPangoFontDescription>
56 GetDefaultPangoFontDescription() const override;
57 double GetFontDPI() const override;
59 // ui::LinuxShellDialog:
60 ui::SelectFileDialog* CreateSelectFileDialog(
61 ui::SelectFileDialog::Listener* listener,
62 ui::SelectFilePolicy* policy) const override;
65 void Initialize() override;
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;
102 bool MatchEvent(const ui::Event& event,
103 std::vector<TextEditCommandAuraLinux>* commands) override;
106 gfx::FontRenderParams params_;
107 DISALLOW_COPY_AND_ASSIGN(OzoneWebUI);
112 views::LinuxUI* BuildWebUI();
114 #endif // CHROME_BROWSER_UI_OZONE_WEB_UI_H_