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

Side by Side Diff: webkit/glue/plugins/webplugin_delegate_impl.h

Issue 3808001: Implement IME for Mac plugins using the Cocoa event model on 10.6 (Closed)
Patch Set: Windows and unit test compile fixes Created 10 years, 2 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
« no previous file with comments | « webkit/glue/plugins/webplugin.h ('k') | webkit/glue/plugins/webplugin_delegate_impl_mac.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 WEBKIT_GLUE_PLUGINS_WEBPLUGIN_DELEGATE_IMPL_H_ 5 #ifndef WEBKIT_GLUE_PLUGINS_WEBPLUGIN_DELEGATE_IMPL_H_
6 #define WEBKIT_GLUE_PLUGINS_WEBPLUGIN_DELEGATE_IMPL_H_ 6 #define WEBKIT_GLUE_PLUGINS_WEBPLUGIN_DELEGATE_IMPL_H_
7 7
8 #include "build/build_config.h" 8 #include "build/build_config.h"
9 9
10 #include <string> 10 #include <string>
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 // Informs the plugin that the window it is in has gained or lost focus. 154 // Informs the plugin that the window it is in has gained or lost focus.
155 void SetWindowHasFocus(bool has_focus); 155 void SetWindowHasFocus(bool has_focus);
156 // Returns whether or not the window the plugin is in has focus. 156 // Returns whether or not the window the plugin is in has focus.
157 bool GetWindowHasFocus() const { return containing_window_has_focus_; } 157 bool GetWindowHasFocus() const { return containing_window_has_focus_; }
158 // Informs the plugin that its tab or window has been hidden or shown. 158 // Informs the plugin that its tab or window has been hidden or shown.
159 void SetContainerVisibility(bool is_visible); 159 void SetContainerVisibility(bool is_visible);
160 // Informs the plugin that its containing window's frame has changed. 160 // Informs the plugin that its containing window's frame has changed.
161 // Frames are in screen coordinates. 161 // Frames are in screen coordinates.
162 void WindowFrameChanged(const gfx::Rect& window_frame, 162 void WindowFrameChanged(const gfx::Rect& window_frame,
163 const gfx::Rect& view_frame); 163 const gfx::Rect& view_frame);
164 // Informs the plugin that IME composition has been confirmed.
165 void ImeCompositionConfirmed(const string16& text);
164 // Informs the delegate that the plugin set a Carbon ThemeCursor. 166 // Informs the delegate that the plugin set a Carbon ThemeCursor.
165 void SetThemeCursor(ThemeCursor cursor); 167 void SetThemeCursor(ThemeCursor cursor);
166 // Informs the delegate that the plugin set a Carbon Cursor. 168 // Informs the delegate that the plugin set a Carbon Cursor.
167 void SetCursor(const Cursor* cursor); 169 void SetCursor(const Cursor* cursor);
168 // Informs the delegate that the plugin set a Cocoa NSCursor. 170 // Informs the delegate that the plugin set a Cocoa NSCursor.
169 void SetNSCursor(NSCursor* cursor); 171 void SetNSCursor(NSCursor* cursor);
170 172
171 #ifndef NP_NO_CARBON 173 #ifndef NP_NO_CARBON
172 // Indicates that it's time to send the plugin a null event. 174 // Indicates that it's time to send the plugin a null event.
173 void FireIdleEvent(); 175 void FireIdleEvent();
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 // Calls SetCapture/ReleaseCapture based on the message type. 380 // Calls SetCapture/ReleaseCapture based on the message type.
379 static void HandleCaptureForMessage(HWND window, UINT message); 381 static void HandleCaptureForMessage(HWND window, UINT message);
380 382
381 #elif defined(OS_MACOSX) 383 #elif defined(OS_MACOSX)
382 // Sets window_rect_ to |rect| 384 // Sets window_rect_ to |rect|
383 void SetPluginRect(const gfx::Rect& rect); 385 void SetPluginRect(const gfx::Rect& rect);
384 // Sets content_area_origin to |origin| 386 // Sets content_area_origin to |origin|
385 void SetContentAreaOrigin(const gfx::Point& origin); 387 void SetContentAreaOrigin(const gfx::Point& origin);
386 // Updates everything that depends on the plugin's absolute screen location. 388 // Updates everything that depends on the plugin's absolute screen location.
387 void PluginScreenLocationChanged(); 389 void PluginScreenLocationChanged();
390 // Updates anything that depends on plugin visibility.
391 void PluginVisibilityChanged();
388 392
389 // Returns the apparent zoom ratio for the given event, as inferred from our 393 // Enables/disables IME.
390 // current knowledge about about where on screen the plugin is. 394 void SetImeEnabled(bool enabled);
391 // This is a temporary workaround for <http://crbug.com/9996>; once that is
392 // fixed we should have correct event coordinates (or an explicit
393 // notification of zoom level).
394 float ApparentEventZoomLevel(const WebKit::WebMouseEvent& event);
395 395
396 // Informs the browser about the updated accelerated drawing surface. 396 // Informs the browser about the updated accelerated drawing surface.
397 void UpdateAcceleratedSurface(); 397 void UpdateAcceleratedSurface();
398 398
399 // Updates anything that depends on plugin visibility.
400 void PluginVisibilityChanged();
401
402 // Uses a CARenderer to draw the plug-in's layer in our OpenGL surface. 399 // Uses a CARenderer to draw the plug-in's layer in our OpenGL surface.
403 void DrawLayerInSurface(); 400 void DrawLayerInSurface();
404 401
405 #ifndef NP_NO_CARBON 402 #ifndef NP_NO_CARBON
406 // Moves our dummy window to match the current screen location of the plugin. 403 // Moves our dummy window to match the current screen location of the plugin.
407 void UpdateDummyWindowBounds(const gfx::Point& plugin_origin); 404 void UpdateDummyWindowBounds(const gfx::Point& plugin_origin);
408 405
409 #ifndef NP_NO_QUICKDRAW 406 #ifndef NP_NO_QUICKDRAW
410 // Sets the mode used for QuickDraw plugin drawing. If enabled is true the 407 // Sets the mode used for QuickDraw plugin drawing. If enabled is true the
411 // plugin draws into a GWorld that's not connected to a window (the faster 408 // plugin draws into a GWorld that's not connected to a window (the faster
(...skipping 28 matching lines...) Expand all
440 // relative to an upper-left (0,0). 437 // relative to an upper-left (0,0).
441 gfx::Point content_area_origin_; 438 gfx::Point content_area_origin_;
442 439
443 bool containing_window_has_focus_; 440 bool containing_window_has_focus_;
444 bool initial_window_focus_; 441 bool initial_window_focus_;
445 bool container_is_visible_; 442 bool container_is_visible_;
446 bool have_called_set_window_; 443 bool have_called_set_window_;
447 444
448 gfx::Rect cached_clip_rect_; 445 gfx::Rect cached_clip_rect_;
449 446
447 bool ime_enabled_;
448
450 scoped_ptr<ExternalDragTracker> external_drag_tracker_; 449 scoped_ptr<ExternalDragTracker> external_drag_tracker_;
451 #endif // OS_MACOSX 450 #endif // OS_MACOSX
452 451
453 // Called by the message filter hook when the plugin enters a modal loop. 452 // Called by the message filter hook when the plugin enters a modal loop.
454 void OnModalLoopEntered(); 453 void OnModalLoopEntered();
455 454
456 // Returns true if the message passed in corresponds to a user gesture. 455 // Returns true if the message passed in corresponds to a user gesture.
457 static bool IsUserGesture(const WebKit::WebInputEvent& event); 456 static bool IsUserGesture(const WebKit::WebInputEvent& event);
458 457
459 // The url with which the plugin was instantiated. 458 // The url with which the plugin was instantiated.
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 // True if the containing view currently has focus. 499 // True if the containing view currently has focus.
501 // Initially set to true so that plugin focus still works in environments 500 // Initially set to true so that plugin focus still works in environments
502 // where SetContentAreaHasFocus is never called. See 501 // where SetContentAreaHasFocus is never called. See
503 // https://bugs.webkit.org/show_bug.cgi?id=46013 for details. 502 // https://bugs.webkit.org/show_bug.cgi?id=46013 for details.
504 bool containing_view_has_focus_; 503 bool containing_view_has_focus_;
505 504
506 DISALLOW_COPY_AND_ASSIGN(WebPluginDelegateImpl); 505 DISALLOW_COPY_AND_ASSIGN(WebPluginDelegateImpl);
507 }; 506 };
508 507
509 #endif // WEBKIT_GLUE_PLUGINS_WEBPLUGIN_DELEGATE_IMPL_H_ 508 #endif // WEBKIT_GLUE_PLUGINS_WEBPLUGIN_DELEGATE_IMPL_H_
OLDNEW
« no previous file with comments | « webkit/glue/plugins/webplugin.h ('k') | webkit/glue/plugins/webplugin_delegate_impl_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698