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

Unified Diff: examples/wm_flow/wm/frame_controller.h

Issue 817573003: Move wm_flow off of views and onto Sky (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Fix comments Created 5 years, 11 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: examples/wm_flow/wm/frame_controller.h
diff --git a/examples/wm_flow/wm/frame_controller.h b/examples/wm_flow/wm/frame_controller.h
index 5d6bdf49e4c7621f793c71fa09f6d42daf29f11a..95f781d2eca6d9d334b3c50d539583759f373172 100644
--- a/examples/wm_flow/wm/frame_controller.h
+++ b/examples/wm_flow/wm/frame_controller.h
@@ -6,19 +6,17 @@
#define EXAMPLES_WM_FLOW_WM_FRAME_CONTROLLER_H_
#include "base/memory/scoped_ptr.h"
+#include "examples/wm_flow/wm/window_frame_host.mojom.h"
+#include "mojo/public/cpp/application/interface_factory.h"
#include "mojo/services/view_manager/public/cpp/view_observer.h"
#include "services/window_manager/focus_controller.h"
#include "ui/gfx/geometry/rect.h"
+class GURL;
+
namespace mojo {
class NativeWidgetViewManager;
-class Shell;
-class View;
-}
-
-namespace views {
class View;
-class Widget;
}
namespace window_manager {
@@ -28,37 +26,42 @@ class WindowManagerApp;
// FrameController encapsulates the window manager's frame additions to a window
// created by an application. It renders the content of the frame and responds
// to any events targeted at it.
-class FrameController : mojo::ViewObserver {
+class FrameController
+ : public examples::WindowFrameHost,
+ public mojo::ViewObserver,
+ public mojo::InterfaceFactory<examples::WindowFrameHost> {
public:
- FrameController(mojo::Shell* shell,
+ FrameController(const GURL& frame_app_url,
mojo::View* view,
mojo::View** app_view,
window_manager::WindowManagerApp* window_manager_app);
virtual ~FrameController();
- void CloseWindow();
- void ToggleMaximize();
+ // mojo::InterfaceFactory<examples::WindowFrameHost> implementation.
+ void Create(
+ mojo::ApplicationConnection* connection,
+ mojo::InterfaceRequest<examples::WindowFrameHost> request) override;
- void ActivateWindow();
-
- void SetCapture(bool frame_has_capture);
+ // examples::WindowFrameHost
+ void CloseWindow() override;
+ void ToggleMaximize() override;
+ void ActivateWindow() override;
+ void SetCapture(bool frame_has_capture) override;
private:
- class LayoutManager;
- friend class LayoutManager;
- class FrameEventHandler;
-
- virtual void OnViewDestroyed(mojo::View* view) override;
+ void OnViewDestroyed(mojo::View* view) override;
+ void OnViewBoundsChanged(mojo::View* view,
+ const mojo::Rect& old_bounds,
+ const mojo::Rect& new_bounds) override;
mojo::View* view_;
mojo::View* app_view_;
- views::View* frame_view_;
- LayoutManager* frame_view_layout_manager_;
- views::Widget* widget_;
bool maximized_;
gfx::Rect restored_bounds_;
window_manager::WindowManagerApp* window_manager_app_;
- scoped_ptr<FrameEventHandler> frame_event_handler_;
+ scoped_ptr<mojo::ServiceProvider> viewer_services_;
+
+ mojo::Binding<examples::WindowFrameHost> binding_;
DISALLOW_COPY_AND_ASSIGN(FrameController);
};

Powered by Google App Engine
This is Rietveld 408576698