diff options
Diffstat (limited to 'ui/views/examples/widget_example.cc')
-rw-r--r-- | ui/views/examples/widget_example.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/ui/views/examples/widget_example.cc b/ui/views/examples/widget_example.cc index d7a1b02..3a9506f 100644 --- a/ui/views/examples/widget_example.cc +++ b/ui/views/examples/widget_example.cc @@ -30,6 +30,17 @@ class DialogExample : public DialogDelegateView { View* CreateFootnoteView() override; }; +class ModalDialogExample : public DialogExample { + public: + ModalDialogExample() {} + + // WidgetDelegate: + ui::ModalType GetModalType() const override { return ui::MODAL_TYPE_WINDOW; } + + private: + DISALLOW_COPY_AND_ASSIGN(ModalDialogExample); +}; + DialogExample::DialogExample() { set_background(Background::CreateSolidBackground(SK_ColorGRAY)); SetLayoutManager(new BoxLayout(BoxLayout::kVertical, 10, 10, 10)); @@ -70,6 +81,7 @@ void WidgetExample::CreateExampleView(View* container) { container->SetLayoutManager(new BoxLayout(BoxLayout::kHorizontal, 0, 0, 10)); BuildButton(container, "Popup widget", POPUP); BuildButton(container, "Dialog widget", DIALOG); + BuildButton(container, "Modal Dialog", MODAL_DIALOG); #if defined(OS_LINUX) // Windows does not support TYPE_CONTROL top-level widgets. BuildButton(container, "Child widget", CHILD); @@ -116,6 +128,11 @@ void WidgetExample::ButtonPressed(Button* sender, const ui::Event& event) { sender->GetWidget()->GetNativeView())->Show(); break; } + case MODAL_DIALOG: { + DialogDelegate::CreateDialogWidget(new ModalDialogExample(), NULL, + sender->GetWidget()->GetNativeView())->Show(); + break; + } case CHILD: ShowWidget(sender, Widget::InitParams(Widget::InitParams::TYPE_CONTROL)); break; |