aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/wnd/wndclass/scrollbar.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Wasabi/api/wnd/wndclass/scrollbar.h')
-rw-r--r--Src/Wasabi/api/wnd/wndclass/scrollbar.h423
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