Subversion Repositories AndroidProjects

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
244 chris 1
// ScrollbarWidget.h: interface for the ScrollbarWidget class.
2
//
3
//////////////////////////////////////////////////////////////////////
4
 
5
#ifndef __SCROLLBARWIDGET_H__
6
#define __SCROLLBARWIDGET_H__
7
 
8
#include "Widget.h"
9
#include "ButtonListener.h"
10
 
11
namespace Sexy
12
{
13
 
14
class ScrollListener;
15
class ScrollbuttonWidget;
16
 
17
class ScrollbarWidget : public Widget, public ButtonListener
18
{
19
public:
20
 
21
enum
22
{
23
        UPDATE_MODE_IDLE                =0,
24
        UPDATE_MODE_PGUP,
25
        UPDATE_MODE_PGDN
26
};             
27
 
28
public:
29
 
30
        ScrollbuttonWidget              *mUpButton;
31
        ScrollbuttonWidget              *mDownButton;
32
 
33
        bool                                    mInvisIfNoScroll;                      
34
 
35
public:
36
 
37
        int                                             mId;
38
 
39
        double                                  mValue;
40
        double                                  mMaxValue;
41
        double                                  mPageSize;
42
        bool                                    mHorizontal;
43
 
44
        bool                                    mPressedOnThumb;
45
        int                                             mMouseDownThumbPos;
46
        int                                             mMouseDownX;
47
        int                                             mMouseDownY;
48
 
49
        int                                             mUpdateMode;
50
        int                                             mUpdateAcc;
51
        int                                             mButtonAcc;
52
        int                                             mLastMouseX;
53
        int                                             mLastMouseY;
54
        ScrollListener*                 mScrollListener;
55
 
56
public:
57
        ScrollbarWidget(int theId, ScrollListener *theScrollListener);
58
        virtual ~ScrollbarWidget();
59
 
60
        virtual void                    SetInvisIfNoScroll(bool invisIfNoScroll);
61
        virtual void                    SetMaxValue(double theNewMaxValue);
62
        virtual void                    SetPageSize(double theNewPageSize);
63
        virtual void                    SetValue(double theNewValue);
64
        virtual void                    SetHorizontal(bool isHorizontal);
65
 
66
        virtual void                    ResizeScrollbar(int theX, int theY, int theWidth, int theHeight);                      
67
        virtual bool                    AtBottom();
68
        virtual void                    GoToBottom();
69
        virtual void                    DrawThumb(Graphics *g, int theX, int theY, int theWidth, int theHeight);
70
        virtual int                             GetTrackSize();
71
        virtual int                             GetThumbSize();
72
        virtual int                             GetThumbPosition();
73
        virtual void                    Draw(Graphics *g);
74
        virtual void                    ClampValue();
75
        virtual void                    SetThumbPosition(int thePosition);
76
        virtual void                    ButtonPress(int theId);
77
        virtual void                    ButtonDepress(int theId);
78
        virtual void                    ButtonDownTick(int theId);
79
        virtual void                    Update();
80
        virtual int                             ThumbCompare(int x, int y);
81
        virtual void                    MouseDown(int x, int y, int theClickCount) { Widget::MouseDown(x, y, theClickCount); }
82
        virtual void                    MouseDown(int x, int y, int theBtnNum, int theClickCount);
83
        virtual void                    MouseUp(int x, int y) { Widget::MouseUp(x, y); }
84
        virtual void                    MouseUp(int x, int y, int theBtnNum, int theClickCount);
85
        virtual void                    MouseDrag(int x, int y);
86
};
87
 
88
}
89
 
90
#endif // __SCROLLBARWIDGET_H__