Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: views/widget/widget_gtk.h

Issue 6675005: Integrate the new input method API for Views into Chromium. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix trybot failures. Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef VIEWS_WIDGET_WIDGET_GTK_H_ 5 #ifndef VIEWS_WIDGET_WIDGET_GTK_H_
6 #define VIEWS_WIDGET_WIDGET_GTK_H_ 6 #define VIEWS_WIDGET_WIDGET_GTK_H_
7 #pragma once 7 #pragma once
8 8
9 #include <gtk/gtk.h> 9 #include <gtk/gtk.h>
10 10
11 #include "base/message_loop.h" 11 #include "base/message_loop.h"
12 #include "ui/base/gtk/gtk_signal.h" 12 #include "ui/base/gtk/gtk_signal.h"
13 #include "ui/base/x/active_window_watcher_x.h" 13 #include "ui/base/x/active_window_watcher_x.h"
14 #include "ui/gfx/size.h" 14 #include "ui/gfx/size.h"
15 #include "views/focus/focus_manager.h" 15 #include "views/focus/focus_manager.h"
16 #include "views/ime/input_method_delegate.h"
17 #include "views/ime/input_method_gtk.h"
16 #include "views/widget/native_widget.h" 18 #include "views/widget/native_widget.h"
17 #include "views/widget/widget.h" 19 #include "views/widget/widget.h"
18 20
19 namespace gfx { 21 namespace gfx {
20 class Rect; 22 class Rect;
21 } 23 }
22 24
23 namespace ui { 25 namespace ui {
24 class OSExchangeData; 26 class OSExchangeData;
25 class OSExchangeDataProviderGtk; 27 class OSExchangeDataProviderGtk;
26 } 28 }
27 using ui::OSExchangeData; 29 using ui::OSExchangeData;
28 using ui::OSExchangeDataProviderGtk; 30 using ui::OSExchangeDataProviderGtk;
29 31
30 namespace views { 32 namespace views {
31 33
32 class DropTargetGtk; 34 class DropTargetGtk;
33 class TooltipManagerGtk; 35 class TooltipManagerGtk;
34 class View; 36 class View;
35 class WindowGtk; 37 class WindowGtk;
36 38
37 namespace internal { 39 namespace internal {
38 class NativeWidgetDelegate; 40 class NativeWidgetDelegate;
39 } 41 }
40 42
41 // Widget implementation for GTK. 43 // Widget implementation for GTK.
42 class WidgetGtk : public Widget, 44 class WidgetGtk : public Widget,
43 public NativeWidget, 45 public NativeWidget,
44 public ui::ActiveWindowWatcherX::Observer { 46 public ui::ActiveWindowWatcherX::Observer,
47 public internal::InputMethodDelegate {
45 public: 48 public:
46 // Type of widget. 49 // Type of widget.
47 enum Type { 50 enum Type {
48 // Used for popup type windows (bubbles, menus ...). 51 // Used for popup type windows (bubbles, menus ...).
49 // NOTE: on X windows of this type can NOT get focus. If you need a popup 52 // NOTE: on X windows of this type can NOT get focus. If you need a popup
50 // like widget that can be focused use TYPE_WINDOW and set the window type 53 // like widget that can be focused use TYPE_WINDOW and set the window type
51 // to WINDOW_TYPE_CHROME_INFO_BUBBLE. 54 // to WINDOW_TYPE_CHROME_INFO_BUBBLE.
52 TYPE_POPUP, 55 TYPE_POPUP,
53 56
54 // A top level window with no title or control buttons. 57 // A top level window with no title or control buttons.
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 184
182 // Overridden from NativeWidget: 185 // Overridden from NativeWidget:
183 virtual Widget* GetWidget() OVERRIDE; 186 virtual Widget* GetWidget() OVERRIDE;
184 virtual void SetNativeWindowProperty(const char* name, void* value) OVERRIDE; 187 virtual void SetNativeWindowProperty(const char* name, void* value) OVERRIDE;
185 virtual void* GetNativeWindowProperty(const char* name) OVERRIDE; 188 virtual void* GetNativeWindowProperty(const char* name) OVERRIDE;
186 virtual TooltipManager* GetTooltipManager() const OVERRIDE; 189 virtual TooltipManager* GetTooltipManager() const OVERRIDE;
187 virtual bool IsScreenReaderActive() const OVERRIDE; 190 virtual bool IsScreenReaderActive() const OVERRIDE;
188 virtual void SetNativeCapture() OVERRIDE; 191 virtual void SetNativeCapture() OVERRIDE;
189 virtual void ReleaseNativeCapture() OVERRIDE; 192 virtual void ReleaseNativeCapture() OVERRIDE;
190 virtual bool HasNativeCapture() const OVERRIDE; 193 virtual bool HasNativeCapture() const OVERRIDE;
194 virtual InputMethod* GetInputMethodNative() OVERRIDE;
195 virtual void ReplaceInputMethod(InputMethod* input_method) OVERRIDE;
191 virtual gfx::Rect GetWindowScreenBounds() const OVERRIDE; 196 virtual gfx::Rect GetWindowScreenBounds() const OVERRIDE;
192 virtual gfx::Rect GetClientAreaScreenBounds() const OVERRIDE; 197 virtual gfx::Rect GetClientAreaScreenBounds() const OVERRIDE;
193 virtual void SetBounds(const gfx::Rect& bounds) OVERRIDE; 198 virtual void SetBounds(const gfx::Rect& bounds) OVERRIDE;
194 virtual void MoveAbove(Widget* widget) OVERRIDE; 199 virtual void MoveAbove(Widget* widget) OVERRIDE;
195 virtual void SetShape(gfx::NativeRegion shape) OVERRIDE; 200 virtual void SetShape(gfx::NativeRegion shape) OVERRIDE;
196 virtual void Close() OVERRIDE; 201 virtual void Close() OVERRIDE;
197 virtual void CloseNow() OVERRIDE; 202 virtual void CloseNow() OVERRIDE;
198 virtual void Show() OVERRIDE; 203 virtual void Show() OVERRIDE;
199 virtual void Hide() OVERRIDE; 204 virtual void Hide() OVERRIDE;
200 virtual void SetOpacity(unsigned char opacity) OVERRIDE; 205 virtual void SetOpacity(unsigned char opacity) OVERRIDE;
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 private: 293 private:
289 class DropObserver; 294 class DropObserver;
290 friend class DropObserver; 295 friend class DropObserver;
291 296
292 // Overridden from Widget 297 // Overridden from Widget
293 virtual RootView* CreateRootView() OVERRIDE; 298 virtual RootView* CreateRootView() OVERRIDE;
294 299
295 // Overridden from NativeWidget 300 // Overridden from NativeWidget
296 virtual gfx::AcceleratedWidget GetAcceleratedWidget() OVERRIDE; 301 virtual gfx::AcceleratedWidget GetAcceleratedWidget() OVERRIDE;
297 302
303 // Overridden from internal::InputMethodDelegate
304 virtual void DispatchKeyEventPostIME(const KeyEvent& key) OVERRIDE;
305
298 CHROMEGTK_CALLBACK_1(WidgetGtk, gboolean, OnWindowPaint, GdkEventExpose*); 306 CHROMEGTK_CALLBACK_1(WidgetGtk, gboolean, OnWindowPaint, GdkEventExpose*);
299 307
300 // Process a mouse click. 308 // Process a mouse click.
301 bool ProcessMousePressed(GdkEventButton* event); 309 bool ProcessMousePressed(GdkEventButton* event);
302 void ProcessMouseReleased(GdkEventButton* event); 310 void ProcessMouseReleased(GdkEventButton* event);
303 // Process scroll event. 311 // Process scroll event.
304 bool ProcessScroll(GdkEventScroll* event); 312 bool ProcessScroll(GdkEventScroll* event);
305 313
306 // Returns the first ancestor of |widget| that is a window. 314 // Returns the first ancestor of |widget| that is a window.
307 static Window* GetWindowImpl(GtkWidget* widget); 315 static Window* GetWindowImpl(GtkWidget* widget);
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 // This is false by default. 429 // This is false by default.
422 bool is_double_buffered_; 430 bool is_double_buffered_;
423 431
424 // Indicates if we should handle the upcoming Alt key release event. 432 // Indicates if we should handle the upcoming Alt key release event.
425 bool should_handle_menu_key_release_; 433 bool should_handle_menu_key_release_;
426 434
427 // Valid for the lifetime of StartDragForViewFromMouseEvent, indicates the 435 // Valid for the lifetime of StartDragForViewFromMouseEvent, indicates the
428 // view the drag started from. 436 // view the drag started from.
429 View* dragged_view_; 437 View* dragged_view_;
430 438
439 scoped_ptr<InputMethod> input_method_;
440
431 DISALLOW_COPY_AND_ASSIGN(WidgetGtk); 441 DISALLOW_COPY_AND_ASSIGN(WidgetGtk);
432 }; 442 };
433 443
434 } // namespace views 444 } // namespace views
435 445
436 #endif // VIEWS_WIDGET_WIDGET_GTK_H_ 446 #endif // VIEWS_WIDGET_WIDGET_GTK_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698