diff options
Diffstat (limited to 'Src/Wasabi/api/wnd/wndclass/scrollbar.h')
-rw-r--r-- | Src/Wasabi/api/wnd/wndclass/scrollbar.h | 423 |
1 files changed, 423 insertions, 0 deletions
diff --git a/Src/Wasabi/api/wnd/wndclass/scrollbar.h b/Src/Wasabi/api/wnd/wndclass/scrollbar.h new file mode 100644 index 00000000..98be5400 --- /dev/null +++ b/Src/Wasabi/api/wnd/wndclass/scrollbar.h @@ -0,0 +1,423 @@ +#ifndef __SCROLLBAR_H +#define __SCROLLBAR_H + +#include <api/wnd/virtualwnd.h> +#include <tataki/region/region.h> +#include <api/wnd/usermsg.h> +#include <tataki/bitmap/autobitmap.h> + +#define SCROLLBAR_FULL 65535 + +#define POS_NONE 0 +#define POS_LEFT 1 +#define POS_BUTTON 2 +#define POS_RIGHT 3 + +#define PAGE_NONE 0 +#define PAGE_DOWN 1 +#define PAGE_UP 2 + +#define DEFAULT_HEIGHT 16 + +#define SCROLLBAR_PARENT VirtualWnd + +/** + Class + + @short + @author Nullsoft + @ver 1.0 + @see +*/ +class ScrollBar : public SCROLLBAR_PARENT { +public: + + /** + Method + + @see + @ret + @param + */ + ScrollBar(); + + /** + Method + + @see + @ret + @param + */ + virtual ~ScrollBar(); + + virtual int onMouseMove (int x, int y); + + /** + Method + + @see + @ret + @param + */ + virtual int onLeftButtonDown(int x, int y); + + /** + Method + + @see + @ret + @param + */ + virtual int onLeftButtonUp(int x, int y); + + /** + Method + + @see + @ret + @param + */ + virtual int onRightButtonDown(int x, int y); + + /** + Method + + @see + @ret + @param + */ + virtual int onRightButtonUp(int x, int y); + + /** + Method + + @see + @ret + @param + */ + virtual int onMouseWheelUp(int clicked, int lines); + + /** + Method + + @see + @ret + @param + */ + virtual int onMouseWheelDown(int clicked, int lines); + + /** + Method + + @see + @ret + @param + */ + virtual int onPaint(Canvas *canvas); + + /** + Method + + @see + @ret + @param + */ + virtual int onResize(); + + /** + Method + + @see + @ret + @param + */ + virtual int onInit(); + + /** + Method + + @see + @ret + @param + */ + virtual void timerCallback(int id); + + + /** + Method + + @see + @ret + @param + */ + virtual int wantDoubleClicks() { return 0; }; + + + virtual int onSetPosition(bool smooth=false); + + virtual int onSetFinalPosition(); + + void setBitmaps(wchar_t *left, wchar_t *lpressed, wchar_t *lhilite, + wchar_t *right, wchar_t *rpressed, wchar_t *rhilite, + wchar_t *button, wchar_t *bpressed, wchar_t *bhilite); + + void setBackgroundBitmaps(const wchar_t *left, const wchar_t *middle, const wchar_t *right); + + void setPosition(int pos); + + /** + Method + + @see + @ret + @param + */ + int getPosition(); + + /** + Method + + @see + @ret + @param + */ + int getHeight(); + + /** + Method + + @see + @ret + @param + */ + void setHeight(int newheight); + + /** + Method + + @see + @ret + @param + */ + void setNPages(int n); + + /** + Method + + @see + @ret + @param + */ + void gotoPage(int n); + + /** + Method + + @see + @ret + @param + */ + void setUpDownValue(int newupdown); + + /** + Method + + @see + @ret + @param + */ + void setVertical(bool isvertical); + + /** + Method + + @see + @ret + @param + */ + int getWidth(); + + + /** + Method + + @see + @ret + @param + */ + virtual void freeResources(); + + /** + Method + + @see + @ret + @param + */ + virtual void reloadResources(); + +private: + + /** + Method + + @see + @ret + @param + */ + void deleteResources(); + + /** + Method + + @see + @ret + @param + */ + int getMousePosition(); + + /** + Method + + @see + @ret + @param + */ + void calcOverlapping(); + + /** + Method + + @see + @ret + @param + */ + void calcXPosition(); + + /** + Method + + @see + @ret + @param + */ + void calcPosition(); + + /** + Method + + @see + @ret + @param + */ + void handlePageUpDown(); + + /** + Method + + @see + @ret + @param + */ + int checkPageUpDown(); + + /** + Method + + @see + @ret + @param + */ + void handleUpDown(); + + /** + Method + + @see + @ret + @param + */ + int checkUpDown(); + + /** + Method + + @see + @ret + @param + */ + int pageUp(); + + /** + Method + + @see + @ret + @param + */ + int pageDown(); + + /** + Method + + @see + @ret + @param + */ + int upDown(int which); + + /** + Method + + @see + @ret + @param + */ + void setPrivatePosition(int pos, bool signal=true, bool smooth=false); + + /** + Method + + @see + @ret + @param + */ + void loadBmps(); + + AutoSkinBitmap bmpleft, bmplpressed, bmplhilite, + bmpright, bmprpressed, bmprhilite, + bmpbutton, bmpbpressed, bmpbhilite, + bmpbackgroundleft, bmpbackgroundmiddle, bmpbackgroundright; + + RegionI *leftrgn, *rightrgn, *buttonrgn; + int position; + + int moving; + int lefting; + int righting; + int clicked; + + int buttonx; + + int curmouseposition; + int clickmouseposition; + int height; + + int shiftleft, shiftright; + POINT clickpos; + int clickbuttonx; + int pageing; + int firstdelay; + int timer; + int npages; + int pageway; + int updown; + int timer2; + int insetpos; + + int vertical; + int lastx, lasty; +}; + + +#endif |