2
* Copyright (C) 2012 Google Inc. All rights reserved.
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions
7
* 1. Redistributions of source code must retain the above copyright
8
* notice, this list of conditions and the following disclaimer.
9
* 2. Redistributions in binary form must reproduce the above copyright
10
* notice, this list of conditions and the following disclaimer in the
11
* documentation and/or other materials provided with the distribution.
13
* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
14
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16
* DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
17
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
#ifndef WebPluginScrollbar_h
26
#define WebPluginScrollbar_h
28
#include <public/WebCanvas.h>
29
#include <public/WebScrollbar.h>
34
class WebPluginContainer;
35
class WebPluginScrollbarClient;
38
class WebPluginScrollbar : public WebScrollbar {
40
// Creates a WebPluginScrollbar for use by a plugin. The plugin container and
41
// client are guaranteed to outlive this object.
42
WEBKIT_EXPORT static WebPluginScrollbar* createForPlugin(WebScrollbar::Orientation,
44
WebPluginScrollbarClient*);
46
virtual ~WebPluginScrollbar() { }
48
// Gets the thickness of the scrollbar in pixels.
49
WEBKIT_EXPORT static int defaultThickness();
51
// Sets the rectangle of the scrollbar.
52
virtual void setLocation(const WebRect&) = 0;
54
// Sets the size of the scrollable region in pixels, i.e. if a document is
55
// 800x10000 pixels and the viewport is 1000x1000 pixels, then setLocation
56
// for the vertical scrollbar would have passed in a rectangle like:
57
// (800 - defaultThickness(), 0) (defaultThickness() x 10000)
58
// and setDocumentSize(10000)
59
virtual void setDocumentSize(int) = 0;
61
// Sets the current value.
62
virtual void setValue(int position) = 0;
64
// Scroll back or forward with the given granularity.
65
virtual void scroll(ScrollDirection, ScrollGranularity, float multiplier) = 0;
67
// Paint the given rectangle.
68
virtual void paint(WebCanvas*, const WebRect&) = 0;
70
// Returns true iff the given event was used.
71
virtual bool handleInputEvent(const WebInputEvent&) = 0;