Index: aura/window.h |
=================================================================== |
--- aura/window.h (revision 100961) |
+++ aura/window.h (working copy) |
@@ -1,166 +0,0 @@ |
-// 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 AURA_WINDOW_H_ |
-#define AURA_WINDOW_H_ |
-#pragma once |
- |
-#include <vector> |
- |
-#include "aura/aura_export.h" |
-#include "base/basictypes.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "ui/gfx/compositor/layer_delegate.h" |
-#include "ui/gfx/rect.h" |
- |
-class SkCanvas; |
- |
-namespace ui { |
-class Compositor; |
-class Layer; |
-} |
- |
-namespace aura { |
- |
-class Desktop; |
-class KeyEvent; |
-class MouseEvent; |
-class WindowDelegate; |
-class WindowManager; |
- |
-namespace internal { |
-class FocusManager; |
-} |
- |
-// Aura window implementation. Interesting events are sent to the |
-// WindowDelegate. |
-// TODO(beng): resolve ownership. |
-class AURA_EXPORT Window : public ui::LayerDelegate { |
- public: |
- enum Visibility { |
- // Don't display the window onscreen and don't let it receive mouse |
- // events. This is the default. |
- VISIBILITY_HIDDEN = 1, |
- |
- // Display the window and let it receive mouse events. |
- VISIBILITY_SHOWN = 2, |
- |
- // Display the window but prevent it from receiving mouse events. |
- VISIBILITY_SHOWN_NO_INPUT = 3, |
- }; |
- |
- explicit Window(WindowDelegate* delegate); |
- ~Window(); |
- |
- void Init(); |
- |
- int id() const { return id_; } |
- void set_id(int id) { id_ = id; } |
- |
- ui::Layer* layer() { return layer_.get(); } |
- const ui::Layer* layer() const { return layer_.get(); } |
- |
- // Changes the visibility of the window. |
- void SetVisibility(Visibility visibility); |
- Visibility visibility() const { return visibility_; } |
- |
- // Changes the bounds of the window. |
- void SetBounds(const gfx::Rect& bounds, int anim_ms); |
- const gfx::Rect& bounds() const { return bounds_; } |
- |
- // Marks the a portion of window as needing to be painted. |
- void SchedulePaintInRect(const gfx::Rect& rect); |
- |
- // Sets the contents of the window. |
- void SetCanvas(const SkCanvas& canvas, const gfx::Point& origin); |
- |
- // Sets the parent window of the window. If NULL, the window is parented to |
- // the desktop's window. |
- void SetParent(Window* parent); |
- Window* parent() { return parent_; } |
- |
- // Returns true if this Window is the container for toplevel windows. |
- virtual bool IsTopLevelWindowContainer() const; |
- |
- // Move the specified child of this Window to the front of the z-order. |
- // TODO(beng): this is (obviously) feeble. |
- void MoveChildToFront(Window* child); |
- |
- // Tree operations. |
- // TODO(beng): Child windows are currently not owned by the hierarchy. We |
- // should change this. |
- void AddChild(Window* child); |
- void RemoveChild(Window* child); |
- |
- static void ConvertPointToWindow(Window* source, |
- Window* target, |
- gfx::Point* point); |
- |
- // Handles a mouse event. Returns true if handled. |
- bool OnMouseEvent(MouseEvent* event); |
- |
- // Handles a key event. Returns true if handled. |
- bool OnKeyEvent(KeyEvent* event); |
- |
- WindowDelegate* delegate() { return delegate_; } |
- |
- // Returns true if the mouse pointer at the specified |point| can trigger an |
- // event for this Window. |
- // TODO(beng): |
- // A Window can supply a hit-test mask to cause some portions of itself to not |
- // trigger events, causing the events to fall through to the Window behind. |
- bool HitTest(const gfx::Point& point); |
- |
- // Returns the Window that most closely encloses |point| for the purposes of |
- // event targeting. |
- Window* GetEventHandlerForPoint(const gfx::Point& point); |
- |
- // Returns the FocusManager for the Window, which may be attached to a parent |
- // Window. Can return NULL if the Window has no FocusManager. |
- virtual internal::FocusManager* GetFocusManager(); |
- |
- // The Window does not own this object. |
- void set_user_data(void* user_data) { user_data_ = user_data; } |
- void* user_data() const { return user_data_; } |
- |
- private: |
- typedef std::vector<Window*> Windows; |
- |
- // If SchedulePaint has been invoked on the Window the delegate is notified. |
- void UpdateLayerCanvas(); |
- |
- // Schedules a paint for the Window's entire bounds. |
- void SchedulePaint(); |
- |
- // Overridden from ui::LayerDelegate: |
- virtual void OnPaintLayer(gfx::Canvas* canvas) OVERRIDE; |
- |
- WindowDelegate* delegate_; |
- |
- Visibility visibility_; |
- |
- scoped_ptr<ui::Layer> layer_; |
- |
- // Bounds of the window in the desktop's coordinate system. |
- gfx::Rect bounds_; |
- |
- // The Window's parent. |
- // TODO(beng): Implement NULL-ness for toplevels. |
- Window* parent_; |
- |
- // Child windows. Topmost is last. |
- Windows children_; |
- |
- int id_; |
- |
- scoped_ptr<WindowManager> window_manager_; |
- |
- void* user_data_; |
- |
- DISALLOW_COPY_AND_ASSIGN(Window); |
-}; |
- |
-} // namespace aura |
- |
-#endif // AURA_WINDOW_H_ |