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

Unified Diff: ui/views/examples/menu_example.cc

Issue 1904753002: MenuButton: support Mac look & feel (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add basic tests Created 4 years, 7 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: ui/views/examples/menu_example.cc
diff --git a/ui/views/examples/menu_example.cc b/ui/views/examples/menu_example.cc
index 378c90a76bc00ec2ea86194b5851693ccc39ef20..f8c322a62e7ef1eeba0f1f37d0ef13e1c2ddf9ae 100644
--- a/ui/views/examples/menu_example.cc
+++ b/ui/views/examples/menu_example.cc
@@ -12,7 +12,7 @@
#include "ui/views/controls/button/menu_button.h"
#include "ui/views/controls/button/menu_button_listener.h"
#include "ui/views/controls/menu/menu_runner.h"
-#include "ui/views/layout/fill_layout.h"
+#include "ui/views/layout/box_layout.h"
#include "ui/views/view.h"
#include "ui/views/widget/widget.h"
@@ -60,9 +60,15 @@ class ExampleMenuModel : public ui::SimpleMenuModel,
class ExampleMenuButton : public MenuButton, public MenuButtonListener {
public:
- explicit ExampleMenuButton(const base::string16& test);
+ ExampleMenuButton(const base::string16& test,
+ bool use_border,
+ bool use_background);
~ExampleMenuButton() override;
+ protected:
+ bool ShouldUsePlatformStyleBackground() const override;
+ bool ShouldUsePlatformStyleBorder() const override;
+
private:
// MenuButtonListener:
void OnMenuButtonClicked(MenuButton* source,
@@ -74,6 +80,9 @@ class ExampleMenuButton : public MenuButton, public MenuButtonListener {
std::unique_ptr<ExampleMenuModel> menu_model_;
std::unique_ptr<MenuRunner> menu_runner_;
+ bool use_background_;
+ bool use_border_;
+
DISALLOW_COPY_AND_ASSIGN(ExampleMenuButton);
};
@@ -179,8 +188,12 @@ void ExampleMenuModel::ExecuteCommand(int command_id, int event_flags) {
// ExampleMenuButton -----------------------------------------------------------
-ExampleMenuButton::ExampleMenuButton(const base::string16& test)
- : MenuButton(test, this, true) {}
+ExampleMenuButton::ExampleMenuButton(const base::string16& test,
+ bool use_background,
+ bool use_border)
+ : MenuButton(test, this, true),
+ use_background_(use_background),
+ use_border_(use_border) {}
ExampleMenuButton::~ExampleMenuButton() {
}
@@ -206,6 +219,14 @@ ui::SimpleMenuModel* ExampleMenuButton::GetMenuModel() {
return menu_model_.get();
}
+bool ExampleMenuButton::ShouldUsePlatformStyleBackground() const {
+ return use_background_;
+}
+
+bool ExampleMenuButton::ShouldUsePlatformStyleBorder() const {
+ return use_border_;
+}
+
} // namespace
MenuExample::MenuExample() : ExampleBase("Menu") {
@@ -217,9 +238,18 @@ MenuExample::~MenuExample() {
void MenuExample::CreateExampleView(View* container) {
// We add a button to open a menu.
ExampleMenuButton* menu_button = new ExampleMenuButton(
- ASCIIToUTF16("Open a menu"));
- container->SetLayoutManager(new FillLayout);
+ ASCIIToUTF16("Open a menu (no decoration)"), false, false);
+ ExampleMenuButton* background_button = new ExampleMenuButton(
+ ASCIIToUTF16("Open a menu (background only)"), true, false);
+ ExampleMenuButton* border_button = new ExampleMenuButton(
+ ASCIIToUTF16("Open a menu (border only)"), false, true);
+ ExampleMenuButton* both_button = new ExampleMenuButton(
+ ASCIIToUTF16("Open a menu (both decorations)"), true, true);
+ container->SetLayoutManager(new BoxLayout(BoxLayout::kVertical, 1, 1, 1));
container->AddChildView(menu_button);
+ container->AddChildView(background_button);
+ container->AddChildView(border_button);
+ container->AddChildView(both_button);
}
} // namespace examples

Powered by Google App Engine
This is Rietveld 408576698