Use a virtual base class to provide GetWidget().
This addresses issues with: * Failure to override both GetWidget() variants * Having to override just to specify which base class provides the implementation Bug: none Change-Id: I87ec1f524d876e4488135ecbcff54aa9591e4e47 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1996948 Commit-Queue: Peter Kasting <pkasting@chromium.org> Reviewed-by: Scott Violet <sky@chromium.org> Reviewed-by: Allen Bauer <kylixrd@chromium.org> Cr-Commit-Position: refs/heads/master@{#730791}
This commit is contained in:

committed by
Commit Bot

parent
f765bb1cee
commit
b653a4a87f
ash
chrome/browser
chromeos
safe_browsing
cloud_content_scanning
ui
views
constrained_web_dialog_delegate_views.ccdropdown_bar_host.ccdropdown_bar_host.h
extensions
chooser_dialog_view.ccchooser_dialog_view.hextension_dialog.ccextension_dialog.hmedia_galleries_dialog_views.ccmedia_galleries_dialog_views.h
external_protocol_dialog.ccexternal_protocol_dialog.hframe
global_media_controls
login_handler_views.ccoverlay
profiles
simple_message_box_views.ccsimple_message_box_views.htab_modal_confirm_dialog_views.cctab_modal_confirm_dialog_views.htest
toolbar
update_recommended_message_box.ccupdate_recommended_message_box.hcomponents
app_modal
exo
extensions/components/native_app_window
remoting/host/chromeos
ui
chromeos
search_box
views
BUILD.gn
bubble
controls
focus
test
view.ccview.hwidget
desktop_aura
desktop_native_widget_aura.ccdesktop_native_widget_aura.hdesktop_window_tree_host_linux_interactive_uitest.cc
native_widget_aura.ccnative_widget_aura.hnative_widget_aura_unittest.ccnative_widget_mac.hnative_widget_mac.mmnative_widget_mac_unittest.mmnative_widget_private.hroot_view.ccroot_view.hwidget.ccwidget_delegate.ccwidget_delegate.hwidget_getter.hwindow
@ -46,10 +46,11 @@ class PanedWidgetDelegate : public views::WidgetDelegate {
|
||||
std::copy(accessible_panes_.begin(), accessible_panes_.end(),
|
||||
std::back_inserter(*panes));
|
||||
}
|
||||
views::Widget* GetWidget() override { return widget_; }
|
||||
const views::Widget* GetWidget() const override { return widget_; }
|
||||
|
||||
private:
|
||||
// views::WidgetDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override { return widget_; }
|
||||
|
||||
views::Widget* widget_;
|
||||
std::vector<views::View*> accessible_panes_;
|
||||
};
|
||||
|
@ -21,14 +21,15 @@ class TestWindowDelegate : public views::WidgetDelegate {
|
||||
|
||||
// views::WidgetDelegate:
|
||||
void DeleteDelegate() override { delete this; }
|
||||
views::Widget* GetWidget() override { return widget_; }
|
||||
const views::Widget* GetWidget() const override { return widget_; }
|
||||
bool CanActivate() const override { return false; }
|
||||
bool CanResize() const override { return true; }
|
||||
bool CanMaximize() const override { return true; }
|
||||
bool ShouldAdvanceFocusToTopLevelWidget() const override { return true; }
|
||||
|
||||
private:
|
||||
// views::WidgetDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override { return widget_; }
|
||||
|
||||
views::Widget* widget_ = nullptr;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(TestWindowDelegate);
|
||||
|
@ -29,12 +29,13 @@ class LoginTestBase::WidgetDelegate : public views::WidgetDelegate {
|
||||
// views::WidgetDelegate:
|
||||
void DeleteDelegate() override { delete this; }
|
||||
views::View* GetInitiallyFocusedView() override { return content_; }
|
||||
views::Widget* GetWidget() override { return content_->GetWidget(); }
|
||||
const views::Widget* GetWidget() const override {
|
||||
|
||||
private:
|
||||
// views::WidgetDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override {
|
||||
return content_->GetWidget();
|
||||
}
|
||||
|
||||
private:
|
||||
views::View* content_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(WidgetDelegate);
|
||||
|
@ -22,11 +22,12 @@ class LockScreenWidgetDelegate : public views::WidgetDelegate {
|
||||
views::View* GetInitiallyFocusedView() override {
|
||||
return widget_->GetContentsView();
|
||||
}
|
||||
views::Widget* GetWidget() override { return widget_; }
|
||||
const views::Widget* GetWidget() const override { return widget_; }
|
||||
void DeleteDelegate() override { delete this; }
|
||||
|
||||
private:
|
||||
// views::WidgetDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override { return widget_; }
|
||||
|
||||
views::Widget* widget_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(LockScreenWidgetDelegate);
|
||||
|
@ -90,8 +90,6 @@ class ShelfNavigationWidget::Delegate : public views::AccessiblePaneView,
|
||||
|
||||
// views::WidgetDelegate:
|
||||
bool CanActivate() const override;
|
||||
views::Widget* GetWidget() override { return View::GetWidget(); }
|
||||
const views::Widget* GetWidget() const override { return View::GetWidget(); }
|
||||
|
||||
BackButton* back_button() const { return back_button_; }
|
||||
HomeButton* home_button() const { return home_button_; }
|
||||
|
@ -111,8 +111,6 @@ class ShelfWidget::DelegateView : public views::WidgetDelegate,
|
||||
|
||||
// views::WidgetDelegate:
|
||||
void DeleteDelegate() override { delete this; }
|
||||
views::Widget* GetWidget() override { return View::GetWidget(); }
|
||||
const views::Widget* GetWidget() const override { return View::GetWidget(); }
|
||||
|
||||
bool CanActivate() const override;
|
||||
void ReorderChildLayers(ui::Layer* parent_layer) override;
|
||||
|
@ -135,14 +135,6 @@ const char* StatusAreaWidgetDelegate::GetClassName() const {
|
||||
return "ash/StatusAreaWidgetDelegate";
|
||||
}
|
||||
|
||||
views::Widget* StatusAreaWidgetDelegate::GetWidget() {
|
||||
return View::GetWidget();
|
||||
}
|
||||
|
||||
const views::Widget* StatusAreaWidgetDelegate::GetWidget() const {
|
||||
return View::GetWidget();
|
||||
}
|
||||
|
||||
void StatusAreaWidgetDelegate::OnGestureEvent(ui::GestureEvent* event) {
|
||||
views::Widget* target_widget =
|
||||
static_cast<views::View*>(event->target())->GetWidget();
|
||||
|
@ -44,8 +44,6 @@ class ASH_EXPORT StatusAreaWidgetDelegate : public views::AccessiblePaneView,
|
||||
// views::AccessiblePaneView:
|
||||
View* GetDefaultFocusableChild() override;
|
||||
const char* GetClassName() const override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
|
||||
// ui::EventHandler:
|
||||
void OnGestureEvent(ui::GestureEvent* event) override;
|
||||
|
@ -53,8 +53,6 @@ class TestWindowDelegate : public views::WidgetDelegate {
|
||||
|
||||
// views::WidgetDelegate:
|
||||
void DeleteDelegate() override { delete this; }
|
||||
views::Widget* GetWidget() override { return widget_; }
|
||||
const views::Widget* GetWidget() const override { return widget_; }
|
||||
bool CanActivate() const override { return true; }
|
||||
bool CanResize() const override { return true; }
|
||||
bool CanMaximize() const override { return true; }
|
||||
@ -63,6 +61,9 @@ class TestWindowDelegate : public views::WidgetDelegate {
|
||||
void set_widget(views::Widget* widget) { widget_ = widget; }
|
||||
|
||||
private:
|
||||
// views::WidgetDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override { return widget_; }
|
||||
|
||||
views::Widget* widget_ = nullptr;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(TestWindowDelegate);
|
||||
|
@ -35,12 +35,13 @@ class LoginTestWidgetDelegate : public views::WidgetDelegate {
|
||||
|
||||
// views::WidgetDelegate:
|
||||
void DeleteDelegate() override { delete this; }
|
||||
views::Widget* GetWidget() override { return widget_; }
|
||||
const views::Widget* GetWidget() const override { return widget_; }
|
||||
bool CanActivate() const override { return true; }
|
||||
bool ShouldAdvanceFocusToTopLevelWidget() const override { return true; }
|
||||
|
||||
private:
|
||||
// views::WidgetDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override { return widget_; }
|
||||
|
||||
views::Widget* widget_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(LoginTestWidgetDelegate);
|
||||
|
@ -4511,8 +4511,6 @@ class TestWindowDelegateWithWidget : public views::WidgetDelegate {
|
||||
|
||||
// views::WidgetDelegate:
|
||||
void DeleteDelegate() override { delete this; }
|
||||
views::Widget* GetWidget() override { return widget_; }
|
||||
const views::Widget* GetWidget() const override { return widget_; }
|
||||
bool CanActivate() const override { return true; }
|
||||
bool CanResize() const override { return can_resize_; }
|
||||
bool CanMaximize() const override { return true; }
|
||||
@ -4521,6 +4519,9 @@ class TestWindowDelegateWithWidget : public views::WidgetDelegate {
|
||||
void set_widget(views::Widget* widget) { widget_ = widget; }
|
||||
|
||||
private:
|
||||
// views::WidgetDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override { return widget_; }
|
||||
|
||||
bool can_resize_;
|
||||
views::Widget* widget_ = nullptr;
|
||||
|
||||
|
@ -82,14 +82,6 @@ void AccessibilityPanel::Close() {
|
||||
widget_->Close();
|
||||
}
|
||||
|
||||
const views::Widget* AccessibilityPanel::GetWidget() const {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
views::Widget* AccessibilityPanel::GetWidget() {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
content::WebContents* AccessibilityPanel::GetWebContents() {
|
||||
return web_contents_;
|
||||
}
|
||||
@ -102,6 +94,10 @@ views::View* AccessibilityPanel::GetContentsView() {
|
||||
return web_view_;
|
||||
}
|
||||
|
||||
const views::Widget* AccessibilityPanel::GetWidgetImpl() const {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
bool AccessibilityPanel::HandleContextMenu(
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const content::ContextMenuParams& params) {
|
||||
|
@ -38,8 +38,6 @@ class AccessibilityPanel : public views::WidgetDelegate,
|
||||
void Close();
|
||||
|
||||
// WidgetDelegate:
|
||||
const views::Widget* GetWidget() const override;
|
||||
views::Widget* GetWidget() override;
|
||||
void DeleteDelegate() override;
|
||||
views::View* GetContentsView() override;
|
||||
|
||||
@ -50,6 +48,9 @@ class AccessibilityPanel : public views::WidgetDelegate,
|
||||
private:
|
||||
class AccessibilityPanelWebContentsObserver;
|
||||
|
||||
// WidgetDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
// content::WebContentsDelegate:
|
||||
bool HandleContextMenu(content::RenderFrameHost* render_frame_host,
|
||||
const content::ContextMenuParams& params) override;
|
||||
|
@ -111,10 +111,6 @@ views::View* ExternalProtocolDialog::GetContentsView() {
|
||||
return message_box_view_;
|
||||
}
|
||||
|
||||
const views::Widget* ExternalProtocolDialog::GetWidget() const {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
||||
views::Widget* ExternalProtocolDialog::GetWidget() {
|
||||
const views::Widget* ExternalProtocolDialog::GetWidgetImpl() const {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
@ -35,10 +35,11 @@ class ExternalProtocolDialog : public views::DialogDelegate {
|
||||
base::string16 GetWindowTitle() const override;
|
||||
void DeleteDelegate() override;
|
||||
views::View* GetContentsView() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
views::Widget* GetWidget() override;
|
||||
|
||||
private:
|
||||
// views::DialogDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
// The message box view whose commands we handle.
|
||||
views::MessageBoxView* message_box_view_;
|
||||
|
||||
|
@ -80,14 +80,6 @@ views::View* DeepScanningDialogViews::GetContentsView() {
|
||||
return contents_view_.get();
|
||||
}
|
||||
|
||||
views::Widget* DeepScanningDialogViews::GetWidget() {
|
||||
return contents_view_->GetWidget();
|
||||
}
|
||||
|
||||
const views::Widget* DeepScanningDialogViews::GetWidget() const {
|
||||
return contents_view_->GetWidget();
|
||||
}
|
||||
|
||||
void DeepScanningDialogViews::DeleteDelegate() {
|
||||
delete this;
|
||||
}
|
||||
@ -126,6 +118,10 @@ void DeepScanningDialogViews::ShowResult(bool success) {
|
||||
|
||||
DeepScanningDialogViews::~DeepScanningDialogViews() = default;
|
||||
|
||||
const views::Widget* DeepScanningDialogViews::GetWidgetImpl() const {
|
||||
return contents_view_->GetWidget();
|
||||
}
|
||||
|
||||
void DeepScanningDialogViews::UpdateDialog() {
|
||||
DCHECK(shown_);
|
||||
DCHECK(scan_success_.has_value());
|
||||
|
@ -38,8 +38,6 @@ class DeepScanningDialogViews : public views::DialogDelegate {
|
||||
bool Cancel() override;
|
||||
bool ShouldShowCloseButton() const override;
|
||||
views::View* GetContentsView() override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
void DeleteDelegate() override;
|
||||
ui::ModalType GetModalType() const override;
|
||||
|
||||
@ -50,6 +48,9 @@ class DeepScanningDialogViews : public views::DialogDelegate {
|
||||
private:
|
||||
~DeepScanningDialogViews() override;
|
||||
|
||||
// views::DialogDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
// Update the UI depending on |scan_success_|.
|
||||
void UpdateDialog();
|
||||
|
||||
|
@ -78,8 +78,6 @@ class ConstrainedDialogWebView : public views::WebView,
|
||||
// views::WidgetDelegate:
|
||||
views::View* GetInitiallyFocusedView() override;
|
||||
void WindowClosing() override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
base::string16 GetWindowTitle() const override;
|
||||
base::string16 GetAccessibleWindowTitle() const override;
|
||||
views::View* GetContentsView() override;
|
||||
@ -288,14 +286,6 @@ void ConstrainedDialogWebView::WindowClosing() {
|
||||
GetWebDialogDelegate()->OnDialogClosed(std::string());
|
||||
}
|
||||
|
||||
views::Widget* ConstrainedDialogWebView::GetWidget() {
|
||||
return View::GetWidget();
|
||||
}
|
||||
|
||||
const views::Widget* ConstrainedDialogWebView::GetWidget() const {
|
||||
return View::GetWidget();
|
||||
}
|
||||
|
||||
base::string16 ConstrainedDialogWebView::GetWindowTitle() const {
|
||||
return impl_->closed_via_webui() ? base::string16()
|
||||
: GetWebDialogDelegate()->GetDialogTitle();
|
||||
|
@ -239,10 +239,6 @@ void DropdownBarHost::GetWidgetBounds(gfx::Rect* bounds) {
|
||||
*bounds = browser_view_->bounds();
|
||||
}
|
||||
|
||||
views::Widget* DropdownBarHost::GetWidget() {
|
||||
return host_.get();
|
||||
}
|
||||
|
||||
const views::Widget* DropdownBarHost::GetWidget() const {
|
||||
const views::Widget* DropdownBarHost::GetWidgetImpl() const {
|
||||
return host_.get();
|
||||
}
|
||||
|
@ -140,10 +140,6 @@ class DropdownBarHost : public ui::AcceleratorTarget,
|
||||
return animation_.get();
|
||||
}
|
||||
|
||||
// views::WidgetDelegate:
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
|
||||
private:
|
||||
// Set the view whose position in the |browser_view_| view hierarchy
|
||||
// determines the z-order of |host_| relative to views with layers and
|
||||
@ -152,6 +148,9 @@ class DropdownBarHost : public ui::AcceleratorTarget,
|
||||
// Implemented in platform-specific files.
|
||||
void SetHostViewNative(views::View* host_view);
|
||||
|
||||
// views::WidgetDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
// The BrowserView that created us.
|
||||
BrowserView* browser_view_;
|
||||
|
||||
|
@ -100,18 +100,14 @@ views::View* ChooserDialogView::GetContentsView() {
|
||||
return device_chooser_content_view_;
|
||||
}
|
||||
|
||||
views::Widget* ChooserDialogView::GetWidget() {
|
||||
return device_chooser_content_view_->GetWidget();
|
||||
}
|
||||
|
||||
const views::Widget* ChooserDialogView::GetWidget() const {
|
||||
return device_chooser_content_view_->GetWidget();
|
||||
}
|
||||
|
||||
void ChooserDialogView::OnSelectionChanged() {
|
||||
DialogModelChanged();
|
||||
}
|
||||
|
||||
const views::Widget* ChooserDialogView::GetWidgetImpl() const {
|
||||
return device_chooser_content_view_->GetWidget();
|
||||
}
|
||||
|
||||
void ChromeExtensionChooserDialog::ShowDialogImpl(
|
||||
std::unique_ptr<ChooserController> chooser_controller) const {
|
||||
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
||||
|
@ -37,8 +37,6 @@ class ChooserDialogView : public views::DialogDelegateView,
|
||||
|
||||
// views::DialogDelegateView:
|
||||
views::View* GetContentsView() override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
|
||||
// views::TableViewObserver:
|
||||
void OnSelectionChanged() override;
|
||||
@ -48,6 +46,9 @@ class ChooserDialogView : public views::DialogDelegateView,
|
||||
}
|
||||
|
||||
private:
|
||||
// views::DialogDelegateView:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
DeviceChooserContentView* device_chooser_content_view_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(ChooserDialogView);
|
||||
|
@ -131,14 +131,6 @@ void ExtensionDialog::DeleteDelegate() {
|
||||
Release();
|
||||
}
|
||||
|
||||
views::Widget* ExtensionDialog::GetWidget() {
|
||||
return GetExtensionView()->GetWidget();
|
||||
}
|
||||
|
||||
const views::Widget* ExtensionDialog::GetWidget() const {
|
||||
return GetExtensionView()->GetWidget();
|
||||
}
|
||||
|
||||
views::View* ExtensionDialog::GetContentsView() {
|
||||
return GetExtensionView();
|
||||
}
|
||||
@ -244,3 +236,7 @@ ExtensionViewViews* ExtensionDialog::GetExtensionView(
|
||||
extensions::ExtensionViewHost* host) {
|
||||
return static_cast<ExtensionViewViews*>(host->view());
|
||||
}
|
||||
|
||||
const views::Widget* ExtensionDialog::GetWidgetImpl() const {
|
||||
return GetExtensionView()->GetWidget();
|
||||
}
|
||||
|
@ -75,8 +75,6 @@ class ExtensionDialog : public views::DialogDelegate,
|
||||
base::string16 GetWindowTitle() const override;
|
||||
void WindowClosing() override;
|
||||
void DeleteDelegate() override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
views::View* GetContentsView() override;
|
||||
|
||||
// content::NotificationObserver:
|
||||
@ -105,6 +103,9 @@ class ExtensionDialog : public views::DialogDelegate,
|
||||
static ExtensionViewViews* GetExtensionView(
|
||||
extensions::ExtensionViewHost* host);
|
||||
|
||||
// views::DialogDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
// Window Title
|
||||
base::string16 window_title_;
|
||||
|
||||
|
@ -107,6 +107,10 @@ void MediaGalleriesDialogViews::AcceptDialogForTesting() {
|
||||
web_modal::WebContentsModalDialogManager::TestApi(manager).CloseAllDialogs();
|
||||
}
|
||||
|
||||
const views::Widget* MediaGalleriesDialogViews::GetWidgetImpl() const {
|
||||
return contents_->GetWidget();
|
||||
}
|
||||
|
||||
void MediaGalleriesDialogViews::InitChildViews() {
|
||||
// Outer dialog layout.
|
||||
contents_->RemoveAllChildViews(true);
|
||||
@ -237,14 +241,6 @@ void MediaGalleriesDialogViews::DeleteDelegate() {
|
||||
controller_->DialogFinished(accepted_);
|
||||
}
|
||||
|
||||
views::Widget* MediaGalleriesDialogViews::GetWidget() {
|
||||
return contents_->GetWidget();
|
||||
}
|
||||
|
||||
const views::Widget* MediaGalleriesDialogViews::GetWidget() const {
|
||||
return contents_->GetWidget();
|
||||
}
|
||||
|
||||
views::View* MediaGalleriesDialogViews::GetContentsView() {
|
||||
return contents_;
|
||||
}
|
||||
|
@ -42,8 +42,6 @@ class MediaGalleriesDialogViews : public MediaGalleriesDialog,
|
||||
base::string16 GetWindowTitle() const override;
|
||||
bool ShouldShowCloseButton() const override;
|
||||
void DeleteDelegate() override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
views::View* GetContentsView() override;
|
||||
bool IsDialogButtonEnabled(ui::DialogButton button) const override;
|
||||
ui::ModalType GetModalType() const override;
|
||||
@ -69,6 +67,9 @@ class MediaGalleriesDialogViews : public MediaGalleriesDialog,
|
||||
// MediaGalleriesDialog:
|
||||
void AcceptDialogForTesting() override;
|
||||
|
||||
// views::DialogDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
void InitChildViews();
|
||||
|
||||
// Adds a checkbox or updates an existing checkbox. Returns true if a new one
|
||||
|
@ -156,14 +156,6 @@ ui::ModalType ExternalProtocolDialog::GetModalType() const {
|
||||
return ui::MODAL_TYPE_CHILD;
|
||||
}
|
||||
|
||||
views::Widget* ExternalProtocolDialog::GetWidget() {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
||||
const views::Widget* ExternalProtocolDialog::GetWidget() const {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
||||
void ExternalProtocolDialog::ShowRememberSelectionCheckbox() {
|
||||
message_box_view_->SetCheckBoxLabel(
|
||||
l10n_util::GetStringUTF16(IDS_EXTERNAL_PROTOCOL_CHECKBOX_TEXT));
|
||||
@ -175,3 +167,7 @@ void ExternalProtocolDialog::SetRememberSelectionCheckboxCheckedForTesting(
|
||||
ShowRememberSelectionCheckbox();
|
||||
message_box_view_->SetCheckBoxSelected(checked);
|
||||
}
|
||||
|
||||
const views::Widget* ExternalProtocolDialog::GetWidgetImpl() const {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
@ -41,8 +41,6 @@ class ExternalProtocolDialog : public views::DialogDelegateView,
|
||||
bool Accept() override;
|
||||
views::View* GetContentsView() override;
|
||||
ui::ModalType GetModalType() const override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
|
||||
private:
|
||||
friend class test::ExternalProtocolDialogTestApi;
|
||||
@ -50,6 +48,9 @@ class ExternalProtocolDialog : public views::DialogDelegateView,
|
||||
void ShowRememberSelectionCheckbox();
|
||||
void SetRememberSelectionCheckboxCheckedForTesting(bool checked);
|
||||
|
||||
// views::DialogDelegateView:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
const GURL url_;
|
||||
const base::string16 program_name_;
|
||||
const base::Optional<url::Origin> initiating_origin_;
|
||||
|
@ -2400,14 +2400,6 @@ void BrowserView::OnWidgetMove() {
|
||||
location_bar_view->GetOmniboxView()->CloseOmniboxPopup();
|
||||
}
|
||||
|
||||
views::Widget* BrowserView::GetWidget() {
|
||||
return View::GetWidget();
|
||||
}
|
||||
|
||||
const views::Widget* BrowserView::GetWidget() const {
|
||||
return View::GetWidget();
|
||||
}
|
||||
|
||||
void BrowserView::RevealTabStripIfNeeded() {
|
||||
if (!immersive_mode_controller_->IsEnabled())
|
||||
return;
|
||||
|
@ -476,8 +476,6 @@ class BrowserView : public BrowserWindow,
|
||||
void OnWindowBeginUserBoundsChange() override;
|
||||
void OnWindowEndUserBoundsChange() override;
|
||||
void OnWidgetMove() override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
void GetAccessiblePanes(std::vector<View*>* panes) override;
|
||||
|
||||
// views::WidgetObserver:
|
||||
|
@ -70,14 +70,15 @@ class OverlayMediaNotificationWidgetDelegate : public views::WidgetDelegate {
|
||||
|
||||
// views::WidgetDelegate:
|
||||
bool ShouldShowWindowTitle() const override { return false; }
|
||||
views::Widget* GetWidget() override { return widget_; }
|
||||
const views::Widget* GetWidget() const override { return widget_; }
|
||||
views::NonClientFrameView* CreateNonClientFrameView(
|
||||
views::Widget* widget) override {
|
||||
return new OverlayMediaNotificationFrameView();
|
||||
}
|
||||
|
||||
private:
|
||||
// views::WidgetDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override { return widget_; }
|
||||
|
||||
// Owns OverlayMediaNotificationWidgetDelegate.
|
||||
OverlayMediaNotificationView* widget_;
|
||||
};
|
||||
|
@ -147,10 +147,6 @@ class LoginHandlerViews : public LoginHandler {
|
||||
}
|
||||
|
||||
views::View* GetContentsView() override { return login_view_; }
|
||||
views::Widget* GetWidget() override { return login_view_->GetWidget(); }
|
||||
const views::Widget* GetWidget() const override {
|
||||
return login_view_->GetWidget();
|
||||
}
|
||||
|
||||
private:
|
||||
~Dialog() override {
|
||||
@ -158,6 +154,11 @@ class LoginHandlerViews : public LoginHandler {
|
||||
handler_->OnDialogDestroyed();
|
||||
}
|
||||
|
||||
// views::DialogDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override {
|
||||
return login_view_->GetWidget();
|
||||
}
|
||||
|
||||
LoginHandlerViews* handler_;
|
||||
// The LoginView that contains the user's login information.
|
||||
LoginView* login_view_;
|
||||
|
@ -179,14 +179,15 @@ class OverlayWindowWidgetDelegate : public views::WidgetDelegate {
|
||||
}
|
||||
bool ShouldShowWindowTitle() const override { return false; }
|
||||
void DeleteDelegate() override { delete this; }
|
||||
views::Widget* GetWidget() override { return widget_; }
|
||||
const views::Widget* GetWidget() const override { return widget_; }
|
||||
views::NonClientFrameView* CreateNonClientFrameView(
|
||||
views::Widget* widget) override {
|
||||
return new OverlayWindowFrameView(widget);
|
||||
}
|
||||
|
||||
private:
|
||||
// views::WidgetDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override { return widget_; }
|
||||
|
||||
// Owns OverlayWindowWidgetDelegate.
|
||||
views::Widget* widget_;
|
||||
|
||||
|
@ -59,14 +59,6 @@ views::View* SigninViewControllerDelegateViews::GetContentsView() {
|
||||
return content_view_;
|
||||
}
|
||||
|
||||
views::Widget* SigninViewControllerDelegateViews::GetWidget() {
|
||||
return content_view_->GetWidget();
|
||||
}
|
||||
|
||||
const views::Widget* SigninViewControllerDelegateViews::GetWidget() const {
|
||||
return content_view_->GetWidget();
|
||||
}
|
||||
|
||||
void SigninViewControllerDelegateViews::DeleteDelegate() {
|
||||
ResetSigninViewControllerDelegate();
|
||||
delete this;
|
||||
@ -224,6 +216,10 @@ void SigninViewControllerDelegateViews::DisplayModal() {
|
||||
content_view_->RequestFocus();
|
||||
}
|
||||
|
||||
const views::Widget* SigninViewControllerDelegateViews::GetWidgetImpl() const {
|
||||
return content_view_->GetWidget();
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
// SigninViewControllerDelegate static methods
|
||||
// --------------------------------------------------------------------
|
||||
|
@ -39,8 +39,6 @@ class SigninViewControllerDelegateViews
|
||||
|
||||
// views::DialogDelegateView:
|
||||
views::View* GetContentsView() override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
void DeleteDelegate() override;
|
||||
ui::ModalType GetModalType() const override;
|
||||
bool ShouldShowCloseButton() const override;
|
||||
@ -90,6 +88,9 @@ class SigninViewControllerDelegateViews
|
||||
|
||||
Browser* browser() { return browser_; }
|
||||
|
||||
// views::DialogDelegateView:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
SigninViewController* signin_view_controller_; // Not owned.
|
||||
content::WebContents* const web_contents_; // Not owned.
|
||||
Browser* const browser_; // Not owned.
|
||||
|
@ -208,14 +208,6 @@ views::View* SimpleMessageBoxViews::GetContentsView() {
|
||||
return message_box_view_;
|
||||
}
|
||||
|
||||
views::Widget* SimpleMessageBoxViews::GetWidget() {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
||||
const views::Widget* SimpleMessageBoxViews::GetWidget() const {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
||||
bool SimpleMessageBoxViews::ShouldShowCloseButton() const {
|
||||
return can_close_;
|
||||
}
|
||||
@ -286,6 +278,10 @@ void SimpleMessageBoxViews::Done() {
|
||||
std::move(result_callback_).Run(result_);
|
||||
}
|
||||
|
||||
const views::Widget* SimpleMessageBoxViews::GetWidgetImpl() const {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
||||
namespace chrome {
|
||||
|
||||
void ShowWarningMessageBox(gfx::NativeWindow parent,
|
||||
|
@ -36,8 +36,6 @@ class SimpleMessageBoxViews : public views::DialogDelegate,
|
||||
void DeleteDelegate() override;
|
||||
ui::ModalType GetModalType() const override;
|
||||
views::View* GetContentsView() override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
bool ShouldShowCloseButton() const override;
|
||||
|
||||
// views::WidgetObserver:
|
||||
@ -57,6 +55,9 @@ class SimpleMessageBoxViews : public views::DialogDelegate,
|
||||
void Run(MessageBoxResultCallback result_callback);
|
||||
void Done();
|
||||
|
||||
// views::DialogDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
const base::string16 window_title_;
|
||||
const chrome::MessageBoxType type_;
|
||||
chrome::MessageBoxResult result_;
|
||||
|
@ -89,14 +89,6 @@ views::View* TabModalConfirmDialogViews::GetContentsView() {
|
||||
return message_box_view_;
|
||||
}
|
||||
|
||||
views::Widget* TabModalConfirmDialogViews::GetWidget() {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
||||
const views::Widget* TabModalConfirmDialogViews::GetWidget() const {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
||||
void TabModalConfirmDialogViews::DeleteDelegate() {
|
||||
delete this;
|
||||
}
|
||||
@ -119,6 +111,10 @@ void TabModalConfirmDialogViews::CloseDialog() {
|
||||
GetWidget()->Close();
|
||||
}
|
||||
|
||||
const views::Widget* TabModalConfirmDialogViews::GetWidgetImpl() const {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
||||
void TabModalConfirmDialogViews::LinkClicked(views::Link* source,
|
||||
int event_flags) {
|
||||
delegate_->LinkClicked(ui::DispositionFromEventFlags(event_flags));
|
||||
|
@ -42,8 +42,6 @@ class TabModalConfirmDialogViews : public TabModalConfirmDialog,
|
||||
bool Close() override;
|
||||
bool ShouldShowCloseButton() const override;
|
||||
views::View* GetContentsView() override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
void DeleteDelegate() override;
|
||||
ui::ModalType GetModalType() const override;
|
||||
|
||||
@ -55,6 +53,9 @@ class TabModalConfirmDialogViews : public TabModalConfirmDialog,
|
||||
void CancelTabModalDialog() override;
|
||||
void CloseDialog() override;
|
||||
|
||||
// views::DialogDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
void LinkClicked(views::Link* source, int event_flags);
|
||||
|
||||
views::View* GetInitiallyFocusedView() override;
|
||||
|
@ -122,14 +122,6 @@ views::View* ViewEventTestBase::GetContentsView() {
|
||||
return content_view_;
|
||||
}
|
||||
|
||||
const views::Widget* ViewEventTestBase::GetWidget() const {
|
||||
return content_view_->GetWidget();
|
||||
}
|
||||
|
||||
views::Widget* ViewEventTestBase::GetWidget() {
|
||||
return content_view_->GetWidget();
|
||||
}
|
||||
|
||||
ViewEventTestBase::~ViewEventTestBase() {
|
||||
TestingBrowserProcess::DeleteInstance();
|
||||
}
|
||||
@ -175,3 +167,7 @@ void ViewEventTestBase::RunTestMethod(base::OnceClosure task) {
|
||||
if (HasFatalFailure())
|
||||
Done();
|
||||
}
|
||||
|
||||
const views::Widget* ViewEventTestBase::GetWidgetImpl() const {
|
||||
return content_view_->GetWidget();
|
||||
}
|
||||
|
@ -94,8 +94,6 @@ class ViewEventTestBase : public views::WidgetDelegate, public testing::Test {
|
||||
// views::WidgetDelegate:
|
||||
bool CanResize() const override;
|
||||
views::View* GetContentsView() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
views::Widget* GetWidget() override;
|
||||
|
||||
protected:
|
||||
~ViewEventTestBase() override;
|
||||
@ -130,6 +128,9 @@ class ViewEventTestBase : public views::WidgetDelegate, public testing::Test {
|
||||
// failures invokes Done.
|
||||
void RunTestMethod(base::OnceClosure task);
|
||||
|
||||
// views::WidgetDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
// The content of the Window.
|
||||
views::View* content_view_ = nullptr;
|
||||
|
||||
|
@ -74,10 +74,10 @@ class TestParentView : public views::View {
|
||||
TestParentView& operator=(const TestParentView&) = delete;
|
||||
~TestParentView() override = default;
|
||||
|
||||
views::Widget* GetWidget() override { return widget_.get(); }
|
||||
const views::Widget* GetWidget() const override { return widget_.get(); }
|
||||
|
||||
private:
|
||||
// views::View:
|
||||
const views::Widget* GetWidgetImpl() const override { return widget_.get(); }
|
||||
|
||||
std::unique_ptr<views::Widget> widget_;
|
||||
};
|
||||
|
||||
|
@ -95,10 +95,6 @@ views::View* UpdateRecommendedMessageBox::GetContentsView() {
|
||||
return message_box_view_;
|
||||
}
|
||||
|
||||
views::Widget* UpdateRecommendedMessageBox::GetWidget() {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
||||
const views::Widget* UpdateRecommendedMessageBox::GetWidget() const {
|
||||
const views::Widget* UpdateRecommendedMessageBox::GetWidgetImpl() const {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
@ -31,8 +31,7 @@ class UpdateRecommendedMessageBox : public views::DialogDelegate {
|
||||
void DeleteDelegate() override;
|
||||
ui::ModalType GetModalType() const override;
|
||||
views::View* GetContentsView() override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
views::MessageBoxView* message_box_view_;
|
||||
|
||||
|
@ -129,11 +129,7 @@ void JavaScriptAppModalDialogViews::WindowClosing() {
|
||||
parent_->OnClose();
|
||||
}
|
||||
|
||||
views::Widget* JavaScriptAppModalDialogViews::GetWidget() {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
||||
const views::Widget* JavaScriptAppModalDialogViews::GetWidget() const {
|
||||
const views::Widget* JavaScriptAppModalDialogViews::GetWidgetImpl() const {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
||||
|
@ -43,10 +43,11 @@ class JavaScriptAppModalDialogViews : public NativeAppModalDialog,
|
||||
views::View* GetInitiallyFocusedView() override;
|
||||
bool ShouldShowCloseButton() const override;
|
||||
void WindowClosing() override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
|
||||
private:
|
||||
// views::DialogDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
// A pointer to the AppModalDialog that owns us.
|
||||
std::unique_ptr<JavaScriptAppModalDialog> parent_;
|
||||
|
||||
|
@ -171,14 +171,6 @@ void FullscreenShellSurface::WindowClosing() {
|
||||
widget_ = nullptr;
|
||||
}
|
||||
|
||||
views::Widget* FullscreenShellSurface::GetWidget() {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
const views::Widget* FullscreenShellSurface::GetWidget() const {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
views::View* FullscreenShellSurface::GetContentsView() {
|
||||
return this;
|
||||
}
|
||||
@ -224,6 +216,10 @@ void FullscreenShellSurface::SetChildAxTreeId(ui::AXTreeID child_ax_tree_id) {
|
||||
child_ax_tree_id_ = child_ax_tree_id;
|
||||
}
|
||||
|
||||
const views::Widget* FullscreenShellSurface::GetWidgetImpl() const {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
void FullscreenShellSurface::UpdateHostWindowBounds() {
|
||||
// This method applies multiple changes to the window tree. Use ScopedPause
|
||||
// to ensure that occlusion isn't recomputed before all changes have been
|
||||
|
@ -69,8 +69,6 @@ class FullscreenShellSurface : public SurfaceTreeHost,
|
||||
bool CanMinimize() const override;
|
||||
bool ShouldShowWindowTitle() const override;
|
||||
void WindowClosing() override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
views::View* GetContentsView() override;
|
||||
bool WidgetHasHitTestMask() const override;
|
||||
void GetWidgetHitTestMask(SkPath* mask) const override;
|
||||
@ -84,6 +82,9 @@ class FullscreenShellSurface : public SurfaceTreeHost,
|
||||
void SetChildAxTreeId(ui::AXTreeID child_ax_tree_id);
|
||||
|
||||
private:
|
||||
// views::WidgetDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
// Keep the bounds in sync with the root surface bounds.
|
||||
void UpdateHostWindowBounds() override;
|
||||
|
||||
|
@ -695,14 +695,6 @@ void ShellSurfaceBase::WindowClosing() {
|
||||
widget_ = nullptr;
|
||||
}
|
||||
|
||||
views::Widget* ShellSurfaceBase::GetWidget() {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
const views::Widget* ShellSurfaceBase::GetWidget() const {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
views::View* ShellSurfaceBase::GetContentsView() {
|
||||
return this;
|
||||
}
|
||||
@ -1081,6 +1073,10 @@ views::NonClientFrameView* ShellSurfaceBase::CreateNonClientFrameViewInternal(
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// ShellSurfaceBase, private:
|
||||
|
||||
const views::Widget* ShellSurfaceBase::GetWidgetImpl() const {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
float ShellSurfaceBase::GetScale() const {
|
||||
return 1.f;
|
||||
}
|
||||
|
@ -162,8 +162,6 @@ class ShellSurfaceBase : public SurfaceTreeHost,
|
||||
gfx::ImageSkia GetWindowIcon() override;
|
||||
bool OnCloseRequested(views::Widget::ClosedReason close_reason) override;
|
||||
void WindowClosing() override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
views::View* GetContentsView() override;
|
||||
views::NonClientFrameView* CreateNonClientFrameView(
|
||||
views::Widget* widget) override;
|
||||
@ -265,6 +263,9 @@ class ShellSurfaceBase : public SurfaceTreeHost,
|
||||
FRIEND_TEST_ALL_PREFIXES(ShellSurfaceTest,
|
||||
HostWindowBoundsUpdatedAfterCommitWidget);
|
||||
|
||||
// WidgetDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
// Called on widget creation to initialize its window state.
|
||||
// TODO(reveman): Remove virtual functions below to avoid FBC problem.
|
||||
virtual void InitializeWindowState(ash::WindowState* window_state) = 0;
|
||||
|
@ -212,14 +212,6 @@ void NativeAppWindowViews::DeleteDelegate() {
|
||||
app_window_->OnNativeClose();
|
||||
}
|
||||
|
||||
views::Widget* NativeAppWindowViews::GetWidget() {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
const views::Widget* NativeAppWindowViews::GetWidget() const {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
bool NativeAppWindowViews::ShouldDescendIntoChildForEventHandling(
|
||||
gfx::NativeView child,
|
||||
const gfx::Point& location) {
|
||||
@ -438,4 +430,8 @@ void NativeAppWindowViews::OnViewWasResized() {
|
||||
observer.OnPositionRequiresUpdate();
|
||||
}
|
||||
|
||||
const views::Widget* NativeAppWindowViews::GetWidgetImpl() const {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
} // namespace native_app_window
|
||||
|
@ -99,8 +99,6 @@ class NativeAppWindowViews : public extensions::NativeAppWindow,
|
||||
void SaveWindowPlacement(const gfx::Rect& bounds,
|
||||
ui::WindowShowState show_state) override;
|
||||
void DeleteDelegate() override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
bool ShouldDescendIntoChildForEventHandling(
|
||||
gfx::NativeView child,
|
||||
const gfx::Point& location) override;
|
||||
@ -158,6 +156,9 @@ class NativeAppWindowViews : public extensions::NativeAppWindow,
|
||||
// Informs modal dialogs that they need to update their positions.
|
||||
void OnViewWasResized();
|
||||
|
||||
// WidgetDelegate:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
extensions::AppWindow* app_window_ = nullptr; // Not owned.
|
||||
views::WebView* web_view_ = nullptr;
|
||||
views::Widget* widget_ = nullptr;
|
||||
|
@ -42,14 +42,15 @@ class MessageBox::Core : public views::DialogDelegateView {
|
||||
ui::ModalType GetModalType() const override;
|
||||
base::string16 GetWindowTitle() const override;
|
||||
views::View* GetContentsView() override;
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
void DeleteDelegate() override;
|
||||
|
||||
// Called by MessageBox::Core when it is destroyed.
|
||||
void OnMessageBoxDestroyed();
|
||||
|
||||
private:
|
||||
// views::DialogDelegateView:
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
|
||||
const base::string16 title_label_;
|
||||
ResultCallback result_callback_;
|
||||
MessageBox* message_box_;
|
||||
@ -120,14 +121,6 @@ views::View* MessageBox::Core::GetContentsView() {
|
||||
return message_box_view_;
|
||||
}
|
||||
|
||||
views::Widget* MessageBox::Core::GetWidget() {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
||||
const views::Widget* MessageBox::Core::GetWidget() const {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
||||
void MessageBox::Core::DeleteDelegate() {
|
||||
if (message_box_) {
|
||||
message_box_->core_ = nullptr;
|
||||
@ -142,6 +135,10 @@ void MessageBox::Core::OnMessageBoxDestroyed() {
|
||||
result_callback_.Reset();
|
||||
}
|
||||
|
||||
const views::Widget* MessageBox::Core::GetWidgetImpl() const {
|
||||
return message_box_view_->GetWidget();
|
||||
}
|
||||
|
||||
MessageBox::MessageBox(const base::string16& title_label,
|
||||
const base::string16& message_label,
|
||||
const base::string16& ok_label,
|
||||
|
@ -294,7 +294,13 @@ SearchBoxViewBase::SearchBoxViewBase(SearchBoxViewDelegate* delegate)
|
||||
content_container_->AddChildView(close_button_);
|
||||
}
|
||||
|
||||
SearchBoxViewBase::~SearchBoxViewBase() = default;
|
||||
SearchBoxViewBase::~SearchBoxViewBase() {
|
||||
// |search_box_| tries to call methods on us, and so must be destroyed before
|
||||
// we are. Remove it from the tree first, which will blur it; it must be
|
||||
// blurred before being deleted.
|
||||
content_container_->RemoveChildView(search_box_);
|
||||
delete search_box_;
|
||||
}
|
||||
|
||||
void SearchBoxViewBase::Init() {
|
||||
SetPaintToLayer();
|
||||
|
@ -261,6 +261,7 @@ jumbo_component("views") {
|
||||
"widget/widget.h",
|
||||
"widget/widget_delegate.h",
|
||||
"widget/widget_deletion_observer.h",
|
||||
"widget/widget_getter.h",
|
||||
"widget/widget_observer.h",
|
||||
"widget/widget_removals_observer.h",
|
||||
"widget/widget_utils.h",
|
||||
|
@ -56,8 +56,6 @@ class TestBubbleFrameViewWidgetDelegate : public WidgetDelegate {
|
||||
~TestBubbleFrameViewWidgetDelegate() override = default;
|
||||
|
||||
// WidgetDelegate:
|
||||
Widget* GetWidget() override { return widget_; }
|
||||
const Widget* GetWidget() const override { return widget_; }
|
||||
View* GetContentsView() override {
|
||||
if (!contents_view_) {
|
||||
StaticSizedView* contents_view =
|
||||
@ -75,6 +73,9 @@ class TestBubbleFrameViewWidgetDelegate : public WidgetDelegate {
|
||||
}
|
||||
|
||||
private:
|
||||
// WidgetDelegate:
|
||||
const Widget* GetWidgetImpl() const override { return widget_; }
|
||||
|
||||
Widget* const widget_;
|
||||
View* contents_view_ = nullptr; // Owned by |widget_|.
|
||||
bool should_show_close_ = false;
|
||||
@ -114,12 +115,6 @@ class TestBubbleFrameView : public BubbleFrameView {
|
||||
}
|
||||
|
||||
// BubbleFrameView:
|
||||
Widget* GetWidget() override { return widget_.get(); }
|
||||
|
||||
const Widget* GetWidget() const override {
|
||||
return widget_.get();
|
||||
}
|
||||
|
||||
gfx::Rect GetAvailableScreenBounds(const gfx::Rect& rect) const override {
|
||||
return available_bounds_;
|
||||
}
|
||||
@ -133,6 +128,9 @@ class TestBubbleFrameView : public BubbleFrameView {
|
||||
}
|
||||
|
||||
private:
|
||||
// BubbleFrameView:
|
||||
const Widget* GetWidgetImpl() const override { return widget_.get(); }
|
||||
|
||||
const gfx::Rect available_bounds_ = gfx::Rect(0, 0, 1000, 1000);
|
||||
gfx::Rect available_anchor_window_bounds_;
|
||||
|
||||
|
@ -1590,12 +1590,13 @@ class RemoveFocusChangeListenerDelegate : public WidgetDelegate {
|
||||
|
||||
// WidgetDelegate:
|
||||
void DeleteDelegate() override;
|
||||
Widget* GetWidget() override { return widget_; }
|
||||
const Widget* GetWidget() const override { return widget_; }
|
||||
|
||||
void SetFocusChangeListener(FocusChangeListener* listener);
|
||||
|
||||
private:
|
||||
// WidgetDelegate:
|
||||
const Widget* GetWidgetImpl() const override { return widget_; }
|
||||
|
||||
Widget* widget_;
|
||||
FocusChangeListener* listener_;
|
||||
|
||||
|
@ -230,14 +230,6 @@ bool WebDialogView::ShouldShowWindowTitle() const {
|
||||
return ShouldShowDialogTitle();
|
||||
}
|
||||
|
||||
views::Widget* WebDialogView::GetWidget() {
|
||||
return View::GetWidget();
|
||||
}
|
||||
|
||||
const views::Widget* WebDialogView::GetWidget() const {
|
||||
return View::GetWidget();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// WebDialogDelegate implementation:
|
||||
|
||||
|
@ -106,8 +106,6 @@ class WEBVIEW_EXPORT WebDialogView : public ClientView,
|
||||
View* GetInitiallyFocusedView() override;
|
||||
bool ShouldShowWindowTitle() const override;
|
||||
bool ShouldShowCloseButton() const override;
|
||||
Widget* GetWidget() override;
|
||||
const Widget* GetWidget() const override;
|
||||
|
||||
// ui::WebDialogDelegate:
|
||||
ui::ModalType GetDialogModalType() const override;
|
||||
|
@ -862,10 +862,11 @@ class AdvanceFocusWidgetDelegate : public WidgetDelegate {
|
||||
bool ShouldAdvanceFocusToTopLevelWidget() const override {
|
||||
return should_advance_focus_to_parent_;
|
||||
}
|
||||
Widget* GetWidget() override { return widget_; }
|
||||
const Widget* GetWidget() const override { return widget_; }
|
||||
|
||||
private:
|
||||
// WidgetDelegate:
|
||||
const Widget* GetWidgetImpl() const override { return widget_; }
|
||||
|
||||
Widget* widget_;
|
||||
bool should_advance_focus_to_parent_;
|
||||
|
||||
|
@ -53,14 +53,6 @@ View* FocusManagerTest::GetContentsView() {
|
||||
return contents_view_;
|
||||
}
|
||||
|
||||
Widget* FocusManagerTest::GetWidget() {
|
||||
return contents_view_->GetWidget();
|
||||
}
|
||||
|
||||
const Widget* FocusManagerTest::GetWidget() const {
|
||||
return contents_view_->GetWidget();
|
||||
}
|
||||
|
||||
void FocusManagerTest::GetAccessiblePanes(std::vector<View*>* panes) {
|
||||
std::copy(accessible_panes_.begin(), accessible_panes_.end(),
|
||||
std::back_inserter(*panes));
|
||||
@ -86,6 +78,10 @@ void FocusManagerTest::SetAccessiblePanes(const std::vector<View*>& panes) {
|
||||
accessible_panes_ = panes;
|
||||
}
|
||||
|
||||
const Widget* FocusManagerTest::GetWidgetImpl() const {
|
||||
return contents_view_->GetWidget();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// TestFocusChangeListener
|
||||
|
||||
|
@ -31,8 +31,6 @@ class FocusManagerTest : public ViewsTestBase, public WidgetDelegate {
|
||||
|
||||
// WidgetDelegate:
|
||||
View* GetContentsView() override;
|
||||
Widget* GetWidget() override;
|
||||
const Widget* GetWidget() const override;
|
||||
void GetAccessiblePanes(std::vector<View*>* panes) override;
|
||||
|
||||
protected:
|
||||
@ -47,6 +45,9 @@ class FocusManagerTest : public ViewsTestBase, public WidgetDelegate {
|
||||
void SetAccessiblePanes(const std::vector<View*>& panes);
|
||||
|
||||
private:
|
||||
// WidgetDelegate:
|
||||
const Widget* GetWidgetImpl() const override;
|
||||
|
||||
View* contents_view_;
|
||||
FocusChangeListener* focus_change_listener_ = nullptr;
|
||||
WidgetFocusChangeListener* widget_focus_change_listener_ = nullptr;
|
||||
|
@ -111,14 +111,6 @@ void TestDesktopWidgetDelegate::WindowClosing() {
|
||||
widget_ = nullptr;
|
||||
}
|
||||
|
||||
Widget* TestDesktopWidgetDelegate::GetWidget() {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
const Widget* TestDesktopWidgetDelegate::GetWidget() const {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
View* TestDesktopWidgetDelegate::GetContentsView() {
|
||||
return contents_view_ ? contents_view_ : WidgetDelegate::GetContentsView();
|
||||
}
|
||||
@ -133,6 +125,10 @@ bool TestDesktopWidgetDelegate::OnCloseRequested(
|
||||
return can_close_;
|
||||
}
|
||||
|
||||
const Widget* TestDesktopWidgetDelegate::GetWidgetImpl() const {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
TestInitialFocusWidgetDelegate::TestInitialFocusWidgetDelegate(
|
||||
gfx::NativeWindow context)
|
||||
: view_(new View) {
|
||||
|
@ -166,13 +166,14 @@ class TestDesktopWidgetDelegate : public WidgetDelegate {
|
||||
|
||||
// WidgetDelegate:
|
||||
void WindowClosing() override;
|
||||
Widget* GetWidget() override;
|
||||
const Widget* GetWidget() const override;
|
||||
View* GetContentsView() override;
|
||||
bool ShouldAdvanceFocusToTopLevelWidget() const override;
|
||||
bool OnCloseRequested(Widget::ClosedReason close_reason) override;
|
||||
|
||||
private:
|
||||
// WidgetDelegate:
|
||||
const Widget* GetWidgetImpl() const override;
|
||||
|
||||
Widget* widget_;
|
||||
View* contents_view_ = nullptr;
|
||||
int window_closing_count_ = 0;
|
||||
|
@ -154,15 +154,11 @@ View::~View() {
|
||||
|
||||
// Tree operations -------------------------------------------------------------
|
||||
|
||||
const Widget* View::GetWidget() const {
|
||||
const Widget* View::GetWidgetImpl() const {
|
||||
// The root view holds a reference to this view hierarchy's Widget.
|
||||
return parent_ ? parent_->GetWidget() : nullptr;
|
||||
}
|
||||
|
||||
Widget* View::GetWidget() {
|
||||
return const_cast<Widget*>(const_cast<const View*>(this)->GetWidget());
|
||||
}
|
||||
|
||||
void View::ReorderChildView(View* view, int index) {
|
||||
DCHECK_EQ(view->parent_, this);
|
||||
const auto i = std::find(children_.begin(), children_.end(), view);
|
||||
|
@ -49,6 +49,7 @@
|
||||
#include "ui/views/paint_info.h"
|
||||
#include "ui/views/view_targeter.h"
|
||||
#include "ui/views/views_export.h"
|
||||
#include "ui/views/widget/widget_getter.h"
|
||||
|
||||
using ui::OSExchangeData;
|
||||
|
||||
@ -271,7 +272,8 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
|
||||
public ui::EventTarget,
|
||||
public ui::EventHandler,
|
||||
public ui::PropertyHandler,
|
||||
public views::metadata::MetaDataProvider {
|
||||
public metadata::MetaDataProvider,
|
||||
public virtual WidgetGetter {
|
||||
public:
|
||||
using Views = std::vector<View*>;
|
||||
|
||||
@ -390,9 +392,7 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
|
||||
|
||||
// Tree operations -----------------------------------------------------------
|
||||
|
||||
// Get the Widget that hosts this View, if any.
|
||||
virtual const Widget* GetWidget() const;
|
||||
virtual Widget* GetWidget();
|
||||
const Widget* GetWidgetImpl() const override;
|
||||
|
||||
// Adds |view| as a child of this view, optionally at |index|.
|
||||
// Returns the raw pointer for callers which want to hold a pointer to the
|
||||
|
@ -614,14 +614,6 @@ void DesktopNativeWidgetAura::FrameTypeChanged() {
|
||||
UpdateWindowTransparency();
|
||||
}
|
||||
|
||||
Widget* DesktopNativeWidgetAura::GetWidget() {
|
||||
return native_widget_delegate_->AsWidget();
|
||||
}
|
||||
|
||||
const Widget* DesktopNativeWidgetAura::GetWidget() const {
|
||||
return native_widget_delegate_->AsWidget();
|
||||
}
|
||||
|
||||
gfx::NativeView DesktopNativeWidgetAura::GetNativeView() const {
|
||||
return content_window_;
|
||||
}
|
||||
@ -1282,4 +1274,8 @@ void DesktopNativeWidgetAura::RootWindowDestroyed() {
|
||||
}
|
||||
}
|
||||
|
||||
const Widget* DesktopNativeWidgetAura::GetWidgetImpl() const {
|
||||
return native_widget_delegate_->AsWidget();
|
||||
}
|
||||
|
||||
} // namespace views
|
||||
|
@ -114,8 +114,6 @@ class VIEWS_EXPORT DesktopNativeWidgetAura
|
||||
bool ShouldUseNativeFrame() const override;
|
||||
bool ShouldWindowContentsBeTransparent() const override;
|
||||
void FrameTypeChanged() override;
|
||||
Widget* GetWidget() override;
|
||||
const Widget* GetWidget() const override;
|
||||
gfx::NativeView GetNativeView() const override;
|
||||
Widget* GetTopLevelWidget() override;
|
||||
const ui::Compositor* GetCompositor() const override;
|
||||
@ -261,6 +259,9 @@ class VIEWS_EXPORT DesktopNativeWidgetAura
|
||||
// Notify the root view of our widget of a native accessibility event.
|
||||
void NotifyAccessibilityEvent(ax::mojom::Event event_type);
|
||||
|
||||
// internal::NativeWidgetPrivate
|
||||
const Widget* GetWidgetImpl() const override;
|
||||
|
||||
std::unique_ptr<aura::WindowTreeHost> host_;
|
||||
DesktopWindowTreeHost* desktop_window_tree_host_;
|
||||
|
||||
|
@ -129,8 +129,6 @@ class HitTestWidgetDelegate : public WidgetDelegate {
|
||||
|
||||
// WidgetDelegate:
|
||||
bool CanResize() const override { return can_resize_; }
|
||||
Widget* GetWidget() override { return widget_; }
|
||||
Widget* GetWidget() const override { return widget_; }
|
||||
NonClientFrameView* CreateNonClientFrameView(Widget* widget) override {
|
||||
DCHECK(widget_ == widget);
|
||||
if (!frame_view_)
|
||||
@ -140,6 +138,9 @@ class HitTestWidgetDelegate : public WidgetDelegate {
|
||||
void DeleteDelegate() override { delete this; }
|
||||
|
||||
private:
|
||||
// WidgetDelegate:
|
||||
const Widget* GetWidgetImpl() const override { return widget_; }
|
||||
|
||||
Widget* const widget_;
|
||||
HitTestNonClientFrameView* frame_view_ = nullptr;
|
||||
bool can_resize_ = false;
|
||||
|
@ -289,14 +289,6 @@ void NativeWidgetAura::FrameTypeChanged() {
|
||||
GetWidget()->GetRootView()->SchedulePaint();
|
||||
}
|
||||
|
||||
Widget* NativeWidgetAura::GetWidget() {
|
||||
return delegate_->AsWidget();
|
||||
}
|
||||
|
||||
const Widget* NativeWidgetAura::GetWidget() const {
|
||||
return delegate_->AsWidget();
|
||||
}
|
||||
|
||||
gfx::NativeView NativeWidgetAura::GetNativeView() const {
|
||||
return window_;
|
||||
}
|
||||
@ -1065,6 +1057,10 @@ void NativeWidgetAura::SetInitialFocus(ui::WindowShowState show_state) {
|
||||
window_->Focus();
|
||||
}
|
||||
|
||||
const Widget* NativeWidgetAura::GetWidgetImpl() const {
|
||||
return delegate_->AsWidget();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Widget, public:
|
||||
|
||||
|
@ -74,8 +74,6 @@ class VIEWS_EXPORT NativeWidgetAura : public internal::NativeWidgetPrivate,
|
||||
bool ShouldUseNativeFrame() const override;
|
||||
bool ShouldWindowContentsBeTransparent() const override;
|
||||
void FrameTypeChanged() override;
|
||||
Widget* GetWidget() override;
|
||||
const Widget* GetWidget() const override;
|
||||
gfx::NativeView GetNativeView() const override;
|
||||
gfx::NativeWindow GetNativeWindow() const override;
|
||||
Widget* GetTopLevelWidget() override;
|
||||
@ -222,6 +220,9 @@ class VIEWS_EXPORT NativeWidgetAura : public internal::NativeWidgetPrivate,
|
||||
private:
|
||||
void SetInitialFocus(ui::WindowShowState show_state);
|
||||
|
||||
// internal::NativeWidgetPrivate:
|
||||
const Widget* GetWidgetImpl() const override;
|
||||
|
||||
internal::NativeWidgetDelegate* delegate_;
|
||||
|
||||
// WARNING: set to NULL when destroyed. As the Widget is not necessarily
|
||||
|
@ -332,8 +332,7 @@ class PropertyTestWidgetDelegate : public WidgetDelegate {
|
||||
bool CanMinimize() const override { return true; }
|
||||
bool CanResize() const override { return true; }
|
||||
void DeleteDelegate() override { delete this; }
|
||||
Widget* GetWidget() override { return widget_; }
|
||||
const Widget* GetWidget() const override { return widget_; }
|
||||
const Widget* GetWidgetImpl() const override { return widget_; }
|
||||
|
||||
Widget* widget_;
|
||||
DISALLOW_COPY_AND_ASSIGN(PropertyTestWidgetDelegate);
|
||||
|
@ -94,8 +94,6 @@ class VIEWS_EXPORT NativeWidgetMac : public internal::NativeWidgetPrivate,
|
||||
bool ShouldUseNativeFrame() const override;
|
||||
bool ShouldWindowContentsBeTransparent() const override;
|
||||
void FrameTypeChanged() override;
|
||||
Widget* GetWidget() override;
|
||||
const Widget* GetWidget() const override;
|
||||
gfx::NativeView GetNativeView() const override;
|
||||
gfx::NativeWindow GetNativeWindow() const override;
|
||||
Widget* GetTopLevelWidget() override;
|
||||
@ -247,6 +245,9 @@ class VIEWS_EXPORT NativeWidgetMac : public internal::NativeWidgetPrivate,
|
||||
friend class views::test::WidgetTest;
|
||||
class ZoomFocusMonitor;
|
||||
|
||||
// internal::NativeWidgetPrivate:
|
||||
const Widget* GetWidgetImpl() const override;
|
||||
|
||||
internal::NativeWidgetDelegate* delegate_;
|
||||
std::unique_ptr<NativeWidgetMacNSWindowHost> ns_window_host_;
|
||||
|
||||
|
@ -250,14 +250,6 @@ void NativeWidgetMac::FrameTypeChanged() {
|
||||
GetWidget()->GetRootView()->SchedulePaint();
|
||||
}
|
||||
|
||||
Widget* NativeWidgetMac::GetWidget() {
|
||||
return delegate_->AsWidget();
|
||||
}
|
||||
|
||||
const Widget* NativeWidgetMac::GetWidget() const {
|
||||
return delegate_->AsWidget();
|
||||
}
|
||||
|
||||
gfx::NativeView NativeWidgetMac::GetNativeView() const {
|
||||
// Returns a BridgedContentView, unless there is no views::RootView set.
|
||||
return [GetNativeWindow().GetNativeNSWindow() contentView];
|
||||
@ -876,6 +868,10 @@ ui::EventDispatchDetails NativeWidgetMac::DispatchKeyEventPostIME(
|
||||
return ui::EventDispatchDetails();
|
||||
}
|
||||
|
||||
const Widget* NativeWidgetMac::GetWidgetImpl() const {
|
||||
return delegate_->AsWidget();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Widget:
|
||||
|
||||
|
@ -1799,10 +1799,11 @@ class CustomTitleWidgetDelegate : public WidgetDelegate {
|
||||
// WidgetDelegate:
|
||||
base::string16 GetWindowTitle() const override { return title_; }
|
||||
bool ShouldShowWindowTitle() const override { return should_show_title_; }
|
||||
Widget* GetWidget() override { return widget_; }
|
||||
const Widget* GetWidget() const override { return widget_; }
|
||||
|
||||
private:
|
||||
// WidgetDelegate:
|
||||
const Widget* GetWidgetImpl() const override { return widget_; }
|
||||
|
||||
Widget* widget_;
|
||||
base::string16 title_;
|
||||
bool should_show_title_;
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include "ui/gfx/native_widget_types.h"
|
||||
#include "ui/views/widget/native_widget.h"
|
||||
#include "ui/views/widget/widget.h"
|
||||
#include "ui/views/widget/widget_getter.h"
|
||||
|
||||
namespace gfx {
|
||||
class ImageSkia;
|
||||
@ -43,7 +44,8 @@ namespace internal {
|
||||
// NativeWidget implementations. This file should not be included
|
||||
// in code that does not fall into one of these use cases.
|
||||
//
|
||||
class VIEWS_EXPORT NativeWidgetPrivate : public NativeWidget {
|
||||
class VIEWS_EXPORT NativeWidgetPrivate : public NativeWidget,
|
||||
public virtual WidgetGetter {
|
||||
public:
|
||||
~NativeWidgetPrivate() override = default;
|
||||
|
||||
@ -92,11 +94,6 @@ class VIEWS_EXPORT NativeWidgetPrivate : public NativeWidget {
|
||||
virtual bool ShouldWindowContentsBeTransparent() const = 0;
|
||||
virtual void FrameTypeChanged() = 0;
|
||||
|
||||
// Returns the Widget associated with this NativeWidget. This function is
|
||||
// guaranteed to return non-NULL for the lifetime of the NativeWidget.
|
||||
virtual Widget* GetWidget() = 0;
|
||||
virtual const Widget* GetWidget() const = 0;
|
||||
|
||||
// Returns the NativeView/Window associated with this NativeWidget.
|
||||
virtual gfx::NativeView GetNativeView() const = 0;
|
||||
virtual gfx::NativeWindow GetNativeWindow() const = 0;
|
||||
|
@ -354,14 +354,6 @@ void RootView::OnEventProcessingFinished(ui::Event* event) {
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// RootView, View overrides:
|
||||
|
||||
const Widget* RootView::GetWidget() const {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
Widget* RootView::GetWidget() {
|
||||
return const_cast<Widget*>(const_cast<const RootView*>(this)->GetWidget());
|
||||
}
|
||||
|
||||
bool RootView::IsDrawn() const {
|
||||
return GetVisible();
|
||||
}
|
||||
@ -810,6 +802,10 @@ ui::EventDispatchDetails RootView::PostDispatchEvent(ui::EventTarget* target,
|
||||
return details;
|
||||
}
|
||||
|
||||
const Widget* RootView::GetWidgetImpl() const {
|
||||
return widget_;
|
||||
}
|
||||
|
||||
BEGIN_METADATA(RootView)
|
||||
METADATA_PARENT_CLASS(View)
|
||||
END_METADATA()
|
||||
|
@ -110,8 +110,6 @@ class VIEWS_EXPORT RootView : public View,
|
||||
void OnEventProcessingFinished(ui::Event* event) override;
|
||||
|
||||
// View:
|
||||
const Widget* GetWidget() const override;
|
||||
Widget* GetWidget() override;
|
||||
bool IsDrawn() const override;
|
||||
bool OnMousePressed(const ui::MouseEvent& event) override;
|
||||
bool OnMouseDragged(const ui::MouseEvent& event) override;
|
||||
@ -175,6 +173,9 @@ class VIEWS_EXPORT RootView : public View,
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Tree operations -----------------------------------------------------------
|
||||
|
||||
// View:
|
||||
const Widget* GetWidgetImpl() const override;
|
||||
|
||||
// The host Widget
|
||||
Widget* widget_;
|
||||
|
||||
|
@ -98,8 +98,6 @@ class DefaultWidgetDelegate : public WidgetDelegate {
|
||||
|
||||
// WidgetDelegate:
|
||||
void DeleteDelegate() override { delete this; }
|
||||
Widget* GetWidget() override { return widget_; }
|
||||
const Widget* GetWidget() const override { return widget_; }
|
||||
bool ShouldAdvanceFocusToTopLevelWidget() const override {
|
||||
// In most situations where a Widget is used without a delegate the Widget
|
||||
// is used as a container, so that we want focus to advance to the top-level
|
||||
@ -108,6 +106,9 @@ class DefaultWidgetDelegate : public WidgetDelegate {
|
||||
}
|
||||
|
||||
private:
|
||||
// WidgetDelegate:
|
||||
const Widget* GetWidgetImpl() const override { return widget_; }
|
||||
|
||||
Widget* widget_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(DefaultWidgetDelegate);
|
||||
|
@ -205,14 +205,6 @@ void WidgetDelegateView::DeleteDelegate() {
|
||||
delete this;
|
||||
}
|
||||
|
||||
Widget* WidgetDelegateView::GetWidget() {
|
||||
return View::GetWidget();
|
||||
}
|
||||
|
||||
const Widget* WidgetDelegateView::GetWidget() const {
|
||||
return View::GetWidget();
|
||||
}
|
||||
|
||||
views::View* WidgetDelegateView::GetContentsView() {
|
||||
return this;
|
||||
}
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include "ui/base/ui_base_types.h"
|
||||
#include "ui/views/view.h"
|
||||
#include "ui/views/widget/widget.h"
|
||||
#include "ui/views/widget/widget_getter.h"
|
||||
|
||||
namespace gfx {
|
||||
class ImageSkia;
|
||||
@ -27,7 +28,7 @@ class NonClientFrameView;
|
||||
class View;
|
||||
|
||||
// Handles events on Widgets in context-specific ways.
|
||||
class VIEWS_EXPORT WidgetDelegate {
|
||||
class VIEWS_EXPORT WidgetDelegate : public virtual WidgetGetter {
|
||||
public:
|
||||
WidgetDelegate();
|
||||
|
||||
@ -149,10 +150,6 @@ class VIEWS_EXPORT WidgetDelegate {
|
||||
virtual void OnWindowBeginUserBoundsChange() {}
|
||||
virtual void OnWindowEndUserBoundsChange() {}
|
||||
|
||||
// Returns the Widget associated with this delegate.
|
||||
virtual Widget* GetWidget() = 0;
|
||||
virtual const Widget* GetWidget() const = 0;
|
||||
|
||||
// Returns the View that is contained within this Widget.
|
||||
virtual View* GetContentsView();
|
||||
|
||||
@ -212,10 +209,9 @@ class VIEWS_EXPORT WidgetDelegate {
|
||||
DISALLOW_COPY_AND_ASSIGN(WidgetDelegate);
|
||||
};
|
||||
|
||||
// A WidgetDelegate implementation that is-a View. Used to override GetWidget()
|
||||
// to call View's GetWidget() for the common case where a WidgetDelegate
|
||||
// implementation is-a View. Note that WidgetDelegateView is not owned by
|
||||
// view's hierarchy and is expected to be deleted on DeleteDelegate call.
|
||||
// A WidgetDelegate implementation that is-a View. Note that WidgetDelegateView
|
||||
// is not owned by view's hierarchy and is expected to be deleted on
|
||||
// DeleteDelegate call.
|
||||
class VIEWS_EXPORT WidgetDelegateView : public WidgetDelegate, public View {
|
||||
public:
|
||||
METADATA_HEADER(WidgetDelegateView);
|
||||
@ -225,8 +221,6 @@ class VIEWS_EXPORT WidgetDelegateView : public WidgetDelegate, public View {
|
||||
|
||||
// WidgetDelegate:
|
||||
void DeleteDelegate() override;
|
||||
Widget* GetWidget() override;
|
||||
const Widget* GetWidget() const override;
|
||||
views::View* GetContentsView() override;
|
||||
|
||||
private:
|
||||
|
34
ui/views/widget/widget_getter.h
Normal file
34
ui/views/widget/widget_getter.h
Normal file
@ -0,0 +1,34 @@
|
||||
// Copyright 2020 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef UI_VIEWS_WIDGET_WIDGET_GETTER_H_
|
||||
#define UI_VIEWS_WIDGET_WIDGET_GETTER_H_
|
||||
|
||||
namespace views {
|
||||
class Widget;
|
||||
|
||||
// Make this class a virtual base of any base class which needs to expose a
|
||||
// GetWidget() method, then override GetWidgetImpl() as appropriate.
|
||||
//
|
||||
// Having GetWidgetImpl() be the override, not GetWidget() directly, avoids the
|
||||
// need for subclasses to either override both GetWidget() methods or risk
|
||||
// obscure compilation or name-hiding errors from only overriding one. Using
|
||||
// this as a virtual base avoids the need to explicitly qualify GetWidget()
|
||||
// calls with a base class name when multiple bases expose it, as in e.g.
|
||||
// View + WidgetDelegate.
|
||||
class WidgetGetter {
|
||||
public:
|
||||
Widget* GetWidget() {
|
||||
return const_cast<Widget*>(
|
||||
static_cast<const WidgetGetter*>(this)->GetWidget());
|
||||
}
|
||||
const Widget* GetWidget() const { return GetWidgetImpl(); }
|
||||
|
||||
private:
|
||||
virtual const Widget* GetWidgetImpl() const = 0;
|
||||
};
|
||||
|
||||
} // namespace views
|
||||
|
||||
#endif // UI_VIEWS_WIDGET_WIDGET_GETTER_H_
|
@ -344,14 +344,6 @@ void DialogDelegateView::DeleteDelegate() {
|
||||
delete this;
|
||||
}
|
||||
|
||||
Widget* DialogDelegateView::GetWidget() {
|
||||
return View::GetWidget();
|
||||
}
|
||||
|
||||
const Widget* DialogDelegateView::GetWidget() const {
|
||||
return View::GetWidget();
|
||||
}
|
||||
|
||||
View* DialogDelegateView::GetContentsView() {
|
||||
return this;
|
||||
}
|
||||
|
@ -284,10 +284,9 @@ class VIEWS_EXPORT DialogDelegate : public WidgetDelegate {
|
||||
DISALLOW_COPY_AND_ASSIGN(DialogDelegate);
|
||||
};
|
||||
|
||||
// A DialogDelegate implementation that is-a View. Used to override GetWidget()
|
||||
// to call View's GetWidget() for the common case where a DialogDelegate
|
||||
// implementation is-a View. Note that DialogDelegateView is not owned by
|
||||
// view's hierarchy and is expected to be deleted on DeleteDelegate call.
|
||||
// A DialogDelegate implementation that is-a View. Note that DialogDelegateView
|
||||
// is not owned by view's hierarchy and is expected to be deleted on
|
||||
// DeleteDelegate call.
|
||||
class VIEWS_EXPORT DialogDelegateView : public DialogDelegate,
|
||||
public View {
|
||||
public:
|
||||
@ -296,8 +295,6 @@ class VIEWS_EXPORT DialogDelegateView : public DialogDelegate,
|
||||
|
||||
// DialogDelegate:
|
||||
void DeleteDelegate() override;
|
||||
Widget* GetWidget() override;
|
||||
const Widget* GetWidget() const override;
|
||||
View* GetContentsView() override;
|
||||
|
||||
// View:
|
||||
|
Reference in New Issue
Block a user