| Index: ui/views/mus/native_widget_mus.h
|
| diff --git a/ui/views/mus/native_widget_mus.h b/ui/views/mus/native_widget_mus.h
|
| deleted file mode 100644
|
| index d812615299a6fec45f85483308d0785ffc2b0f33..0000000000000000000000000000000000000000
|
| --- a/ui/views/mus/native_widget_mus.h
|
| +++ /dev/null
|
| @@ -1,315 +0,0 @@
|
| -// Copyright 2015 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 UI_VIEWS_MUS_NATIVE_WIDGET_MUS_H_
|
| -#define UI_VIEWS_MUS_NATIVE_WIDGET_MUS_H_
|
| -
|
| -#include <stdint.h>
|
| -
|
| -#include <map>
|
| -#include <memory>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/callback.h"
|
| -#include "base/macros.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "services/ui/public/cpp/input_event_handler.h"
|
| -#include "services/ui/public/interfaces/window_tree.mojom.h"
|
| -#include "ui/aura/client/drag_drop_delegate.h"
|
| -#include "ui/aura/window_delegate.h"
|
| -#include "ui/aura/window_tree_host_observer.h"
|
| -#include "ui/platform_window/platform_window_delegate.h"
|
| -#include "ui/views/mus/mus_export.h"
|
| -#include "ui/views/mus/window_tree_host_mus.h"
|
| -#include "ui/views/widget/native_widget_private.h"
|
| -
|
| -namespace aura {
|
| -namespace client {
|
| -class DragDropClient;
|
| -class ScreenPositionClient;
|
| -class WindowParentingClient;
|
| -}
|
| -class Window;
|
| -}
|
| -
|
| -namespace ui {
|
| -class Window;
|
| -class WindowTreeClient;
|
| -namespace mojom {
|
| -enum class Cursor;
|
| -enum class EventResult;
|
| -}
|
| -}
|
| -
|
| -namespace ui {
|
| -class Event;
|
| -}
|
| -
|
| -namespace wm {
|
| -class CursorManager;
|
| -class FocusController;
|
| -}
|
| -
|
| -namespace views {
|
| -namespace corewm {
|
| -class TooltipController;
|
| -}
|
| -class DropHelper;
|
| -class DropTargetMus;
|
| -class InputMethodMus;
|
| -class TooltipManagerAura;
|
| -
|
| -// An implementation of NativeWidget that binds to a ui::Window. Because Aura
|
| -// is used extensively within Views code, this code uses aura and binds to the
|
| -// ui::Window via a Mus-specific aura::WindowTreeHost impl. Because the root
|
| -// aura::Window in a hierarchy is created without a delegate by the
|
| -// aura::WindowTreeHost, we must create a child aura::Window in this class
|
| -// (content_) and attach it to the root.
|
| -class VIEWS_MUS_EXPORT NativeWidgetMus
|
| - : public internal::NativeWidgetPrivate,
|
| - public aura::WindowDelegate,
|
| - public aura::WindowTreeHostObserver,
|
| - public aura::client::DragDropDelegate,
|
| - public NON_EXPORTED_BASE(ui::InputEventHandler) {
|
| - public:
|
| - NativeWidgetMus(
|
| - internal::NativeWidgetDelegate* delegate,
|
| - ui::Window* window,
|
| - ui::mojom::CompositorFrameSinkType compositor_frame_sink_type);
|
| - ~NativeWidgetMus() override;
|
| -
|
| - // Configures the set of properties supplied to the window manager when
|
| - // creating a new Window for a Widget.
|
| - static void ConfigurePropertiesForNewWindow(
|
| - const Widget::InitParams& init_params,
|
| - std::map<std::string, std::vector<uint8_t>>* properties);
|
| -
|
| - // Notifies all widgets the frame constants changed in some way.
|
| - static void NotifyFrameChanged(ui::WindowTreeClient* client);
|
| -
|
| - // Returns the native widget for a ui::Window, or null if there is none.
|
| - static NativeWidgetMus* GetForWindow(ui::Window* window);
|
| -
|
| - // Returns the widget for a ui::Window, or null if there is none.
|
| - static Widget* GetWidgetForWindow(ui::Window* window);
|
| -
|
| - ui::mojom::CompositorFrameSinkType compositor_frame_sink_type() const {
|
| - return compositor_frame_sink_type_;
|
| - }
|
| - ui::Window* window() { return window_; }
|
| - aura::Window* aura_window() { return content_; }
|
| - WindowTreeHostMus* window_tree_host() { return window_tree_host_.get(); }
|
| -
|
| - aura::Window* GetRootWindow();
|
| -
|
| - void OnPlatformWindowClosed();
|
| - void OnActivationChanged(bool active);
|
| -
|
| - protected:
|
| - // Updates the client area in the ui::Window.
|
| - virtual void UpdateClientArea();
|
| -
|
| - // internal::NativeWidgetPrivate:
|
| - NonClientFrameView* CreateNonClientFrameView() override;
|
| - void InitNativeWidget(const Widget::InitParams& params) override;
|
| - void OnWidgetInitDone() override;
|
| - bool ShouldUseNativeFrame() const override;
|
| - bool ShouldWindowContentsBeTransparent() const override;
|
| - void FrameTypeChanged() override;
|
| - Widget* GetWidget() override;
|
| - const Widget* GetWidget() const override;
|
| - gfx::NativeView GetNativeView() const override;
|
| - gfx::NativeWindow GetNativeWindow() const override;
|
| - Widget* GetTopLevelWidget() override;
|
| - const ui::Compositor* GetCompositor() const override;
|
| - const ui::Layer* GetLayer() const override;
|
| - void ReorderNativeViews() override;
|
| - void ViewRemoved(View* view) override;
|
| - void SetNativeWindowProperty(const char* name, void* value) override;
|
| - void* GetNativeWindowProperty(const char* name) const override;
|
| - TooltipManager* GetTooltipManager() const override;
|
| - void SetCapture() override;
|
| - void ReleaseCapture() override;
|
| - bool HasCapture() const override;
|
| - ui::InputMethod* GetInputMethod() override;
|
| - void CenterWindow(const gfx::Size& size) override;
|
| - void GetWindowPlacement(gfx::Rect* bounds,
|
| - ui::WindowShowState* maximized) const override;
|
| - bool SetWindowTitle(const base::string16& title) override;
|
| - void SetWindowIcons(const gfx::ImageSkia& window_icon,
|
| - const gfx::ImageSkia& app_icon) override;
|
| - void InitModalType(ui::ModalType modal_type) override;
|
| - gfx::Rect GetWindowBoundsInScreen() const override;
|
| - gfx::Rect GetClientAreaBoundsInScreen() const override;
|
| - gfx::Rect GetRestoredBounds() const override;
|
| - std::string GetWorkspace() const override;
|
| - void SetBounds(const gfx::Rect& bounds_in_screen) override;
|
| - void SetSize(const gfx::Size& size) override;
|
| - void StackAbove(gfx::NativeView native_view) override;
|
| - void StackAtTop() override;
|
| - void SetShape(std::unique_ptr<SkRegion> shape) override;
|
| - void Close() override;
|
| - void CloseNow() override;
|
| - void Show() override;
|
| - void Hide() override;
|
| - void ShowMaximizedWithBounds(const gfx::Rect& restored_bounds) override;
|
| - void ShowWithWindowState(ui::WindowShowState state) override;
|
| - bool IsVisible() const override;
|
| - void Activate() override;
|
| - void Deactivate() override;
|
| - bool IsActive() const override;
|
| - void SetAlwaysOnTop(bool always_on_top) override;
|
| - bool IsAlwaysOnTop() const override;
|
| - void SetVisibleOnAllWorkspaces(bool always_visible) override;
|
| - bool IsVisibleOnAllWorkspaces() const override;
|
| - void Maximize() override;
|
| - void Minimize() override;
|
| - bool IsMaximized() const override;
|
| - bool IsMinimized() const override;
|
| - void Restore() override;
|
| - void SetFullscreen(bool fullscreen) override;
|
| - bool IsFullscreen() const override;
|
| - void SetOpacity(float opacity) override;
|
| - void FlashFrame(bool flash_frame) override;
|
| - void RunShellDrag(View* view,
|
| - const ui::OSExchangeData& data,
|
| - const gfx::Point& location,
|
| - int drag_operations,
|
| - ui::DragDropTypes::DragEventSource source) override;
|
| - void SchedulePaintInRect(const gfx::Rect& rect) override;
|
| - void SetCursor(gfx::NativeCursor cursor) override;
|
| - bool IsMouseEventsEnabled() const override;
|
| - void ClearNativeFocus() override;
|
| - gfx::Rect GetWorkAreaBoundsInScreen() const override;
|
| - Widget::MoveLoopResult RunMoveLoop(
|
| - const gfx::Vector2d& drag_offset,
|
| - Widget::MoveLoopSource source,
|
| - Widget::MoveLoopEscapeBehavior escape_behavior) override;
|
| - void EndMoveLoop() override;
|
| - void SetVisibilityChangedAnimationsEnabled(bool value) override;
|
| - void SetVisibilityAnimationDuration(const base::TimeDelta& duration) override;
|
| - void SetVisibilityAnimationTransition(
|
| - Widget::VisibilityTransition transition) override;
|
| - bool IsTranslucentWindowOpacitySupported() const override;
|
| - void OnSizeConstraintsChanged() override;
|
| - void RepostNativeEvent(gfx::NativeEvent native_event) override;
|
| - std::string GetName() const override;
|
| -
|
| - // Overridden from aura::WindowDelegate:
|
| - gfx::Size GetMinimumSize() const override;
|
| - gfx::Size GetMaximumSize() const override;
|
| - void OnBoundsChanged(const gfx::Rect& old_bounds,
|
| - const gfx::Rect& new_bounds) override;
|
| - gfx::NativeCursor GetCursor(const gfx::Point& point) override;
|
| - int GetNonClientComponent(const gfx::Point& point) const override;
|
| - bool ShouldDescendIntoChildForEventHandling(
|
| - aura::Window* child,
|
| - const gfx::Point& location) override;
|
| - bool CanFocus() override;
|
| - void OnCaptureLost() override;
|
| - void OnPaint(const ui::PaintContext& context) override;
|
| - void OnDeviceScaleFactorChanged(float device_scale_factor) override;
|
| - void OnWindowDestroying(aura::Window* window) override;
|
| - void OnWindowDestroyed(aura::Window* window) override;
|
| - void OnWindowTargetVisibilityChanged(bool visible) override;
|
| - bool HasHitTestMask() const override;
|
| - void GetHitTestMask(gfx::Path* mask) const override;
|
| -
|
| - // Overridden from ui::EventHandler:
|
| - void OnKeyEvent(ui::KeyEvent* event) override;
|
| - void OnMouseEvent(ui::MouseEvent* event) override;
|
| - void OnScrollEvent(ui::ScrollEvent* event) override;
|
| - void OnGestureEvent(ui::GestureEvent* event) override;
|
| -
|
| - // Overridden from aura::WindowTreeHostObserver:
|
| - void OnHostResized(const aura::WindowTreeHost* host) override;
|
| - void OnHostMovedInPixels(const aura::WindowTreeHost* host,
|
| - const gfx::Point& new_origin_in_pixels) override;
|
| - void OnHostCloseRequested(const aura::WindowTreeHost* host) override;
|
| -
|
| - // Overridden from aura::client::DragDropDelegate:
|
| - void OnDragEntered(const ui::DropTargetEvent& event) override;
|
| - int OnDragUpdated(const ui::DropTargetEvent& event) override;
|
| - void OnDragExited() override;
|
| - int OnPerformDrop(const ui::DropTargetEvent& event) override;
|
| -
|
| - // Overridden from ui::InputEventHandler:
|
| - void OnWindowInputEvent(
|
| - ui::Window* view,
|
| - const ui::Event& event,
|
| - std::unique_ptr<base::Callback<void(ui::mojom::EventResult)>>*
|
| - ack_callback) override;
|
| -
|
| - private:
|
| - friend class NativeWidgetMusTest;
|
| - class MusWindowObserver;
|
| - class MusCaptureClient;
|
| -
|
| - ui::PlatformWindowDelegate* platform_window_delegate() {
|
| - return window_tree_host();
|
| - }
|
| -
|
| - // Returns true if this NativeWidgetMus exists on the window manager side
|
| - // to provide the frame decorations.
|
| - bool is_parallel_widget_in_window_manager() {
|
| - return compositor_frame_sink_type_ ==
|
| - ui::mojom::CompositorFrameSinkType::UNDERLAY;
|
| - }
|
| -
|
| - void set_last_cursor(ui::mojom::Cursor cursor) { last_cursor_ = cursor; }
|
| - void SetShowState(ui::mojom::ShowState show_state);
|
| -
|
| - void OnMusWindowVisibilityChanging(ui::Window* window, bool visible);
|
| - void OnMusWindowVisibilityChanged(ui::Window* window, bool visible);
|
| -
|
| - // Propagates the widget hit test mask, if any, to the ui::Window.
|
| - // TODO(jamescook): Wire this through views::Widget so widgets can push
|
| - // updates if needed.
|
| - void UpdateHitTestMask();
|
| -
|
| - ui::Window* window_;
|
| - ui::mojom::Cursor last_cursor_;
|
| -
|
| - internal::NativeWidgetDelegate* native_widget_delegate_;
|
| -
|
| - const ui::mojom::CompositorFrameSinkType compositor_frame_sink_type_;
|
| - ui::mojom::ShowState show_state_before_fullscreen_;
|
| -
|
| - // See class documentation for Widget in widget.h for a note about ownership.
|
| - Widget::InitParams::Ownership ownership_;
|
| -
|
| - // Functions with the same name require the ui::WindowObserver to be in
|
| - // a separate class.
|
| - std::unique_ptr<MusWindowObserver> mus_window_observer_;
|
| -
|
| - // Receives drop events for |window_|.
|
| - std::unique_ptr<DropTargetMus> drop_target_;
|
| -
|
| - // Aura configuration.
|
| - std::unique_ptr<WindowTreeHostMus> window_tree_host_;
|
| - aura::Window* content_;
|
| - std::unique_ptr<wm::FocusController> focus_client_;
|
| - std::unique_ptr<MusCaptureClient> capture_client_;
|
| - std::unique_ptr<aura::client::DragDropClient> drag_drop_client_;
|
| - std::unique_ptr<aura::client::WindowParentingClient> window_parenting_client_;
|
| - std::unique_ptr<aura::client::ScreenPositionClient> screen_position_client_;
|
| - std::unique_ptr<wm::CursorManager> cursor_manager_;
|
| -
|
| - std::unique_ptr<DropHelper> drop_helper_;
|
| - int last_drop_operation_;
|
| -
|
| - std::unique_ptr<corewm::TooltipController> tooltip_controller_;
|
| - std::unique_ptr<TooltipManagerAura> tooltip_manager_;
|
| -
|
| - std::unique_ptr<InputMethodMus> input_method_;
|
| -
|
| - base::WeakPtrFactory<NativeWidgetMus> close_widget_factory_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(NativeWidgetMus);
|
| -};
|
| -
|
| -} // namespace views
|
| -
|
| -#endif // UI_VIEWS_MUS_NATIVE_WIDGET_MUS_H_
|
|
|