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__ |