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

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

Issue 10834079: views: Extract Widget observer into its own header file. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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 | « ui/views/widget/widget.h ('k') | ui/views/widget/widget_observer.h » ('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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ui/views/widget/widget.h" 5 #include "ui/views/widget/widget.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "ui/base/hit_test.h" 10 #include "ui/base/hit_test.h"
11 #include "ui/base/l10n/l10n_font_util.h" 11 #include "ui/base/l10n/l10n_font_util.h"
12 #include "ui/base/resource/resource_bundle.h" 12 #include "ui/base/resource/resource_bundle.h"
13 #include "ui/compositor/compositor.h" 13 #include "ui/compositor/compositor.h"
14 #include "ui/compositor/layer.h" 14 #include "ui/compositor/layer.h"
15 #include "ui/gfx/screen.h" 15 #include "ui/gfx/screen.h"
16 #include "ui/views/focus/focus_manager.h" 16 #include "ui/views/focus/focus_manager.h"
17 #include "ui/views/focus/focus_manager_factory.h" 17 #include "ui/views/focus/focus_manager_factory.h"
18 #include "ui/views/focus/view_storage.h" 18 #include "ui/views/focus/view_storage.h"
19 #include "ui/views/focus/widget_focus_manager.h" 19 #include "ui/views/focus/widget_focus_manager.h"
20 #include "ui/views/ime/input_method.h" 20 #include "ui/views/ime/input_method.h"
21 #include "ui/views/views_delegate.h" 21 #include "ui/views/views_delegate.h"
22 #include "ui/views/widget/default_theme_provider.h" 22 #include "ui/views/widget/default_theme_provider.h"
23 #include "ui/views/widget/native_widget_private.h" 23 #include "ui/views/widget/native_widget_private.h"
24 #include "ui/views/widget/root_view.h" 24 #include "ui/views/widget/root_view.h"
25 #include "ui/views/widget/tooltip_manager.h" 25 #include "ui/views/widget/tooltip_manager.h"
26 #include "ui/views/widget/widget_delegate.h" 26 #include "ui/views/widget/widget_delegate.h"
27 #include "ui/views/widget/widget_observer.h"
27 #include "ui/views/window/custom_frame_view.h" 28 #include "ui/views/window/custom_frame_view.h"
28 29
29 #if !defined(OS_MACOSX) 30 #if !defined(OS_MACOSX)
30 #include "ui/views/controls/menu/menu_controller.h" 31 #include "ui/views/controls/menu/menu_controller.h"
31 #endif 32 #endif
32 33
33 namespace views { 34 namespace views {
34 35
35 namespace { 36 namespace {
36 37
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 // Unconverted methods (see header) -------------------------------------------- 341 // Unconverted methods (see header) --------------------------------------------
341 342
342 gfx::NativeView Widget::GetNativeView() const { 343 gfx::NativeView Widget::GetNativeView() const {
343 return native_widget_->GetNativeView(); 344 return native_widget_->GetNativeView();
344 } 345 }
345 346
346 gfx::NativeWindow Widget::GetNativeWindow() const { 347 gfx::NativeWindow Widget::GetNativeWindow() const {
347 return native_widget_->GetNativeWindow(); 348 return native_widget_->GetNativeWindow();
348 } 349 }
349 350
350 void Widget::AddObserver(Widget::Observer* observer) { 351 void Widget::AddObserver(WidgetObserver* observer) {
351 observers_.AddObserver(observer); 352 observers_.AddObserver(observer);
352 } 353 }
353 354
354 void Widget::RemoveObserver(Widget::Observer* observer) { 355 void Widget::RemoveObserver(WidgetObserver* observer) {
355 observers_.RemoveObserver(observer); 356 observers_.RemoveObserver(observer);
356 } 357 }
357 358
358 bool Widget::HasObserver(Widget::Observer* observer) { 359 bool Widget::HasObserver(WidgetObserver* observer) {
359 return observers_.HasObserver(observer); 360 return observers_.HasObserver(observer);
360 } 361 }
361 362
362 bool Widget::GetAccelerator(int cmd_id, ui::Accelerator* accelerator) { 363 bool Widget::GetAccelerator(int cmd_id, ui::Accelerator* accelerator) {
363 return false; 364 return false;
364 } 365 }
365 366
366 void Widget::ViewHierarchyChanged(bool is_add, View* parent, View* child) { 367 void Widget::ViewHierarchyChanged(bool is_add, View* parent, View* child) {
367 if (!is_add) { 368 if (!is_add) {
368 if (child == dragged_view_) 369 if (child == dragged_view_)
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
626 627
627 bool Widget::IsAccessibleWidget() const { 628 bool Widget::IsAccessibleWidget() const {
628 return native_widget_->IsAccessibleWidget(); 629 return native_widget_->IsAccessibleWidget();
629 } 630 }
630 631
631 ui::ThemeProvider* Widget::GetThemeProvider() const { 632 ui::ThemeProvider* Widget::GetThemeProvider() const {
632 const Widget* root_widget = GetTopLevelWidget(); 633 const Widget* root_widget = GetTopLevelWidget();
633 if (root_widget && root_widget != this) { 634 if (root_widget && root_widget != this) {
634 // Attempt to get the theme provider, and fall back to the default theme 635 // Attempt to get the theme provider, and fall back to the default theme
635 // provider if not found. 636 // provider if not found.
636 ThemeProvider* provider = root_widget->GetThemeProvider(); 637 ui::ThemeProvider* provider = root_widget->GetThemeProvider();
637 if (provider) 638 if (provider)
638 return provider; 639 return provider;
639 640
640 provider = root_widget->default_theme_provider_.get(); 641 provider = root_widget->default_theme_provider_.get();
641 if (provider) 642 if (provider)
642 return provider; 643 return provider;
643 } 644 }
644 return default_theme_provider_.get(); 645 return default_theme_provider_.get();
645 } 646 }
646 647
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
842 } 843 }
843 844
844 const NativeWidget* Widget::native_widget() const { 845 const NativeWidget* Widget::native_widget() const {
845 return native_widget_; 846 return native_widget_;
846 } 847 }
847 848
848 NativeWidget* Widget::native_widget() { 849 NativeWidget* Widget::native_widget() {
849 return native_widget_; 850 return native_widget_;
850 } 851 }
851 852
852 void Widget::SetCapture(views::View* view) { 853 void Widget::SetCapture(View* view) {
853 if (internal::NativeWidgetPrivate::IsMouseButtonDown()) 854 if (internal::NativeWidgetPrivate::IsMouseButtonDown())
854 is_mouse_button_pressed_ = true; 855 is_mouse_button_pressed_ = true;
855 if (internal::NativeWidgetPrivate::IsTouchDown()) 856 if (internal::NativeWidgetPrivate::IsTouchDown())
856 is_touch_down_ = true; 857 is_touch_down_ = true;
857 root_view_->SetMouseHandler(view); 858 root_view_->SetMouseHandler(view);
858 if (!native_widget_->HasCapture()) 859 if (!native_widget_->HasCapture())
859 native_widget_->SetCapture(); 860 native_widget_->SetCapture();
860 } 861 }
861 862
862 void Widget::ReleaseCapture() { 863 void Widget::ReleaseCapture() {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
918 } 919 }
919 920
920 void Widget::EnableInactiveRendering() { 921 void Widget::EnableInactiveRendering() {
921 SetInactiveRenderingDisabled(false); 922 SetInactiveRenderingDisabled(false);
922 } 923 }
923 924
924 void Widget::OnNativeWidgetActivationChanged(bool active) { 925 void Widget::OnNativeWidgetActivationChanged(bool active) {
925 if (!active) 926 if (!active)
926 SaveWindowPlacement(); 927 SaveWindowPlacement();
927 928
928 FOR_EACH_OBSERVER(Observer, observers_, 929 FOR_EACH_OBSERVER(WidgetObserver, observers_,
929 OnWidgetActivationChanged(this, active)); 930 OnWidgetActivationChanged(this, active));
930 } 931 }
931 932
932 void Widget::OnNativeFocus(gfx::NativeView old_focused_view) { 933 void Widget::OnNativeFocus(gfx::NativeView old_focused_view) {
933 WidgetFocusManager::GetInstance()->OnWidgetFocusEvent(old_focused_view, 934 WidgetFocusManager::GetInstance()->OnWidgetFocusEvent(old_focused_view,
934 GetNativeView()); 935 GetNativeView());
935 } 936 }
936 937
937 void Widget::OnNativeBlur(gfx::NativeView new_focused_view) { 938 void Widget::OnNativeBlur(gfx::NativeView new_focused_view) {
938 WidgetFocusManager::GetInstance()->OnWidgetFocusEvent(GetNativeView(), 939 WidgetFocusManager::GetInstance()->OnWidgetFocusEvent(GetNativeView(),
939 new_focused_view); 940 new_focused_view);
940 } 941 }
941 942
942 void Widget::OnNativeWidgetVisibilityChanged(bool visible) { 943 void Widget::OnNativeWidgetVisibilityChanged(bool visible) {
943 View* root = GetRootView(); 944 View* root = GetRootView();
944 root->PropagateVisibilityNotifications(root, visible); 945 root->PropagateVisibilityNotifications(root, visible);
945 FOR_EACH_OBSERVER(Observer, observers_, 946 FOR_EACH_OBSERVER(WidgetObserver, observers_,
946 OnWidgetVisibilityChanged(this, visible)); 947 OnWidgetVisibilityChanged(this, visible));
947 if (GetCompositor() && root->layer()) 948 if (GetCompositor() && root->layer())
948 root->layer()->SetVisible(visible); 949 root->layer()->SetVisible(visible);
949 } 950 }
950 951
951 void Widget::OnNativeWidgetCreated() { 952 void Widget::OnNativeWidgetCreated() {
952 if (is_top_level()) 953 if (is_top_level())
953 focus_manager_.reset(FocusManagerFactory::Create(this)); 954 focus_manager_.reset(FocusManagerFactory::Create(this));
954 955
955 native_widget_->SetAccessibleRole( 956 native_widget_->SetAccessibleRole(
956 widget_delegate_->GetAccessibleWindowRole()); 957 widget_delegate_->GetAccessibleWindowRole());
957 native_widget_->SetAccessibleState( 958 native_widget_->SetAccessibleState(
958 widget_delegate_->GetAccessibleWindowState()); 959 widget_delegate_->GetAccessibleWindowState());
959 960
960 native_widget_->InitModalType(widget_delegate_->GetModalType()); 961 native_widget_->InitModalType(widget_delegate_->GetModalType());
961 } 962 }
962 963
963 void Widget::OnNativeWidgetDestroying() { 964 void Widget::OnNativeWidgetDestroying() {
964 // Tell the focus manager (if any) that root_view is being removed 965 // Tell the focus manager (if any) that root_view is being removed
965 // in case that the focused view is under this root view. 966 // in case that the focused view is under this root view.
966 if (GetFocusManager()) 967 if (GetFocusManager())
967 GetFocusManager()->ViewRemoved(root_view_.get()); 968 GetFocusManager()->ViewRemoved(root_view_.get());
968 FOR_EACH_OBSERVER(Observer, observers_, OnWidgetClosing(this)); 969 FOR_EACH_OBSERVER(WidgetObserver, observers_, OnWidgetClosing(this));
969 if (non_client_view_) 970 if (non_client_view_)
970 non_client_view_->WindowClosing(); 971 non_client_view_->WindowClosing();
971 widget_delegate_->WindowClosing(); 972 widget_delegate_->WindowClosing();
972 } 973 }
973 974
974 void Widget::OnNativeWidgetDestroyed() { 975 void Widget::OnNativeWidgetDestroyed() {
975 widget_delegate_->DeleteDelegate(); 976 widget_delegate_->DeleteDelegate();
976 widget_delegate_ = NULL; 977 widget_delegate_ = NULL;
977 native_widget_destroyed_ = true; 978 native_widget_destroyed_ = true;
978 } 979 }
979 980
980 gfx::Size Widget::GetMinimumSize() { 981 gfx::Size Widget::GetMinimumSize() {
981 return non_client_view_ ? non_client_view_->GetMinimumSize() : gfx::Size(); 982 return non_client_view_ ? non_client_view_->GetMinimumSize() : gfx::Size();
982 } 983 }
983 984
984 gfx::Size Widget::GetMaximumSize() { 985 gfx::Size Widget::GetMaximumSize() {
985 return non_client_view_ ? non_client_view_->GetMaximumSize() : gfx::Size(); 986 return non_client_view_ ? non_client_view_->GetMaximumSize() : gfx::Size();
986 } 987 }
987 988
988 void Widget::OnNativeWidgetMove() { 989 void Widget::OnNativeWidgetMove() {
989 widget_delegate_->OnWidgetMove(); 990 widget_delegate_->OnWidgetMove();
990 FOR_EACH_OBSERVER(Observer, observers_, OnWidgetMoved(this)); 991 FOR_EACH_OBSERVER(WidgetObserver, observers_, OnWidgetMoved(this));
991 } 992 }
992 993
993 void Widget::OnNativeWidgetSizeChanged(const gfx::Size& new_size) { 994 void Widget::OnNativeWidgetSizeChanged(const gfx::Size& new_size) {
994 root_view_->SetSize(new_size); 995 root_view_->SetSize(new_size);
995 996
996 // Size changed notifications can fire prior to full initialization 997 // Size changed notifications can fire prior to full initialization
997 // i.e. during session restore. Avoid saving session state during these 998 // i.e. during session restore. Avoid saving session state during these
998 // startup procedures. 999 // startup procedures.
999 if (native_widget_initialized_) 1000 if (native_widget_initialized_)
1000 SaveWindowPlacement(); 1001 SaveWindowPlacement();
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
1326 1327
1327 //////////////////////////////////////////////////////////////////////////////// 1328 ////////////////////////////////////////////////////////////////////////////////
1328 // internal::NativeWidgetPrivate, NativeWidget implementation: 1329 // internal::NativeWidgetPrivate, NativeWidget implementation:
1329 1330
1330 internal::NativeWidgetPrivate* NativeWidgetPrivate::AsNativeWidgetPrivate() { 1331 internal::NativeWidgetPrivate* NativeWidgetPrivate::AsNativeWidgetPrivate() {
1331 return this; 1332 return this;
1332 } 1333 }
1333 1334
1334 } // namespace internal 1335 } // namespace internal
1335 } // namespace views 1336 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/widget/widget.h ('k') | ui/views/widget/widget_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698