[WIN32K:NTUSER]
[reactos.git] / reactos / win32ss / user / ntuser / scroll.h
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);