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

Unified Diff: chrome/browser/ui/views/chrome_views_delegate.cc

Issue 2696263002: Refactor ViewsDelegate and MD-ify the icon-to-text spacing for checkbox and radiobutton (Closed)
Patch Set: Used ifdef instead of duplicated code for delegate initialization Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/chrome_views_delegate.cc
diff --git a/chrome/browser/ui/views/chrome_views_delegate.cc b/chrome/browser/ui/views/chrome_views_delegate.cc
index fef73a45e373c2e634787a05d2ac5e7af25fff53..20793d9fc5e0ff082b4013cfcd6fbb4a45a30e1a 100644
--- a/chrome/browser/ui/views/chrome_views_delegate.cc
+++ b/chrome/browser/ui/views/chrome_views_delegate.cc
@@ -57,17 +57,32 @@ PrefService* GetPrefsForWindow(const views::Widget* window) {
return profile->GetPrefs();
}
+ChromeViewsDelegate* views_delegate = nullptr;
+
} // namespace
// ChromeViewsDelegate --------------------------------------------------------
-#if !defined(OS_WIN)
-ChromeViewsDelegate::ChromeViewsDelegate() {}
+#if defined(OS_WIN)
+ChromeViewsDelegate::ChromeViewsDelegate()
+ : in_autohide_edges_callback_(false), weak_factory_(this) {
+#else
+ChromeViewsDelegate::ChromeViewsDelegate() {
#endif
+ DCHECK(!views_delegate);
+ views_delegate = this;
+}
ChromeViewsDelegate::~ChromeViewsDelegate() {
DCHECK_EQ(0u, ref_count_);
+
+ DCHECK_EQ(this, views_delegate);
+ views_delegate = nullptr;
+}
+
+ChromeViewsDelegate* ChromeViewsDelegate::GetInstance() {
+ return views_delegate;
}
void ChromeViewsDelegate::SaveWindowPlacement(const views::Widget* window,
@@ -196,58 +211,61 @@ ChromeViewsDelegate::GetBlockingPoolTaskRunner() {
return content::BrowserThread::GetBlockingPool();
}
-gfx::Insets ChromeViewsDelegate::GetDialogButtonInsets() const {
- const LayoutDelegate* layout_delegate = LayoutDelegate::Get();
- const int top = layout_delegate->GetMetric(
- LayoutDelegate::Metric::DIALOG_BUTTON_TOP_SPACING);
- const int margin = layout_delegate->GetMetric(
- LayoutDelegate::Metric::DIALOG_BUTTON_MARGIN);
- return gfx::Insets(top, margin, margin, margin);
-}
-
-int ChromeViewsDelegate::GetDialogCloseButtonMargin() const {
- return LayoutDelegate::Get()->GetMetric(
- LayoutDelegate::Metric::DIALOG_CLOSE_BUTTON_MARGIN);
-}
-
-int ChromeViewsDelegate::GetDialogRelatedButtonHorizontalSpacing() const {
- return LayoutDelegate::Get()->GetMetric(
- LayoutDelegate::Metric::RELATED_BUTTON_HORIZONTAL_SPACING);
-}
-
-int ChromeViewsDelegate::GetDialogRelatedControlVerticalSpacing() const {
- return LayoutDelegate::Get()->GetMetric(
- LayoutDelegate::Metric::RELATED_CONTROL_VERTICAL_SPACING);
-}
-
-gfx::Insets ChromeViewsDelegate::GetDialogFrameViewInsets() const {
+gfx::Insets ChromeViewsDelegate::GetInsetsMetric(
+ views::InsetsMetric metric) const {
const LayoutDelegate* layout_delegate = LayoutDelegate::Get();
- const int top = layout_delegate->GetMetric(
- LayoutDelegate::Metric::PANEL_CONTENT_MARGIN);
- const int side = layout_delegate->GetMetric(
- LayoutDelegate::Metric::DIALOG_BUTTON_MARGIN);
- // Titles are inset at the top and sides, but not at the bottom.
- return gfx::Insets(top, side, 0, side);
-}
-
-gfx::Insets ChromeViewsDelegate::GetBubbleDialogMargins() const {
- return gfx::Insets(LayoutDelegate::Get()->GetMetric(
- LayoutDelegate::Metric::PANEL_CONTENT_MARGIN));
-}
-
-int ChromeViewsDelegate::GetButtonMinimumWidth() const {
- return LayoutDelegate::Get()->GetMetric(
- LayoutDelegate::Metric::BUTTON_MINIMUM_WIDTH);
+ switch (metric) {
+ case views::InsetsMetric::DIALOG_BUTTON: {
+ const int top = layout_delegate->GetMetric(
+ LayoutDelegate::Metric::DIALOG_BUTTON_TOP_SPACING);
+ const int margin = layout_delegate->GetMetric(
+ LayoutDelegate::Metric::DIALOG_BUTTON_MARGIN);
+ return gfx::Insets(top, margin, margin, margin);
+ }
+ case views::InsetsMetric::DIALOG_FRAME_VIEW: {
+ const int top = layout_delegate->GetMetric(
+ LayoutDelegate::Metric::PANEL_CONTENT_MARGIN);
+ const int side = layout_delegate->GetMetric(
+ LayoutDelegate::Metric::DIALOG_BUTTON_MARGIN);
+ // Titles are inset at the top and sides, but not at the bottom.
+ return gfx::Insets(top, side, 0, side);
+ }
+ case views::InsetsMetric::BUBBLE_DIALOG:
+ return gfx::Insets(layout_delegate->GetMetric(
+ LayoutDelegate::Metric::PANEL_CONTENT_MARGIN));
+ }
+ NOTREACHED();
+ return gfx::Insets();
}
-int ChromeViewsDelegate::GetDialogButtonMinimumWidth() const {
- return LayoutDelegate::Get()->GetMetric(
- LayoutDelegate::Metric::DIALOG_BUTTON_MINIMUM_WIDTH);
+int ChromeViewsDelegate::GetDistanceMetric(views::DistanceMetric metric) const {
+ switch (metric) {
+ case views::DistanceMetric::CLOSE_BUTTON_MARGIN:
+ return LayoutDelegate::Get()->GetMetric(
+ LayoutDelegate::Metric::DIALOG_CLOSE_BUTTON_MARGIN);
+ case views::DistanceMetric::RELATED_BUTTON_HORIZONTAL:
+ return LayoutDelegate::Get()->GetMetric(
+ LayoutDelegate::Metric::RELATED_BUTTON_HORIZONTAL_SPACING);
+ case views::DistanceMetric::RELATED_CONTROL_HORIZONTAL:
+ return LayoutDelegate::Get()->GetMetric(
+ LayoutDelegate::Metric::RELATED_CONTROL_HORIZONTAL_SPACING);
+ case views::DistanceMetric::RELATED_CONTROL_VERTICAL:
+ return LayoutDelegate::Get()->GetMetric(
+ LayoutDelegate::Metric::RELATED_CONTROL_VERTICAL_SPACING);
+ case views::DistanceMetric::DIALOG_BUTTON_MINIMUM_WIDTH:
+ return LayoutDelegate::Get()->GetMetric(
+ LayoutDelegate::Metric::DIALOG_BUTTON_MINIMUM_WIDTH);
+ case views::DistanceMetric::BUTTON_HORIZONTAL_PADDING:
+ return LayoutDelegate::Get()->GetMetric(
+ LayoutDelegate::Metric::BUTTON_HORIZONTAL_PADDING);
+ }
+ NOTREACHED();
+ return 0;
}
-int ChromeViewsDelegate::GetButtonHorizontalPadding() const {
- return LayoutDelegate::Get()->GetMetric(
- LayoutDelegate::Metric::BUTTON_HORIZONTAL_PADDING);
+int ChromeViewsDelegate::GetDefaultDistanceMetric(
+ views::DistanceMetric metric) const {
+ return views::ViewsDelegate::GetDistanceMetric(metric);
}
#if !defined(OS_CHROMEOS)
« no previous file with comments | « chrome/browser/ui/views/chrome_views_delegate.h ('k') | chrome/browser/ui/views/chrome_views_delegate_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698