|  | // Copyright 2014 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 EXAMPLES_WINDOW_MANAGER_DEBUG_PANEL_H_ | 
|  | #define EXAMPLES_WINDOW_MANAGER_DEBUG_PANEL_H_ | 
|  |  | 
|  | #include <string> | 
|  |  | 
|  | #include "base/macros.h" | 
|  | #include "mojo/services/public/interfaces/navigation/navigation.mojom.h" | 
|  | #include "ui/views/controls/button/button.h" | 
|  | #include "ui/views/layout/layout_manager.h" | 
|  | #include "ui/views/widget/widget_delegate.h" | 
|  |  | 
|  | namespace views { | 
|  | class Label; | 
|  | class RadioButton; | 
|  | } | 
|  |  | 
|  | namespace mojo { | 
|  |  | 
|  | class Shell; | 
|  | class View; | 
|  |  | 
|  | namespace examples { | 
|  |  | 
|  | // A panel of controls intended to demonstrate the functionality of the window | 
|  | // manager. | 
|  | class DebugPanel : public views::LayoutManager, public views::ButtonListener { | 
|  | public: | 
|  | class Delegate { | 
|  | public: | 
|  | virtual void CloseTopWindow() = 0; | 
|  | virtual void RequestNavigate(uint32 source_view_id, | 
|  | Target target, | 
|  | URLRequestPtr url_request) = 0; | 
|  |  | 
|  | protected: | 
|  | virtual ~Delegate(){} | 
|  | }; | 
|  |  | 
|  | DebugPanel(Delegate* delegate, Shell* shell, View* view); | 
|  | virtual ~DebugPanel(); | 
|  |  | 
|  | Target navigation_target() const; | 
|  |  | 
|  | private: | 
|  | // LayoutManager overrides: | 
|  | virtual gfx::Size GetPreferredSize(const views::View* view) const override; | 
|  | virtual void Layout(views::View* host) override; | 
|  | virtual void ButtonPressed(views::Button* sender, | 
|  | const ui::Event& event) override; | 
|  |  | 
|  | void Navigate(const std::string& url); | 
|  |  | 
|  | Delegate* delegate_; | 
|  | Shell* shell_; | 
|  | View* view_; | 
|  |  | 
|  | views::Label* navigation_target_label_; | 
|  | views::RadioButton* navigation_target_new_; | 
|  | views::RadioButton* navigation_target_source_; | 
|  | views::RadioButton* navigation_target_default_; | 
|  |  | 
|  | views::Button* colored_square_; | 
|  | views::Button* close_last_; | 
|  | views::Button* cross_app_; | 
|  |  | 
|  | DISALLOW_COPY_AND_ASSIGN(DebugPanel); | 
|  | }; | 
|  |  | 
|  | }  // examples | 
|  | }  // mojo | 
|  |  | 
|  | #endif  //  EXAMPLES_WINDOW_MANAGER_DEBUG_PANEL_H_ |