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

Side by Side Diff: services/ui/public/cpp/window_manager_delegate.h

Issue 2651593002: mus: Remove the old client lib. (Closed)
Patch Set: restore test Created 3 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef SERVICES_UI_PUBLIC_CPP_WINDOW_MANAGER_DELEGATE_H_
6 #define SERVICES_UI_PUBLIC_CPP_WINDOW_MANAGER_DELEGATE_H_
7
8 #include <stdint.h>
9
10 #include <map>
11 #include <memory>
12 #include <string>
13 #include <vector>
14
15 #include "base/callback_forward.h"
16 #include "services/ui/public/interfaces/cursor.mojom.h"
17 #include "services/ui/public/interfaces/window_manager.mojom.h"
18 #include "services/ui/public/interfaces/window_manager_constants.mojom.h"
19 #include "services/ui/public/interfaces/window_tree_constants.mojom.h"
20 #include "ui/events/mojo/event.mojom.h"
21
22 namespace display {
23 class Display;
24 }
25
26 namespace gfx {
27 class Insets;
28 class Rect;
29 class Vector2d;
30 }
31
32 namespace ui {
33 class Event;
34 }
35
36 namespace ui {
37
38 class Window;
39
40 // See the mojom with the same name for details on the functions in this
41 // interface.
42 class WindowManagerClient {
43 public:
44 virtual void SetFrameDecorationValues(
45 mojom::FrameDecorationValuesPtr values) = 0;
46 virtual void SetNonClientCursor(Window* window,
47 mojom::Cursor non_client_cursor) = 0;
48
49 virtual void AddAccelerators(std::vector<mojom::AcceleratorPtr> accelerators,
50 const base::Callback<void(bool)>& callback) = 0;
51 virtual void RemoveAccelerator(uint32_t id) = 0;
52 virtual void AddActivationParent(Window* window) = 0;
53 virtual void RemoveActivationParent(Window* window) = 0;
54 virtual void ActivateNextWindow() = 0;
55 virtual void SetUnderlaySurfaceOffsetAndExtendedHitArea(
56 Window* window,
57 const gfx::Vector2d& offset,
58 const gfx::Insets& hit_area) = 0;
59
60 protected:
61 virtual ~WindowManagerClient() {}
62 };
63
64 // Used by clients implementing a window manager.
65 // TODO(sky): this should be called WindowManager, but that's rather confusing
66 // currently.
67 class WindowManagerDelegate {
68 public:
69 // Called once to give the delegate access to functions only exposed to
70 // the WindowManager.
71 virtual void SetWindowManagerClient(WindowManagerClient* client) = 0;
72
73 // A client requested the bounds of |window| to change to |bounds|. Return
74 // true if the bounds are allowed to change. A return value of false
75 // indicates the change is not allowed.
76 // NOTE: This should not change the bounds of |window|. Instead return the
77 // bounds the window should be in |bounds|.
78 virtual bool OnWmSetBounds(Window* window, gfx::Rect* bounds) = 0;
79
80 // A client requested the shared property named |name| to change to
81 // |new_data|. Return true to allow the change to |new_data|, false
82 // otherwise.
83 virtual bool OnWmSetProperty(
84 Window* window,
85 const std::string& name,
86 std::unique_ptr<std::vector<uint8_t>>* new_data) = 0;
87
88 // A client has requested a new top level window. The delegate should create
89 // and parent the window appropriately and return it. |properties| is the
90 // supplied properties from the client requesting the new window. The
91 // delegate may modify |properties| before calling NewWindow(), but the
92 // delegate does *not* own |properties|, they are valid only for the life
93 // of OnWmCreateTopLevelWindow().
94 virtual Window* OnWmCreateTopLevelWindow(
95 std::map<std::string, std::vector<uint8_t>>* properties) = 0;
96
97 // Called when a Mus client's jankiness changes. |windows| is the set of
98 // windows owned by the window manager in which the client is embedded.
99 virtual void OnWmClientJankinessChanged(
100 const std::set<Window*>& client_windows,
101 bool janky) = 0;
102
103 // Called when a display is added. |window| is the root of the window tree for
104 // the specified display.
105 virtual void OnWmNewDisplay(Window* window,
106 const display::Display& display) = 0;
107
108 // Called when a display is removed. |window| is the root of the display.
109 virtual void OnWmDisplayRemoved(Window* window) = 0;
110
111 // Called when a display is modified.
112 virtual void OnWmDisplayModified(const display::Display& display) = 0;
113
114 virtual mojom::EventResult OnAccelerator(uint32_t id, const ui::Event& event);
115
116 virtual void OnWmPerformMoveLoop(
117 Window* window,
118 ui::mojom::MoveLoopSource source,
119 const gfx::Point& cursor_location,
120 const base::Callback<void(bool)>& on_done) = 0;
121
122 virtual void OnWmCancelMoveLoop(Window* window) = 0;
123
124 protected:
125 virtual ~WindowManagerDelegate() {}
126 };
127
128 } // namespace ui
129
130 #endif // SERVICES_UI_PUBLIC_CPP_WINDOW_MANAGER_DELEGATE_H_
OLDNEW
« no previous file with comments | « services/ui/public/cpp/window_drop_target.h ('k') | services/ui/public/cpp/window_manager_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698