diff options
Diffstat (limited to 'Src/Wasabi/api/wnd/wndclass/scbkgwnd.h')
-rw-r--r-- | Src/Wasabi/api/wnd/wndclass/scbkgwnd.h | 463 |
1 files changed, 463 insertions, 0 deletions
diff --git a/Src/Wasabi/api/wnd/wndclass/scbkgwnd.h b/Src/Wasabi/api/wnd/wndclass/scbkgwnd.h new file mode 100644 index 00000000..549e6f90 --- /dev/null +++ b/Src/Wasabi/api/wnd/wndclass/scbkgwnd.h @@ -0,0 +1,463 @@ +#ifndef __SCRLBKGWND_H +#define __SCRLBKGWND_H + +#include <tataki/canvas/canvas.h> +#include <tataki/bitmap/autobitmap.h> +#include <api/wnd/wndclass/labelwnd.h> +#include <api/wnd/wndclass/scrollbar.h> +#include <api/wnd/wndclass/sepwnd.h> + +#define SCRLBKGWND_PARENT LabelWnd + + +/** + Class + + @short + @author Nullsoft + @ver 1.0 + @see +*/ +class ScrlBkgWnd : public SCRLBKGWND_PARENT { +protected: + + /** + Method + + @see + @ret + @param + */ + ScrlBkgWnd(); +public: + + /** + Method + + @see + @ret + @param + */ + virtual ~ScrlBkgWnd(); + + + /** + Method + + @see + @ret + @param + */ + virtual int onInit(); + + /** + Method + + @see + @ret + @param + */ + virtual int onPaint(Canvas *c); + + /** + Method + + @see + @ret + @param + */ + virtual void drawBackground(Canvas *canvas); + + /** + Method + + @see + @ret + @param + */ + virtual int onEraseBkgnd(HDC dc); + + /** + Method + + @see + @ret + @param + */ + virtual int childNotify(ifc_window *child, int msg, intptr_t param1, intptr_t param2); + + /** + Method + + @see + @ret + @param + */ + virtual int onResize(); + + /** + Method + + @see + @ret + @param + */ + virtual void getClientRect(RECT *r); +// virtual void getNonClientRect(RECT *r); + + /** + Method + + @see + @ret + @param + */ + virtual int getHeaderHeight(); + virtual void timerCallback (int id); + + + /** + Method + + @see + @ret + @param + */ + virtual void onHScrollToggle(int set); + + /** + Method + + @see + @ret + @param + */ + virtual void onVScrollToggle(int set); + + /** + Method + + @see + @ret + @param + */ + virtual void onSetVisible(int show); + + /** + Method + + @see + @ret + @param + */ + virtual int wantHScroll() { return 1; } + + /** + Method + + @see + @ret + @param + */ + virtual int wantVScroll() { return 1; } + + /** + Method + + @see + @ret + @param + */ + void makeWindowOverlayMask(api_region *r); + + + /** + Method + + @see + @ret + @param + */ + SkinBitmap *getBgBitmap(void); + + /** + Method + + @see + @ret + @param + */ + void setBgBitmap(const wchar_t *b); + + /** + Method + + @see + @ret + @param + */ + void setBgColor(ARGB32 rgb); + + /** + Method + + @see + @ret + @param + */ + virtual ARGB32 getBgColor(void); + + + /** + Method + + @see + @ret + @param + */ + virtual int getContentsWidth(); // not safe to call getclientrect! + + /** + Method + + @see + @ret + @param + */ + virtual int getContentsHeight(); // not safe to call getclientrect! + + + /** + Method + + @see + @ret + @param + */ + void setLineHeight(int h); + + /** + Method + + @see + @ret + @param + */ + int getLinesPerPage(); + + + /** + Method + + @see + @ret + @param + */ + int getScrollX(); + + /** + Method + + @see + @ret + @param + */ + int getScrollY(); + + /** + Method + + @see + @ret + @param + */ + int getScrollbarWidth(); + + /** + Method + + @see + @ret + @param + */ + virtual void scrollToY(int y, int signal=TRUE); + + /** + Method + + @see + @ret + @param + */ + virtual void scrollToX(int x, int signal=TRUE); + +protected: + + virtual void onScrollY(int y) { } + + /** + Method + + @see + @ret + @param + */ + void setSlidersPosition(); + + /** + Method + + @see + @ret + @param + */ + int needDoubleBuffer(); + + /** + Method + + @see + @ret + @param + */ + bool needHScroll(); + + /** + Method + + @see + @ret + @param + */ + bool needVScroll(); + + /** + Method + + @see + @ret + @param + */ + int getMaxScrollY(); + + /** + Method + + @see + @ret + @param + */ + int getMaxScrollX(); + + /** + Method + + @see + @ret + @param + */ + void updateScrollY(bool smooth=false); + + /** + Method + + @see + @ret + @param + */ + void updateScrollX(bool smooth=false); + + /** + Method + + @see + @ret + @param + */ + void smoothScrollToY(int y); + + /** + Method + + @see + @ret + @param + */ + void smoothScrollToX(int x); + + /** + Method + + @see + @ret + @param + */ + void updateVScroll(int y); + + /** + Method + + @see + @ret + @param + */ + void updateHScroll(int x); + + AutoSkinBitmap bmp; + + int dbbuffer; + bool inDestroy; + + ScrollBar hScroll; + ScrollBar vScroll; + SepWnd hSep; + SepWnd vSep; + + ARGB32 bgColor; + + int scrollX; + int scrollY; + + bool needSetSliders; + bool wantsep; + bool wantTileBg; + + int lineHeight; + + float smoothScrollYInc, smoothScrollXInc; + float smoothScrollYCur, smoothScrollXCur; + int smoothScrollYTimerCount, smoothScrollXTimerCount; + int smoothYTimer, smoothXTimer; + + /** + Method + + @see + @ret + @param + */ + void killSmoothYTimer(); + + /** + Method + + @see + @ret + @param + */ + void killSmoothXTimer(); + double lastratio; + RECT smsqr; + + /** + Method + + @see + @ret + @param + */ + void _setSlidersPosition(); + int in_set_slider_position; +}; + +#endif |