diff options
Diffstat (limited to 'views/widget/native_widget_delegate.h')
-rw-r--r-- | views/widget/native_widget_delegate.h | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/views/widget/native_widget_delegate.h b/views/widget/native_widget_delegate.h new file mode 100644 index 0000000..3732e97 --- /dev/null +++ b/views/widget/native_widget_delegate.h @@ -0,0 +1,116 @@ +// 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_NATIVE_WIDGET_DELEGATE_H_ +#define VIEWS_WIDGET_NATIVE_WIDGET_DELEGATE_H_ +#pragma once + +#include "views/views_export.h" +#include "ui/base/events.h" + +namespace gfx { +class Canvas; +class Point; +class Size; +} + +namespace views { +class InputMethod; +class KeyEvent; +class MouseEvent; +class TouchEvent; + +namespace internal { + +//////////////////////////////////////////////////////////////////////////////// +// NativeWidgetDelegate +// +// An interface implemented by the object that handles events sent by a +// NativeWidget implementation. +// +class VIEWS_EXPORT NativeWidgetDelegate { + public: + virtual ~NativeWidgetDelegate() {} + + // Returns true if the window is modal. + virtual bool IsModal() const = 0; + + // Returns true if the window is a dialog box. + virtual bool IsDialogBox() const = 0; + + // Returns true if the window can be activated. + virtual bool CanActivate() const = 0; + + virtual bool IsInactiveRenderingDisabled() const = 0; + virtual void EnableInactiveRendering() = 0; + + // Called when the activation state of a window has changed. + virtual void OnNativeWidgetActivationChanged(bool active) = 0; + + // Called when native focus moves from one native view to another. + virtual void OnNativeFocus(gfx::NativeView focused_view) = 0; + virtual void OnNativeBlur(gfx::NativeView focused_view) = 0; + + // Called when the window is shown/hidden. + virtual void OnNativeWidgetVisibilityChanged(bool visible) = 0; + + // Called when the native widget is created. + virtual void OnNativeWidgetCreated() = 0; + + // Called just before the native widget is destroyed. This is the delegate's + // last chance to do anything with the native widget handle. + virtual void OnNativeWidgetDestroying() = 0; + + // Called just after the native widget is destroyed. + virtual void OnNativeWidgetDestroyed() = 0; + + // Returns the smallest size the window can be resized to by the user. + virtual gfx::Size GetMinimumSize() = 0; + + // Called when the NativeWidget changed size to |new_size|. + virtual void OnNativeWidgetSizeChanged(const gfx::Size& new_size) = 0; + + // Called when the user begins/ends to change the bounds of the window. + virtual void OnNativeWidgetBeginUserBoundsChange() = 0; + virtual void OnNativeWidgetEndUserBoundsChange() = 0; + + // Returns true if the delegate has a FocusManager. + virtual bool HasFocusManager() const = 0; + + // Paints the widget using acceleration. If the widget is not using + // accelerated painting this returns false and does nothing. + virtual bool OnNativeWidgetPaintAccelerated( + const gfx::Rect& dirty_region) = 0; + + // Paints the rootview in the canvas. This will also refresh the compositor + // tree if necessary when accelerated painting is enabled. + virtual void OnNativeWidgetPaint(gfx::Canvas* canvas) = 0; + + // Returns the non-client component (see ui/base/hit_test.h) containing + // |point|, in client coordinates. + virtual int GetNonClientComponent(const gfx::Point& point) = 0; + + // Mouse and key event handlers. + virtual bool OnKeyEvent(const KeyEvent& event) = 0; + virtual bool OnMouseEvent(const MouseEvent& event) = 0; + virtual void OnMouseCaptureLost() = 0; + virtual ui::TouchStatus OnTouchEvent(const TouchEvent& event) = 0; + + // Runs the specified native command. Returns true if the command is handled. + virtual bool ExecuteCommand(int command_id) = 0; + + // Returns the input method of the widget this delegate is associated with. + // Note that this does not use the top level widget, so may return NULL + // if the widget doesn't have input method. + virtual InputMethod* GetInputMethodDirect() = 0; + + // + virtual Widget* AsWidget() = 0; + virtual const Widget* AsWidget() const = 0; +}; + +} // namespace internal +} // namespace views + +#endif // VIEWS_WIDGET_NATIVE_WIDGET_DELEGATE_H_ |