| OLD | NEW |
| 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/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "base/trace_event/trace_event.h" | 10 #include "base/trace_event/trace_event.h" |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 Widget* widget_; | 104 Widget* widget_; |
| 105 | 105 |
| 106 DISALLOW_COPY_AND_ASSIGN(DefaultWidgetDelegate); | 106 DISALLOW_COPY_AND_ASSIGN(DefaultWidgetDelegate); |
| 107 }; | 107 }; |
| 108 | 108 |
| 109 //////////////////////////////////////////////////////////////////////////////// | 109 //////////////////////////////////////////////////////////////////////////////// |
| 110 // Widget, InitParams: | 110 // Widget, InitParams: |
| 111 | 111 |
| 112 Widget::InitParams::InitParams() | 112 Widget::InitParams::InitParams() |
| 113 : type(TYPE_WINDOW), | 113 : type(TYPE_WINDOW), |
| 114 delegate(NULL), | 114 delegate(nullptr), |
| 115 child(false), | 115 child(false), |
| 116 opacity(INFER_OPACITY), | 116 opacity(INFER_OPACITY), |
| 117 accept_events(true), | 117 accept_events(true), |
| 118 activatable(ACTIVATABLE_DEFAULT), | 118 activatable(ACTIVATABLE_DEFAULT), |
| 119 keep_on_top(false), | 119 keep_on_top(false), |
| 120 visible_on_all_workspaces(false), | 120 visible_on_all_workspaces(false), |
| 121 ownership(NATIVE_WIDGET_OWNS_WIDGET), | 121 ownership(NATIVE_WIDGET_OWNS_WIDGET), |
| 122 mirror_origin_in_rtl(false), | 122 mirror_origin_in_rtl(false), |
| 123 shadow_type(SHADOW_TYPE_DEFAULT), | 123 shadow_type(SHADOW_TYPE_DEFAULT), |
| 124 remove_standard_frame(false), | 124 remove_standard_frame(false), |
| 125 use_system_default_icon(false), | 125 use_system_default_icon(false), |
| 126 show_state(ui::SHOW_STATE_DEFAULT), | 126 show_state(ui::SHOW_STATE_DEFAULT), |
| 127 parent(NULL), | 127 parent(nullptr), |
| 128 native_widget(NULL), | 128 native_widget(nullptr), |
| 129 desktop_window_tree_host(NULL), | 129 native_theme(nullptr), |
| 130 desktop_window_tree_host(nullptr), |
| 130 layer_type(ui::LAYER_TEXTURED), | 131 layer_type(ui::LAYER_TEXTURED), |
| 131 context(NULL), | 132 context(nullptr), |
| 132 force_show_in_taskbar(false), | 133 force_show_in_taskbar(false), |
| 133 force_software_compositing(false) { | 134 force_software_compositing(false) { |
| 134 } | 135 } |
| 135 | 136 |
| 136 Widget::InitParams::InitParams(Type type) | 137 Widget::InitParams::InitParams(Type type) |
| 137 : type(type), | 138 : type(type), |
| 138 delegate(NULL), | 139 delegate(nullptr), |
| 139 child(false), | 140 child(false), |
| 140 opacity(INFER_OPACITY), | 141 opacity(INFER_OPACITY), |
| 141 accept_events(true), | 142 accept_events(true), |
| 142 activatable(ACTIVATABLE_DEFAULT), | 143 activatable(ACTIVATABLE_DEFAULT), |
| 143 keep_on_top(type == TYPE_MENU || type == TYPE_DRAG), | 144 keep_on_top(type == TYPE_MENU || type == TYPE_DRAG), |
| 144 visible_on_all_workspaces(false), | 145 visible_on_all_workspaces(false), |
| 145 ownership(NATIVE_WIDGET_OWNS_WIDGET), | 146 ownership(NATIVE_WIDGET_OWNS_WIDGET), |
| 146 mirror_origin_in_rtl(false), | 147 mirror_origin_in_rtl(false), |
| 147 shadow_type(SHADOW_TYPE_DEFAULT), | 148 shadow_type(SHADOW_TYPE_DEFAULT), |
| 148 remove_standard_frame(false), | 149 remove_standard_frame(false), |
| 149 use_system_default_icon(false), | 150 use_system_default_icon(false), |
| 150 show_state(ui::SHOW_STATE_DEFAULT), | 151 show_state(ui::SHOW_STATE_DEFAULT), |
| 151 parent(NULL), | 152 parent(nullptr), |
| 152 native_widget(NULL), | 153 native_widget(nullptr), |
| 153 desktop_window_tree_host(NULL), | 154 native_theme(nullptr), |
| 155 desktop_window_tree_host(nullptr), |
| 154 layer_type(ui::LAYER_TEXTURED), | 156 layer_type(ui::LAYER_TEXTURED), |
| 155 context(NULL), | 157 context(nullptr), |
| 156 force_show_in_taskbar(false), | 158 force_show_in_taskbar(false), |
| 157 force_software_compositing(false) { | 159 force_software_compositing(false) { |
| 158 } | 160 } |
| 159 | 161 |
| 160 Widget::InitParams::~InitParams() { | 162 Widget::InitParams::~InitParams() { |
| 161 } | 163 } |
| 162 | 164 |
| 163 //////////////////////////////////////////////////////////////////////////////// | 165 //////////////////////////////////////////////////////////////////////////////// |
| 164 // Widget, public: | 166 // Widget, public: |
| 165 | 167 |
| 166 Widget::Widget() | 168 Widget::Widget() |
| 167 : native_widget_(NULL), | 169 : native_widget_(nullptr), |
| 168 widget_delegate_(NULL), | 170 native_theme_(nullptr), |
| 169 non_client_view_(NULL), | 171 widget_delegate_(nullptr), |
| 170 dragged_view_(NULL), | 172 non_client_view_(nullptr), |
| 173 dragged_view_(nullptr), |
| 171 ownership_(InitParams::NATIVE_WIDGET_OWNS_WIDGET), | 174 ownership_(InitParams::NATIVE_WIDGET_OWNS_WIDGET), |
| 172 is_secondary_widget_(true), | 175 is_secondary_widget_(true), |
| 173 frame_type_(FRAME_TYPE_DEFAULT), | 176 frame_type_(FRAME_TYPE_DEFAULT), |
| 174 disable_inactive_rendering_(false), | 177 disable_inactive_rendering_(false), |
| 175 widget_closed_(false), | 178 widget_closed_(false), |
| 176 saved_show_state_(ui::SHOW_STATE_DEFAULT), | 179 saved_show_state_(ui::SHOW_STATE_DEFAULT), |
| 177 focus_on_creation_(true), | 180 focus_on_creation_(true), |
| 178 is_top_level_(false), | 181 is_top_level_(false), |
| 179 native_widget_initialized_(false), | 182 native_widget_initialized_(false), |
| 180 native_widget_destroyed_(false), | 183 native_widget_destroyed_(false), |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 358 | 361 |
| 359 ownership_ = params.ownership; | 362 ownership_ = params.ownership; |
| 360 native_widget_ = CreateNativeWidget(params, this)->AsNativeWidgetPrivate(); | 363 native_widget_ = CreateNativeWidget(params, this)->AsNativeWidgetPrivate(); |
| 361 root_view_.reset(CreateRootView()); | 364 root_view_.reset(CreateRootView()); |
| 362 default_theme_provider_.reset(new ui::DefaultThemeProvider); | 365 default_theme_provider_.reset(new ui::DefaultThemeProvider); |
| 363 if (params.type == InitParams::TYPE_MENU) { | 366 if (params.type == InitParams::TYPE_MENU) { |
| 364 is_mouse_button_pressed_ = | 367 is_mouse_button_pressed_ = |
| 365 internal::NativeWidgetPrivate::IsMouseButtonDown(); | 368 internal::NativeWidgetPrivate::IsMouseButtonDown(); |
| 366 } | 369 } |
| 367 native_widget_->InitNativeWidget(params); | 370 native_widget_->InitNativeWidget(params); |
| 371 native_theme_ = params.native_theme; |
| 368 if (RequiresNonClientView(params.type)) { | 372 if (RequiresNonClientView(params.type)) { |
| 369 non_client_view_ = new NonClientView; | 373 non_client_view_ = new NonClientView; |
| 370 non_client_view_->SetFrameView(CreateNonClientFrameView()); | 374 non_client_view_->SetFrameView(CreateNonClientFrameView()); |
| 371 // Create the ClientView, add it to the NonClientView and add the | 375 // Create the ClientView, add it to the NonClientView and add the |
| 372 // NonClientView to the RootView. This will cause everything to be parented. | 376 // NonClientView to the RootView. This will cause everything to be parented. |
| 373 non_client_view_->set_client_view(widget_delegate_->CreateClientView(this)); | 377 non_client_view_->set_client_view(widget_delegate_->CreateClientView(this)); |
| 374 non_client_view_->SetOverlayView(widget_delegate_->CreateOverlayView()); | 378 non_client_view_->SetOverlayView(widget_delegate_->CreateOverlayView()); |
| 375 SetContentsView(non_client_view_); | 379 SetContentsView(non_client_view_); |
| 376 // Initialize the window's icon and title before setting the window's | 380 // Initialize the window's icon and title before setting the window's |
| 377 // initial bounds; the frame view's preferred height may depend on the | 381 // initial bounds; the frame view's preferred height may depend on the |
| (...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 759 return provider; | 763 return provider; |
| 760 | 764 |
| 761 provider = root_widget->default_theme_provider_.get(); | 765 provider = root_widget->default_theme_provider_.get(); |
| 762 if (provider) | 766 if (provider) |
| 763 return provider; | 767 return provider; |
| 764 } | 768 } |
| 765 return default_theme_provider_.get(); | 769 return default_theme_provider_.get(); |
| 766 } | 770 } |
| 767 | 771 |
| 768 const ui::NativeTheme* Widget::GetNativeTheme() const { | 772 const ui::NativeTheme* Widget::GetNativeTheme() const { |
| 769 return native_widget_->GetNativeTheme(); | 773 return native_theme_? native_theme_ : native_widget_->GetNativeTheme(); |
| 770 } | 774 } |
| 771 | 775 |
| 772 FocusManager* Widget::GetFocusManager() { | 776 FocusManager* Widget::GetFocusManager() { |
| 773 Widget* toplevel_widget = GetTopLevelWidget(); | 777 Widget* toplevel_widget = GetTopLevelWidget(); |
| 774 return toplevel_widget ? toplevel_widget->focus_manager_.get() : NULL; | 778 return toplevel_widget ? toplevel_widget->focus_manager_.get() : NULL; |
| 775 } | 779 } |
| 776 | 780 |
| 777 const FocusManager* Widget::GetFocusManager() const { | 781 const FocusManager* Widget::GetFocusManager() const { |
| 778 const Widget* toplevel_widget = GetTopLevelWidget(); | 782 const Widget* toplevel_widget = GetTopLevelWidget(); |
| 779 return toplevel_widget ? toplevel_widget->focus_manager_.get() : NULL; | 783 return toplevel_widget ? toplevel_widget->focus_manager_.get() : NULL; |
| (...skipping 718 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1498 | 1502 |
| 1499 //////////////////////////////////////////////////////////////////////////////// | 1503 //////////////////////////////////////////////////////////////////////////////// |
| 1500 // internal::NativeWidgetPrivate, NativeWidget implementation: | 1504 // internal::NativeWidgetPrivate, NativeWidget implementation: |
| 1501 | 1505 |
| 1502 internal::NativeWidgetPrivate* NativeWidgetPrivate::AsNativeWidgetPrivate() { | 1506 internal::NativeWidgetPrivate* NativeWidgetPrivate::AsNativeWidgetPrivate() { |
| 1503 return this; | 1507 return this; |
| 1504 } | 1508 } |
| 1505 | 1509 |
| 1506 } // namespace internal | 1510 } // namespace internal |
| 1507 } // namespace views | 1511 } // namespace views |
| OLD | NEW |