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

Unified Diff: chrome/browser/ui/views/harmony/layout_delegate.h

Issue 2485083003: views: add layout delegates (Closed)
Patch Set: first round of fixes :) Created 4 years, 1 month 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/harmony/layout_delegate.h
diff --git a/chrome/browser/ui/views/harmony/layout_delegate.h b/chrome/browser/ui/views/harmony/layout_delegate.h
new file mode 100644
index 0000000000000000000000000000000000000000..70dffc4cea110b2be82364b0b53dda5a919a208c
--- /dev/null
+++ b/chrome/browser/ui/views/harmony/layout_delegate.h
@@ -0,0 +1,56 @@
+// Copyright 2016 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 CHROME_BROWSER_UI_VIEWS_HARMONY_LAYOUT_DELEGATE_H_
+#define CHROME_BROWSER_UI_VIEWS_HARMONY_LAYOUT_DELEGATE_H_
+
+#include "ui/views/layout/grid_layout.h"
+
+class LayoutDelegate {
+ public:
+ enum class LayoutDistanceType {
+ PANEL_VERT_MARGIN,
+ RELATED_CONTROL_HORIZONTAL_SPACING,
+ RELATED_CONTROL_VERTICAL_SPACING,
+ RELATED_BUTTON_HORIZONTAL_SPACING,
+ UNRELATED_CONTROL_VERTICAL_SPACING,
+ UNRELATED_CONTROL_LARGE_VERTICAL_SPACING,
+ BUTTON_HEDGE_MARGIN_NEW,
+ BUTTON_VEDGE_MARGIN_NEW,
+ };
+
+ LayoutDelegate() {}
+ virtual ~LayoutDelegate() {}
+
+ // Returns the singleton LayoutDelegate instance.
+ static LayoutDelegate* Get();
sky 2016/11/15 17:43:38 Thanks for the improved docs in GetActiveInstance.
Elly Fong-Jones 2016/11/15 19:47:26 Done.
+
+ // Returns the active LayoutDelegate singleton, depending on UI configuration.
+ // By default, this is the same instance returned by Get(), but if Harmony
+ // or another UI style is enabled, this may be an instance of a LayoutDelegate
+ // subclass instead.
+ static LayoutDelegate* GetActiveInstance();
+
+ // Returns a layout distance, indexed by |type|. These distances are in
+ // device-independent units.
+ virtual int GetLayoutDistance(LayoutDistanceType type) const;
+
+ // Returns the alignment used for control labels in a GridLayout; for example,
+ // in this GridLayout:
+ // ---------------------------
+ // | Label 1 Checkbox 1 |
+ // | Label 2 Checkbox 2 |
+ // ---------------------------
+ // This value controls the alignment used for "Label 1" and "Label 2".
+ virtual views::GridLayout::Alignment GetControlLabelGridAlignment() const;
+
+ // Returns whether to use extra padding on dialogs. If this is false, content
+ // Views for dialogs should not insert extra padding at their own edges.
+ virtual bool UseExtraDialogPadding() const;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(LayoutDelegate);
sky 2016/11/15 17:43:38 I think you want DISALLOW_IMPLICIT_CONSTRUCTORS.
Elly Fong-Jones 2016/11/15 19:47:26 It has an explicitly-declared LayoutDelegate() abo
+};
+
+#endif // CHROME_BROWSER_UI_VIEWS_HARMONY_LAYOUT_DELEGATE_H_
« no previous file with comments | « chrome/browser/ui/views/harmony/harmony_layout_delegate.cc ('k') | chrome/browser/ui/views/harmony/layout_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698