| Index: components/mus/ws/server_window.h
|
| diff --git a/components/mus/ws/server_window.h b/components/mus/ws/server_window.h
|
| deleted file mode 100644
|
| index 75f4f0814065c2e4bef7330337afe25a957fd8e8..0000000000000000000000000000000000000000
|
| --- a/components/mus/ws/server_window.h
|
| +++ /dev/null
|
| @@ -1,249 +0,0 @@
|
| -// 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 COMPONENTS_MUS_WS_SERVER_WINDOW_H_
|
| -#define COMPONENTS_MUS_WS_SERVER_WINDOW_H_
|
| -
|
| -#include <stdint.h>
|
| -
|
| -#include <map>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/logging.h"
|
| -#include "base/macros.h"
|
| -#include "base/observer_list.h"
|
| -#include "components/mus/public/interfaces/surface.mojom.h"
|
| -#include "components/mus/public/interfaces/window_tree.mojom.h"
|
| -#include "components/mus/ws/ids.h"
|
| -#include "components/mus/ws/server_window_surface.h"
|
| -#include "mojo/public/cpp/bindings/binding.h"
|
| -#include "ui/gfx/geometry/insets.h"
|
| -#include "ui/gfx/geometry/rect.h"
|
| -#include "ui/gfx/geometry/vector2d.h"
|
| -#include "ui/gfx/transform.h"
|
| -#include "ui/platform_window/text_input_state.h"
|
| -
|
| -namespace mus {
|
| -namespace ws {
|
| -
|
| -class ServerWindowDelegate;
|
| -class ServerWindowObserver;
|
| -class ServerWindowSurfaceManager;
|
| -
|
| -// Server side representation of a window. Delegate is informed of interesting
|
| -// events.
|
| -//
|
| -// It is assumed that all functions that mutate the tree have validated the
|
| -// mutation is possible before hand. For example, Reorder() assumes the supplied
|
| -// window is a child and not already in position.
|
| -//
|
| -// ServerWindows do not own their children. If you delete a window that has
|
| -// children the children are implicitly removed. Similarly if a window has a
|
| -// parent and the window is deleted the deleted window is implicitly removed
|
| -// from the parent.
|
| -class ServerWindow {
|
| - public:
|
| - using Properties = std::map<std::string, std::vector<uint8_t>>;
|
| - using Windows = std::vector<ServerWindow*>;
|
| -
|
| - ServerWindow(ServerWindowDelegate* delegate, const WindowId& id);
|
| - ServerWindow(ServerWindowDelegate* delegate,
|
| - const WindowId& id,
|
| - const Properties& properties);
|
| - ~ServerWindow();
|
| -
|
| - void AddObserver(ServerWindowObserver* observer);
|
| - void RemoveObserver(ServerWindowObserver* observer);
|
| -
|
| - // Creates a new surface of the specified type, replacing the existing.
|
| - void CreateSurface(mojom::SurfaceType surface_type,
|
| - mojo::InterfaceRequest<mojom::Surface> request,
|
| - mojom::SurfaceClientPtr client);
|
| -
|
| - const WindowId& id() const { return id_; }
|
| -
|
| - void Add(ServerWindow* child);
|
| - void Remove(ServerWindow* child);
|
| - void Reorder(ServerWindow* relative, mojom::OrderDirection diretion);
|
| - void StackChildAtBottom(ServerWindow* child);
|
| - void StackChildAtTop(ServerWindow* child);
|
| -
|
| - const gfx::Rect& bounds() const { return bounds_; }
|
| - // Sets the bounds. If the size changes this implicitly resets the client
|
| - // area to fill the whole bounds.
|
| - void SetBounds(const gfx::Rect& bounds);
|
| -
|
| - const std::vector<gfx::Rect>& additional_client_areas() const {
|
| - return additional_client_areas_;
|
| - }
|
| - const gfx::Insets& client_area() const { return client_area_; }
|
| - void SetClientArea(const gfx::Insets& insets,
|
| - const std::vector<gfx::Rect>& additional_client_areas);
|
| -
|
| - const gfx::Rect* hit_test_mask() const { return hit_test_mask_.get(); }
|
| - void SetHitTestMask(const gfx::Rect& mask);
|
| - void ClearHitTestMask();
|
| -
|
| - int32_t cursor() const { return static_cast<int32_t>(cursor_id_); }
|
| - int32_t non_client_cursor() const {
|
| - return static_cast<int32_t>(non_client_cursor_id_);
|
| - }
|
| -
|
| - const ServerWindow* parent() const { return parent_; }
|
| - ServerWindow* parent() { return parent_; }
|
| -
|
| - const ServerWindow* GetRoot() const;
|
| - ServerWindow* GetRoot() {
|
| - return const_cast<ServerWindow*>(
|
| - const_cast<const ServerWindow*>(this)->GetRoot());
|
| - }
|
| -
|
| - std::vector<const ServerWindow*> GetChildren() const;
|
| - std::vector<ServerWindow*> GetChildren();
|
| - const Windows& children() const { return children_; }
|
| -
|
| - // Returns the ServerWindow object with the provided |id| if it lies in a
|
| - // subtree of |this|.
|
| - ServerWindow* GetChildWindow(const WindowId& id);
|
| -
|
| - // Transient window management.
|
| - // Adding transient child fails if the child window is modal to system.
|
| - bool AddTransientWindow(ServerWindow* child);
|
| - void RemoveTransientWindow(ServerWindow* child);
|
| -
|
| - ServerWindow* transient_parent() { return transient_parent_; }
|
| - const ServerWindow* transient_parent() const { return transient_parent_; }
|
| -
|
| - const Windows& transient_children() const { return transient_children_; }
|
| -
|
| - bool is_modal() const { return is_modal_; }
|
| - void SetModal();
|
| -
|
| - // Returns true if this contains |window| or is |window|.
|
| - bool Contains(const ServerWindow* window) const;
|
| -
|
| - // Returns the visibility requested by this window. IsDrawn() returns whether
|
| - // the window is actually visible on screen.
|
| - bool visible() const { return visible_; }
|
| - void SetVisible(bool value);
|
| -
|
| - float opacity() const { return opacity_; }
|
| - void SetOpacity(float value);
|
| -
|
| - void SetPredefinedCursor(mus::mojom::Cursor cursor_id);
|
| - void SetNonClientCursor(mus::mojom::Cursor cursor_id);
|
| -
|
| - const gfx::Transform& transform() const { return transform_; }
|
| - void SetTransform(const gfx::Transform& transform);
|
| -
|
| - const std::map<std::string, std::vector<uint8_t>>& properties() const {
|
| - return properties_;
|
| - }
|
| - void SetProperty(const std::string& name, const std::vector<uint8_t>* value);
|
| -
|
| - std::string GetName() const;
|
| -
|
| - void SetTextInputState(const ui::TextInputState& state);
|
| - const ui::TextInputState& text_input_state() const {
|
| - return text_input_state_;
|
| - }
|
| -
|
| - void set_can_focus(bool can_focus) { can_focus_ = can_focus; }
|
| - bool can_focus() const { return can_focus_; }
|
| -
|
| - // Returns true if this window is attached to a root and all ancestors are
|
| - // visible.
|
| - bool IsDrawn() const;
|
| -
|
| - // Called when its appropriate to destroy surfaces scheduled for destruction.
|
| - void DestroySurfacesScheduledForDestruction();
|
| -
|
| - const gfx::Insets& extended_hit_test_region() const {
|
| - return extended_hit_test_region_;
|
| - }
|
| - void set_extended_hit_test_region(const gfx::Insets& insets) {
|
| - extended_hit_test_region_ = insets;
|
| - }
|
| -
|
| - ServerWindowSurfaceManager* GetOrCreateSurfaceManager();
|
| - ServerWindowSurfaceManager* surface_manager() {
|
| - return surface_manager_.get();
|
| - }
|
| - const ServerWindowSurfaceManager* surface_manager() const {
|
| - return surface_manager_.get();
|
| - }
|
| -
|
| - // Offset of the underlay from the the window bounds (used for shadows).
|
| - const gfx::Vector2d& underlay_offset() const { return underlay_offset_; }
|
| - void SetUnderlayOffset(const gfx::Vector2d& offset);
|
| -
|
| - ServerWindowDelegate* delegate() { return delegate_; }
|
| -
|
| -#if !defined(NDEBUG)
|
| - std::string GetDebugWindowHierarchy() const;
|
| - void BuildDebugInfo(const std::string& depth, std::string* result) const;
|
| -#endif
|
| -
|
| - private:
|
| - // Implementation of removing a window. Doesn't send any notification.
|
| - void RemoveImpl(ServerWindow* window);
|
| -
|
| - // Called when this window's stacking order among its siblings is changed.
|
| - void OnStackingChanged();
|
| -
|
| - static void ReorderImpl(ServerWindow* window,
|
| - ServerWindow* relative,
|
| - mojom::OrderDirection diretion);
|
| -
|
| - // Returns a pointer to the stacking target that can be used by
|
| - // RestackTransientDescendants.
|
| - static ServerWindow** GetStackingTarget(ServerWindow* window);
|
| -
|
| - ServerWindowDelegate* delegate_;
|
| - const WindowId id_;
|
| - ServerWindow* parent_;
|
| - Windows children_;
|
| -
|
| - // Transient window management.
|
| - // If non-null we're actively restacking transient as the result of a
|
| - // transient ancestor changing.
|
| - ServerWindow* stacking_target_;
|
| - ServerWindow* transient_parent_;
|
| - Windows transient_children_;
|
| -
|
| - bool is_modal_;
|
| - bool visible_;
|
| - gfx::Rect bounds_;
|
| - gfx::Insets client_area_;
|
| - std::vector<gfx::Rect> additional_client_areas_;
|
| - std::unique_ptr<ServerWindowSurfaceManager> surface_manager_;
|
| - mojom::Cursor cursor_id_;
|
| - mojom::Cursor non_client_cursor_id_;
|
| - float opacity_;
|
| - bool can_focus_;
|
| - gfx::Transform transform_;
|
| - ui::TextInputState text_input_state_;
|
| -
|
| - Properties properties_;
|
| -
|
| - gfx::Vector2d underlay_offset_;
|
| -
|
| - // The hit test for windows extends outside the bounds of the window by this
|
| - // amount.
|
| - gfx::Insets extended_hit_test_region_;
|
| -
|
| - // Mouse events outside the hit test mask don't hit the window. An empty mask
|
| - // means all events miss the window. If null there is no mask.
|
| - std::unique_ptr<gfx::Rect> hit_test_mask_;
|
| -
|
| - base::ObserverList<ServerWindowObserver> observers_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ServerWindow);
|
| -};
|
| -
|
| -} // namespace ws
|
| -} // namespace mus
|
| -
|
| -#endif // COMPONENTS_MUS_WS_SERVER_WINDOW_H_
|
|
|