Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef COMPONENTS_MUS_PUBLIC_CPP_WINDOW_TREE_CLIENT_H_ | 5 #ifndef COMPONENTS_MUS_PUBLIC_CPP_WINDOW_TREE_CLIENT_H_ |
| 6 #define COMPONENTS_MUS_PUBLIC_CPP_WINDOW_TREE_CLIENT_H_ | 6 #define COMPONENTS_MUS_PUBLIC_CPP_WINDOW_TREE_CLIENT_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <map> | 10 #include <map> |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 173 | 173 |
| 174 // Returns the current location of the mouse on screen. Note: this method may | 174 // Returns the current location of the mouse on screen. Note: this method may |
| 175 // race the asynchronous initialization; but in that case we return (0, 0). | 175 // race the asynchronous initialization; but in that case we return (0, 0). |
| 176 gfx::Point GetCursorScreenPoint(); | 176 gfx::Point GetCursorScreenPoint(); |
| 177 | 177 |
| 178 // See description in window_tree.mojom. When an existing event observer is | 178 // See description in window_tree.mojom. When an existing event observer is |
| 179 // updated or cleared then any future events from the server for that observer | 179 // updated or cleared then any future events from the server for that observer |
| 180 // will be ignored. | 180 // will be ignored. |
| 181 void SetEventObserver(mojom::EventMatcherPtr matcher); | 181 void SetEventObserver(mojom::EventMatcherPtr matcher); |
| 182 | 182 |
| 183 // Performs a window move. This call blocks but spins up a nested message | |
| 184 // loop to handle incoming move messages. | |
| 185 void PerformWindowMove(Window* window, const gfx::Point& cursor_location, | |
|
sky
2016/06/24 19:59:00
nit: run git cl format
| |
| 186 const base::Callback<void(bool)>& callback); | |
| 187 | |
| 188 // Cancels a in progress window move. (If no window is currently being moved, | |
| 189 // does nothing.) | |
| 190 void CancelWindowMove(Window* window); | |
| 191 | |
| 183 // Creates and returns a new Window (which is owned by the window server). | 192 // Creates and returns a new Window (which is owned by the window server). |
| 184 // Windows are initially hidden, use SetVisible(true) to show. | 193 // Windows are initially hidden, use SetVisible(true) to show. |
| 185 Window* NewWindow() { return NewWindow(nullptr); } | 194 Window* NewWindow() { return NewWindow(nullptr); } |
| 186 Window* NewWindow( | 195 Window* NewWindow( |
| 187 const std::map<std::string, std::vector<uint8_t>>* properties); | 196 const std::map<std::string, std::vector<uint8_t>>* properties); |
| 188 Window* NewTopLevelWindow( | 197 Window* NewTopLevelWindow( |
| 189 const std::map<std::string, std::vector<uint8_t>>* properties); | 198 const std::map<std::string, std::vector<uint8_t>>* properties); |
| 190 | 199 |
| 191 void AddObserver(WindowTreeClientObserver* observer); | 200 void AddObserver(WindowTreeClientObserver* observer); |
| 192 void RemoveObserver(WindowTreeClientObserver* observer); | 201 void RemoveObserver(WindowTreeClientObserver* observer); |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 292 void OnWindowInputEvent(uint32_t event_id, | 301 void OnWindowInputEvent(uint32_t event_id, |
| 293 Id window_id, | 302 Id window_id, |
| 294 std::unique_ptr<ui::Event> event, | 303 std::unique_ptr<ui::Event> event, |
| 295 uint32_t event_observer_id) override; | 304 uint32_t event_observer_id) override; |
| 296 void OnEventObserved(std::unique_ptr<ui::Event> event, | 305 void OnEventObserved(std::unique_ptr<ui::Event> event, |
| 297 uint32_t event_observer_id) override; | 306 uint32_t event_observer_id) override; |
| 298 void OnWindowFocused(Id focused_window_id) override; | 307 void OnWindowFocused(Id focused_window_id) override; |
| 299 void OnWindowPredefinedCursorChanged(Id window_id, | 308 void OnWindowPredefinedCursorChanged(Id window_id, |
| 300 mojom::Cursor cursor) override; | 309 mojom::Cursor cursor) override; |
| 301 void OnChangeCompleted(uint32_t change_id, bool success) override; | 310 void OnChangeCompleted(uint32_t change_id, bool success) override; |
| 311 void OnMoveLoopCompleted(uint32_t change_id, bool success) override; | |
| 302 void RequestClose(uint32_t window_id) override; | 312 void RequestClose(uint32_t window_id) override; |
| 303 void GetWindowManager( | 313 void GetWindowManager( |
| 304 mojo::AssociatedInterfaceRequest<WindowManager> internal) override; | 314 mojo::AssociatedInterfaceRequest<WindowManager> internal) override; |
| 305 | 315 |
| 306 // Overridden from WindowManager: | 316 // Overridden from WindowManager: |
| 307 void OnConnect(ClientSpecificId client_id) override; | 317 void OnConnect(ClientSpecificId client_id) override; |
| 308 void WmNewDisplayAdded(mojom::DisplayPtr display, | 318 void WmNewDisplayAdded(mojom::DisplayPtr display, |
| 309 mojom::WindowDataPtr root_data, | 319 mojom::WindowDataPtr root_data, |
| 310 bool parent_drawn) override; | 320 bool parent_drawn) override; |
| 311 void WmSetBounds(uint32_t change_id, | 321 void WmSetBounds(uint32_t change_id, |
| 312 Id window_id, | 322 Id window_id, |
| 313 const gfx::Rect& transit_bounds) override; | 323 const gfx::Rect& transit_bounds) override; |
| 314 void WmSetProperty(uint32_t change_id, | 324 void WmSetProperty(uint32_t change_id, |
| 315 Id window_id, | 325 Id window_id, |
| 316 const mojo::String& name, | 326 const mojo::String& name, |
| 317 mojo::Array<uint8_t> transit_data) override; | 327 mojo::Array<uint8_t> transit_data) override; |
| 318 void WmCreateTopLevelWindow(uint32_t change_id, | 328 void WmCreateTopLevelWindow(uint32_t change_id, |
| 319 ClientSpecificId requesting_client_id, | 329 ClientSpecificId requesting_client_id, |
| 320 mojo::Map<mojo::String, mojo::Array<uint8_t>> | 330 mojo::Map<mojo::String, mojo::Array<uint8_t>> |
| 321 transport_properties) override; | 331 transport_properties) override; |
| 322 void WmClientJankinessChanged(ClientSpecificId client_id, | 332 void WmClientJankinessChanged(ClientSpecificId client_id, |
| 323 bool janky) override; | 333 bool janky) override; |
| 334 void WmPerformMoveLoop(uint32_t change_id, | |
| 335 Id window_id, | |
| 336 const gfx::Point& cursor_location) override; | |
| 337 void WmCancelMoveLoop(uint32_t window_id) override; | |
| 324 void OnAccelerator(uint32_t id, std::unique_ptr<ui::Event> event) override; | 338 void OnAccelerator(uint32_t id, std::unique_ptr<ui::Event> event) override; |
| 325 | 339 |
| 326 // Overridden from WindowManagerClient: | 340 // Overridden from WindowManagerClient: |
| 327 void SetFrameDecorationValues( | 341 void SetFrameDecorationValues( |
| 328 mojom::FrameDecorationValuesPtr values) override; | 342 mojom::FrameDecorationValuesPtr values) override; |
| 329 void SetNonClientCursor(Window* window, | 343 void SetNonClientCursor(Window* window, |
| 330 mus::mojom::Cursor cursor_id) override; | 344 mus::mojom::Cursor cursor_id) override; |
| 331 void AddAccelerator(uint32_t id, | 345 void AddAccelerator(uint32_t id, |
| 332 mojom::EventMatcherPtr event_matcher, | 346 mojom::EventMatcherPtr event_matcher, |
| 333 const base::Callback<void(bool)>& callback) override; | 347 const base::Callback<void(bool)>& callback) override; |
| 334 void RemoveAccelerator(uint32_t id) override; | 348 void RemoveAccelerator(uint32_t id) override; |
| 335 void AddActivationParent(Window* window) override; | 349 void AddActivationParent(Window* window) override; |
| 336 void RemoveActivationParent(Window* window) override; | 350 void RemoveActivationParent(Window* window) override; |
| 337 void ActivateNextWindow() override; | 351 void ActivateNextWindow() override; |
| 338 void SetUnderlaySurfaceOffsetAndExtendedHitArea( | 352 void SetUnderlaySurfaceOffsetAndExtendedHitArea( |
| 339 Window* window, | 353 Window* window, |
| 340 const gfx::Vector2d& offset, | 354 const gfx::Vector2d& offset, |
| 341 const gfx::Insets& hit_area) override; | 355 const gfx::Insets& hit_area) override; |
| 356 void OnWmMoveLoopCompleted(uint32_t change_id, | |
| 357 bool completed) override; | |
| 342 | 358 |
| 343 // The one int in |cursor_location_mapping_|. When we read from this | 359 // The one int in |cursor_location_mapping_|. When we read from this |
| 344 // location, we must always read from it atomically. | 360 // location, we must always read from it atomically. |
| 345 base::subtle::Atomic32* cursor_location_memory() { | 361 base::subtle::Atomic32* cursor_location_memory() { |
| 346 return reinterpret_cast<base::subtle::Atomic32*>( | 362 return reinterpret_cast<base::subtle::Atomic32*>( |
| 347 cursor_location_mapping_.get()); | 363 cursor_location_mapping_.get()); |
| 348 } | 364 } |
| 349 | 365 |
| 350 // This is set once and only once when we get OnEmbed(). It gives the unique | 366 // This is set once and only once when we get OnEmbed(). It gives the unique |
| 351 // id for this client. | 367 // id for this client. |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 389 | 405 |
| 390 std::unique_ptr<mojo::AssociatedBinding<mojom::WindowManager>> | 406 std::unique_ptr<mojo::AssociatedBinding<mojom::WindowManager>> |
| 391 window_manager_internal_; | 407 window_manager_internal_; |
| 392 mojom::WindowManagerClientAssociatedPtr window_manager_internal_client_; | 408 mojom::WindowManagerClientAssociatedPtr window_manager_internal_client_; |
| 393 | 409 |
| 394 bool has_event_observer_ = false; | 410 bool has_event_observer_ = false; |
| 395 | 411 |
| 396 // Monotonically increasing ID for event observers. | 412 // Monotonically increasing ID for event observers. |
| 397 uint32_t event_observer_id_ = 0u; | 413 uint32_t event_observer_id_ = 0u; |
| 398 | 414 |
| 415 // Callback executed when a move loop initiated by PerformWindowMove() is | |
| 416 // completed. | |
| 417 base::Callback<void(bool)> on_current_move_finished_; | |
| 418 | |
| 399 base::WeakPtrFactory<WindowTreeClient> weak_factory_; | 419 base::WeakPtrFactory<WindowTreeClient> weak_factory_; |
| 400 | 420 |
| 401 DISALLOW_COPY_AND_ASSIGN(WindowTreeClient); | 421 DISALLOW_COPY_AND_ASSIGN(WindowTreeClient); |
| 402 }; | 422 }; |
| 403 | 423 |
| 404 } // namespace mus | 424 } // namespace mus |
| 405 | 425 |
| 406 #endif // COMPONENTS_MUS_PUBLIC_CPP_WINDOW_TREE_CLIENT_H_ | 426 #endif // COMPONENTS_MUS_PUBLIC_CPP_WINDOW_TREE_CLIENT_H_ |
| OLD | NEW |