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

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

Issue 159046: Implementing accelerators for Linux toolkit_views (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 4 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
« no previous file with comments | « views/widget/widget_gtk.h ('k') | views/window/dialog_client_view.cc » ('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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 #include "views/widget/widget_gtk.h" 5 #include "views/widget/widget_gtk.h"
6 6
7 #include "app/gfx/path.h" 7 #include "app/gfx/path.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "views/fill_layout.h" 9 #include "views/fill_layout.h"
10 #include "views/widget/default_theme_provider.h" 10 #include "views/widget/default_theme_provider.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 : is_window_(false), 63 : is_window_(false),
64 type_(type), 64 type_(type),
65 widget_(NULL), 65 widget_(NULL),
66 window_contents_(NULL), 66 window_contents_(NULL),
67 is_mouse_down_(false), 67 is_mouse_down_(false),
68 has_capture_(false), 68 has_capture_(false),
69 last_mouse_event_was_move_(false), 69 last_mouse_event_was_move_(false),
70 ALLOW_THIS_IN_INITIALIZER_LIST(close_widget_factory_(this)), 70 ALLOW_THIS_IN_INITIALIZER_LIST(close_widget_factory_(this)),
71 delete_on_destroy_(true), 71 delete_on_destroy_(true),
72 transparent_(false) { 72 transparent_(false) {
73 if (type_ != TYPE_CHILD)
74 focus_manager_.reset(new FocusManager(this));
73 } 75 }
74 76
75 WidgetGtk::~WidgetGtk() { 77 WidgetGtk::~WidgetGtk() {
76 MessageLoopForUI::current()->RemoveObserver(this); 78 MessageLoopForUI::current()->RemoveObserver(this);
77 } 79 }
78 80
79 void WidgetGtk::Init(GtkWidget* parent, 81 void WidgetGtk::Init(GtkWidget* parent,
80 const gfx::Rect& bounds) { 82 const gfx::Rect& bounds) {
81 // Force creation of the RootView if it hasn't been created yet. 83 // Force creation of the RootView if it hasn't been created yet.
82 GetRootView(); 84 GetRootView();
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 } 393 }
392 394
393 const Window* WidgetGtk::GetWindow() const { 395 const Window* WidgetGtk::GetWindow() const {
394 return GetWindowImpl(widget_); 396 return GetWindowImpl(widget_);
395 } 397 }
396 398
397 ThemeProvider* WidgetGtk::GetThemeProvider() const { 399 ThemeProvider* WidgetGtk::GetThemeProvider() const {
398 return default_theme_provider_.get(); 400 return default_theme_provider_.get();
399 } 401 }
400 402
403 FocusManager* WidgetGtk::GetFocusManager() {
404 return focus_manager_.get();
405 }
406
401 //////////////////////////////////////////////////////////////////////////////// 407 ////////////////////////////////////////////////////////////////////////////////
402 // WidgetGtk, MessageLoopForUI::Observer implementation: 408 // WidgetGtk, MessageLoopForUI::Observer implementation:
403 409
410 void WidgetGtk::WillProcessEvent(GdkEvent* event) {
411 }
412
404 void WidgetGtk::DidProcessEvent(GdkEvent* event) { 413 void WidgetGtk::DidProcessEvent(GdkEvent* event) {
405 if (root_view_->NeedsPainting(true)) 414 if (root_view_->NeedsPainting(true))
406 PaintNow(root_view_->GetScheduledPaintRect()); 415 PaintNow(root_view_->GetScheduledPaintRect());
407 } 416 }
408 417
409 //////////////////////////////////////////////////////////////////////////////// 418 ////////////////////////////////////////////////////////////////////////////////
410 // TODO(beng): organize into sections: 419 // TODO(beng): organize into sections:
411 420
412 void WidgetGtk::CreateGtkWidget(GtkWidget* parent, const gfx::Rect& bounds) { 421 void WidgetGtk::CreateGtkWidget(GtkWidget* parent, const gfx::Rect& bounds) {
413 if (type_ == TYPE_CHILD) { 422 if (type_ == TYPE_CHILD) {
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 } 520 }
512 521
513 gboolean WidgetGtk::OnLeaveNotify(GtkWidget* widget, GdkEventCrossing* event) { 522 gboolean WidgetGtk::OnLeaveNotify(GtkWidget* widget, GdkEventCrossing* event) {
514 last_mouse_event_was_move_ = false; 523 last_mouse_event_was_move_ = false;
515 if (!has_capture_ && !is_mouse_down_) 524 if (!has_capture_ && !is_mouse_down_)
516 root_view_->ProcessOnMouseExited(); 525 root_view_->ProcessOnMouseExited();
517 return true; 526 return true;
518 } 527 }
519 528
520 gboolean WidgetGtk::OnKeyPress(GtkWidget* widget, GdkEventKey* event) { 529 gboolean WidgetGtk::OnKeyPress(GtkWidget* widget, GdkEventKey* event) {
521 KeyEvent key_event(event); 530 KeyEvent key_event(event, false);
522 return root_view_->ProcessKeyEvent(key_event); 531 return root_view_->ProcessKeyEvent(key_event);
523 } 532 }
524 533
525 gboolean WidgetGtk::OnKeyRelease(GtkWidget* widget, GdkEventKey* event) { 534 gboolean WidgetGtk::OnKeyRelease(GtkWidget* widget, GdkEventKey* event) {
526 KeyEvent key_event(event); 535 KeyEvent key_event(event, false);
527 return root_view_->ProcessKeyEvent(key_event); 536 return root_view_->ProcessKeyEvent(key_event);
528 } 537 }
529 538
530 gboolean WidgetGtk::OnGrabBrokeEvent(GtkWidget* widget, GdkEvent* event) { 539 gboolean WidgetGtk::OnGrabBrokeEvent(GtkWidget* widget, GdkEvent* event) {
531 HandleGrabBroke(); 540 HandleGrabBroke();
532 return false; // To let other widgets get the event. 541 return false; // To let other widgets get the event.
533 } 542 }
534 543
535 void WidgetGtk::OnGrabNotify(GtkWidget* widget, gboolean was_grabbed) { 544 void WidgetGtk::OnGrabNotify(GtkWidget* widget, gboolean was_grabbed) {
536 gtk_grab_remove(window_contents_); 545 gtk_grab_remove(window_contents_);
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
826 void WidgetGtk::HandleGrabBroke() { 835 void WidgetGtk::HandleGrabBroke() {
827 if (has_capture_) { 836 if (has_capture_) {
828 if (is_mouse_down_) 837 if (is_mouse_down_)
829 root_view_->ProcessMouseDragCanceled(); 838 root_view_->ProcessMouseDragCanceled();
830 is_mouse_down_ = false; 839 is_mouse_down_ = false;
831 has_capture_ = false; 840 has_capture_ = false;
832 } 841 }
833 } 842 }
834 843
835 } // namespace views 844 } // namespace views
OLDNEW
« no previous file with comments | « views/widget/widget_gtk.h ('k') | views/window/dialog_client_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698