1dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/*
2dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2004, 2006, 2008 Apple Inc. All rights reserved.
3dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2008 INdT - Instituto Nokia de Tecnologia
4dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2009-2010 ProFUSION embedded systems
5dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2009-2010 Samsung Electronics
6dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
7dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Redistribution and use in source and binary forms, with or without
8dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * modification, are permitted provided that the following conditions
9dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * are met:
10dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * 1. Redistributions of source code must retain the above copyright
11dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    notice, this list of conditions and the following disclaimer.
12dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * 2. Redistributions in binary form must reproduce the above copyright
13dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    notice, this list of conditions and the following disclaimer in the
14dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    documentation and/or other materials provided with the distribution.
15dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
16dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
17dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
20dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
24dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
28dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
29dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#ifndef ScrollbarEfl_h
30dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define ScrollbarEfl_h
31dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
32dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "Scrollbar.h"
33dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include <wtf/PassRefPtr.h>
34dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
35dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocknamespace WebCore {
36dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
37dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockclass ScrollbarEfl : public Scrollbar {
38dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockpublic:
39dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    friend class Scrollbar;
40dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
41dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    virtual ~ScrollbarEfl();
42dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
43dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    virtual void setFrameRect(const IntRect&);
44dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
45dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    virtual bool handleMouseMoveEvent(const PlatformMouseEvent&) { return false; }
46dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    virtual bool handleMouseOutEvent(const PlatformMouseEvent&) { return false; }
47dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    virtual bool handleMousePressEvent(const PlatformMouseEvent&) { return false; }
48dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    virtual bool handleMouseReleaseEvent(const PlatformMouseEvent&) { return false; }
49dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
50dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    virtual void frameRectsChanged();
51dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
522bde8e466a4451c7319e3a072d118917957d6554Steve Block    virtual void paint(GraphicsContext*, const IntRect&);
53dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
54dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockprotected:
55ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch    ScrollbarEfl(ScrollableArea*, ScrollbarOrientation, ScrollbarControlSize);
56dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
57dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    virtual void updateThumbPositionAndProportion();
58dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    virtual void updateThumbPosition();
59dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    virtual void updateThumbProportion();
60dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
612bde8e466a4451c7319e3a072d118917957d6554Steve Block    virtual void setParent(ScrollView*);
62dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
63dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockprivate:
64dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    int m_lastPos;
65dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    int m_lastTotalSize;
66dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    int m_lastVisibleSize;
67dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block};
68dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
69dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}
70dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
71dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif // ScrollbarEfl_h
72