00001
00002
00003
00004
00005 #ifndef __GScrollBar_h
00006 #define __GScrollBar_h
00007
00008 #ifndef WIN32
00009 #define SCROLL_BAR_SIZE 15
00010 #endif
00011
00016 class LgiClass GScrollBar :
00017 public GControl,
00018 public ResObject
00019 {
00020 friend class GLayout;
00021
00022 protected:
00023 class GScrollBarPrivate *d;
00024
00025 #if defined WIN32
00026 GView *GetMyView();
00027 void Update();
00028 void SetParentFlag(bool Bool);
00029 #endif
00030
00031 public:
00033 GScrollBar();
00034
00036 GScrollBar(int id, int x, int y, int cx, int cy, char *name);
00037 ~GScrollBar();
00038
00040 static int GetScrollSize();
00041
00043 bool Vertical();
00045 void SetVertical(bool v);
00047 int Value();
00049 void Value(int p);
00051 void Limits(int &Low, int &High);
00053 void SetLimits(int Low, int High);
00055 int Page();
00057 void SetPage(int p);
00058
00059 #if defined WIN32
00060 bool SetPos(GRect &p, bool Repaint = false);
00061 void SetParent(GView *p);
00062 bool Invalidate(GRect *r = NULL, bool Repaint = false, bool NonClient = false);
00063 #else
00064 bool Attach(GView *p);
00065 void OnPaint(GSurface *pDC);
00066 void OnPosChange();
00067 void OnMouseClick(GMouse &m);
00068 void OnMouseMove(GMouse &m);
00069 bool OnKey(GKey &k);
00070 void OnMouseWheel(double Lines);
00071 void OnPulse();
00072 #endif
00073
00074
00075 int OnEvent(GMessage *Msg);
00076
00078 virtual void OnChange(int Pos) {}
00079 };
00080
00081 #endif