| Index: views/widget/window_manager.h
|
| diff --git a/views/widget/window_manager.h b/views/widget/window_manager.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f634bf013187d048dc8b0a67945b80e2a6d23150
|
| --- /dev/null
|
| +++ b/views/widget/window_manager.h
|
| @@ -0,0 +1,79 @@
|
| +// Copyright (c) 2011 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 VIEWS_WIDGET_WINDOW_MANAGER_H_
|
| +#define VIEWS_WIDGET_WINDOW_MANAGER_H_
|
| +#pragma once
|
| +
|
| +#include "base/basictypes.h"
|
| +#include "ui/base/events.h"
|
| +#include "views/views_export.h"
|
| +
|
| +namespace gfx {
|
| +class Point;
|
| +}
|
| +
|
| +namespace views {
|
| +class KeyEvent;
|
| +class MouseEvent;
|
| +class TouchEvent;
|
| +class Widget;
|
| +
|
| +// A interface to WindowManager.
|
| +class VIEWS_EXPORT WindowManager {
|
| + public:
|
| + WindowManager();
|
| + virtual ~WindowManager();
|
| +
|
| + // Starts moving window given by |widget|. |point| represents the
|
| + // initial location of the mouse pointer.
|
| + virtual void StartMoveDrag(Widget* widget, const gfx::Point& point) = 0;
|
| +
|
| + // Starts resizing window give by |widget|. |point| represents the
|
| + // initial location of the mouse pointer and |hittest_code| represents
|
| + // the edge of the window a user selected to resize the window. See
|
| + // ui/base/hit_test.h for the hittest_code definition.
|
| + virtual void StartResizeDrag(
|
| + Widget* widget, const gfx::Point& point, int hittest_code) = 0;
|
| +
|
| + // Sets mouse capture on |widget|. Returns false if other widget
|
| + // already has mouse capture.
|
| + virtual bool SetMouseCapture(Widget* widget) = 0;
|
| +
|
| + // Releases the mouse capture on |widget|. Returns false if |widget|
|
| + // haven't capture the mouse.
|
| + virtual bool ReleaseMouseCapture(Widget* widget) = 0;
|
| +
|
| + // Checks if the |widget| has mouse capture.
|
| + virtual bool HasMouseCapture(const Widget* widget) const = 0;
|
| +
|
| + // WindowManager handles mouse event first. It may reisze/move window,
|
| + // or send the event to widget that has mouse capture.
|
| + virtual bool HandleKeyEvent(Widget* widget, const KeyEvent& event) = 0;
|
| +
|
| + // WindowManager handles mouse event first. It may resize/move window,
|
| + // or send the event to widget that has mouse capture.
|
| + virtual bool HandleMouseEvent(Widget* widget, const MouseEvent& event) = 0;
|
| +
|
| + // WindowManager handles touch event first. It is currently used only to
|
| + // activate windows. But it can also be used to move/resize windows.
|
| + virtual ui::TouchStatus HandleTouchEvent(Widget* widget,
|
| + const TouchEvent& event) = 0;
|
| +
|
| + // Register widget to the window manager.
|
| + virtual void Register(Widget* widget) = 0;
|
| +
|
| + // Installs window manager.
|
| + static void Install(WindowManager* wm);
|
| +
|
| + // Returns installed WindowManager.
|
| + static WindowManager* Get();
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(WindowManager);
|
| +};
|
| +
|
| +} // namespace views
|
| +
|
| +#endif // VIEWS_WIDGET_WINDOW_MANAGER_H_
|
|
|