diff options
Diffstat (limited to 'webkit/port/platform/chromium/WidgetClientChromium.h')
-rw-r--r-- | webkit/port/platform/chromium/WidgetClientChromium.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/webkit/port/platform/chromium/WidgetClientChromium.h b/webkit/port/platform/chromium/WidgetClientChromium.h new file mode 100644 index 0000000..f39c49b --- /dev/null +++ b/webkit/port/platform/chromium/WidgetClientChromium.h @@ -0,0 +1,75 @@ +// Copyright (c) 2006-2008 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 WidgetClientChromium_H__ +#define WidgetClientChromium_H__ + +#include "base/gfx/native_widget_types.h" +#include "WidgetClient.h" + +class SkBitmap; + +namespace WebCore { + +class Cursor; +class IntRect; +class Range; + +// Generic interface for features needed by the Widget. +class WidgetClientChromium : public WidgetClient { +public: + virtual ~WidgetClientChromium() {} + + // Returns the containing window for the Widget. + // TODO(pinkerton): this needs a better name, "window" is incorrect on other + // platforms. + virtual gfx::ViewHandle containingWindow() = 0; + + // Invalidate a region of the widget's containing window. + virtual void invalidateRect(const IntRect& damagedRect) = 0; + + // Scroll the region of the widget's containing window within the given + // clipRect by the specified dx and dy. + virtual void scrollRect(int dx, int dy, const IntRect& clipRect) = 0; + + // Notifies the client of a new popup widget. The client should place + // and size the widget with the given bounds, relative to the screen. + virtual void popupOpened(Widget* widget, const IntRect& bounds) = 0; + + // Notifies the client that the given popup widget has closed. + virtual void popupClosed(Widget* widget) = 0; + + // Indicates that a new cursor should be shown. + virtual void setCursor(const Cursor& cursor) = 0; + + // Indicates the widget thinks it has focus. This should give focus to the + // window hosting the widget. + virtual void setFocus() = 0; + + // This function is called to retrieve a resource bitmap from the + // renderer that was cached as a result of the renderer receiving a + // ViewMsg_Preload_Bitmap message from the browser. + virtual const SkBitmap* getPreloadedResourceBitmap(int resource_id) = 0; + + // Notification that the given widget's scroll position has changed. This + // function is called AFTER the position has been updated. + virtual void onScrollPositionChanged(Widget* widget) = 0; + + // Retrieves the tick-marks for a given frame. + virtual const WTF::Vector<RefPtr<WebCore::Range> >* getTickmarks( + WebCore::Frame* frame) = 0; + + // Retrieves the index of the active tickmark for a given frame. If the + // frame does not have an active tickmark (for example if the active + // tickmark resides in another frame) this function returns kNoTickmark. + static const size_t kNoTickmark = -1; + virtual size_t getActiveTickmarkIndex(WebCore::Frame* frame) = 0; + + // Returns true if this widget is hidden because it's in a background tab. + virtual bool isHidden() = 0; +}; + +} // namespace WebCore + +#endif // WidgetClientChromium_H__ |