xref: /reactos/win32ss/user/ntuser/scroll.h (revision c2c66aff)
1 #pragma once
2 
3 typedef VOID (NEAR NTAPI *PFN_SCROLLBAR)(PWND, UINT, WPARAM, LPARAM, PSBCALC);
4 
5 typedef struct tagSBTRACK
6 {
7     ULONG    fHitOld:1;
8     ULONG    fTrackVert:1;
9     ULONG    fCtlSB:1;
10     ULONG    fTrackRecalc:1;
11     PWND     spwndTrack;
12     PWND     spwndSB;
13     PWND     spwndSBNotify;
14     RECT     rcTrack;
15     PFN_SCROLLBAR xxxpfnSB;
16     UINT     cmdSB;
17     UINT_PTR hTimerSB;
18     INT      dpxThumb;
19     INT      pxOld;
20     INT      posOld;
21     INT      posNew;
22     INT      nBar;
23     PSBCALC  pSBCalc;
24 } SBTRACK, *PSBTRACK;
25 
26 /*
27 typedef struct _SBINFOEX
28 {
29   SCROLLBARINFO ScrollBarInfo;
30   SCROLLINFO ScrollInfo;
31 } SBINFOEX, *PSBINFOEX;
32 */
33 #define IntGetScrollbarInfoFromWindow(Window, i) \
34   ((PSCROLLBARINFO)(&((Window)->pSBInfoex + i)->ScrollBarInfo))
35 
36 #define IntGetScrollInfoFromWindow(Window, i) \
37   ((LPSCROLLINFO)(&((Window)->pSBInfoex + i)->ScrollInfo))
38 
39 #define SBOBJ_TO_SBID(Obj)	((Obj) - OBJID_HSCROLL)
40 #define SBID_IS_VALID(id)	(id == SB_HORZ || id == SB_VERT || id == SB_CTL)
41 
42 BOOL FASTCALL co_IntCreateScrollBars(PWND);
43 BOOL FASTCALL IntDestroyScrollBars(PWND);
44 DWORD FASTCALL co_UserShowScrollBar(PWND,int,BOOL,BOOL);
45 BOOL FASTCALL co_IntGetScrollBarInfo(PWND,LONG,PSCROLLBARINFO);
46 BOOL FASTCALL co_IntSetScrollBarInfo(PWND,LONG,PSETSCROLLBARINFO);
47 void IntDrawScrollBar(PWND,HDC,INT);
48 BOOL FASTCALL IntScrollWindow(PWND,int,int,CONST RECT*,CONST RECT*);
49 DWORD FASTCALL IntScrollWindowEx(PWND,INT,INT,const RECT*,const RECT*,HRGN,LPRECT,UINT);
50