Release 980413
[wine] / include / commctrl.h
1 /*
2  * Common controls definitions
3  */
4
5 #ifndef __WINE_COMMCTRL_H
6 #define __WINE_COMMCTRL_H
7
8 #include "windows.h"
9
10 void WINAPI InitCommonControls(void);
11
12 /* common control styles */
13
14 #define CCS_TOP             0x00000001L
15 #define CCS_NOMOVEY         0x00000002L
16 #define CCS_BOTTOM          0x00000003L
17 #define CCS_NORESIZE        0x00000004L
18 #define CCS_NOPARENTALIGN   0x00000008L
19 #define CCS_ADJUSTABLE      0x00000020L
20 #define CCS_NODIVIDER       0x00000040L
21 #define CCS_VERT            0x00000080L
22 #define CCS_LEFT            (CCS_VERT|CCS_TOP)
23 #define CCS_RIGHT           (CCS_VERT|CCS_BOTTOM)
24 #define CCS_NOMOVEX         (CCS_VERT|CCS_NOMOVEY)
25
26
27 /* common control shared messages */
28
29 #define CCM_FIRST           0x2000
30
31 #define CCM_SETBKCOLOR      (CCM_FIRST+1)     // lParam = bkColor
32
33
34 /* StatusWindow */
35
36 #define STATUSCLASSNAME16     "msctls_statusbar"
37 #define STATUSCLASSNAME32A    "msctls_statusbar32"
38 #define STATUSCLASSNAME32W   L"msctls_statusbar32"       /*FIXME*/
39 #define STATUSCLASSNAME WINELIB_NAME_AW(STATUSCLASSNAME)
40
41 #define SB_SETTEXT32A         (WM_USER+1)
42 #define SB_SETTEXT32W         (WM_USER+11)
43 #define SB_SETTEXT WINELIB_NAME_AW(SB_SETTEXT)
44 #define SB_GETTEXT32A         (WM_USER+2)
45 #define SB_GETTEXT32W         (WM_USER+13)
46 #define SB_GETTEXT WINELIB_NAME_AW(SB_GETTEXT)
47 #define SB_GETTEXTLENGTH32A   (WM_USER+3)
48 #define SB_GETTEXTLENGTH32W   (WM_USER+12)
49 #define SB_GETTEXTLENGTH WINELIB_NAME_AW(SB_GETTEXTLENGTH)
50
51 #define SB_SETPARTS           (WM_USER+4)
52 #define SB_GETPARTS           (WM_USER+6)
53 #define SB_GETBORDERS         (WM_USER+7)
54 #define SB_SETMINHEIGHT       (WM_USER+8)
55 #define SB_SIMPLE             (WM_USER+9)
56 #define SB_GETRECT            (WM_USER+10)
57
58 #define SBT_NOBORDERS         0x0100
59 #define SBT_POPOUT            0x0200
60 #define SBT_RTLREADING        0x0400
61 #define SBT_OWNERDRAW         0x1000
62
63 #define SBARS_SIZEGRIP        0x0100
64
65 /* UpDown */
66
67 #define UPDOWN_CLASS16        "msctls_updown"
68 #define UPDOWN_CLASS32A       "msctls_updown32"
69 #define UPDOWN_CLASS32W      L"msctls_updown32"   /*FIXME*/
70 #define UPDOWN_CLASS          WINELIB_NAME_AW(UPDOWN_CLASS)
71
72 typedef struct tagUDACCEL
73 {
74   UINT32 nSec;
75   UINT32 nInc;
76 } UDACCEL;
77
78 #define UD_MAXVAL          0x7fff
79 #define UD_MINVAL          0x8001
80
81 #define UDS_WRAP           0x0001
82 #define UDS_SETBUDDYINT    0x0002
83 #define UDS_ALIGNRIGHT     0x0004
84 #define UDS_ALIGNLEFT      0x0008
85 #define UDS_AUTOBUDDY      0x0010
86 #define UDS_ARROWKEYS      0x0020
87 #define UDS_HORZ           0x0040
88 #define UDS_NOTHOUSANDS    0x0080
89
90 #define UDN_FIRST          (0U-721)
91 #define UDN_DELTAPOS       (UDN_FIRST-1)
92
93 #define UDM_SETRANGE       (WM_USER+101)
94 #define UDM_GETRANGE       (WM_USER+102)
95 #define UDM_SETPOS         (WM_USER+103)
96 #define UDM_GETPOS         (WM_USER+104)
97 #define UDM_SETBUDDY       (WM_USER+105)
98 #define UDM_GETBUDDY       (WM_USER+106)
99 #define UDM_SETACCEL       (WM_USER+107)
100 #define UDM_GETACCEL       (WM_USER+108)
101 #define UDM_SETBASE        (WM_USER+109)
102 #define UDM_GETBASE        (WM_USER+110)
103 #define UDM_SETRANGE32     (WM_USER+111)
104 #define UDM_GETRANGE32     (WM_USER+112)
105
106
107 /* Progress Bar */
108
109 #define PROGRESS_CLASS32A   "msctls_progress32"
110 #define PROGRESS_CLASS32W  L"msctls_progress32"
111 #define PROGRESS_CLASS16    "msctls_progress"
112
113 #define PROGRESS_CLASS      WINELIB_NAME_AW(PROGRESS_CLASS)
114
115 #define PBM_SETRANGE        (WM_USER+1)
116 #define PBM_SETPOS          (WM_USER+2)
117 #define PBM_DELTAPOS        (WM_USER+3)
118 #define PBM_SETSTEP         (WM_USER+4)
119 #define PBM_STEPIT          (WM_USER+5)
120 #define PBM_SETRANGE32      (WM_USER+6)
121 #define PBM_GETRANGE        (WM_USER+7)
122 #define PBM_GETPOS          (WM_USER+8)
123 #define PBM_SETBARCOLOR     (WM_USER+9)
124 #define PBM_SETBKCOLOR      CCM_SETBKCOLOR
125
126 #define PBS_SMOOTH          0x01
127 #define PBS_VERTICAL        0x04
128
129 typedef struct
130 {
131   INT32 iLow;
132   INT32 iHigh;
133 } PBRANGE, *PPBRANGE;
134
135  
136 /* Functions prototypes */
137
138 HWND16     WINAPI CreateStatusWindow16(INT16,LPCSTR,HWND16,UINT16);
139 HWND32     WINAPI CreateStatusWindow32A(INT32,LPCSTR,HWND32,UINT32);
140 HWND32     WINAPI CreateStatusWindow32W(INT32,LPCWSTR,HWND32,UINT32);
141 #define    CreateStatusWindow WINELIB_NAME_AW(CreateStatusWindow)
142 HWND32     WINAPI CreateUpDownControl(DWORD,INT32,INT32,INT32,INT32,
143                                       HWND32,INT32,HINSTANCE32,HWND32,
144                                       INT32,INT32,INT32);
145 VOID       WINAPI DrawStatusText16(HDC16,LPRECT16,LPCSTR,UINT16);
146 VOID       WINAPI DrawStatusText32A(HDC32,LPRECT32,LPCSTR,UINT32);
147 VOID       WINAPI DrawStatusText32W(HDC32,LPRECT32,LPCWSTR,UINT32);
148 #define    DrawStatusText WINELIB_NAME_AW(DrawStatusText)
149
150
151 /* ImageList */
152
153 #if defined(__WINE__) && defined(__WINE_IMAGELIST_C)
154 #else
155 struct _IMAGELIST;
156 typedef struct _IMAGELIST *HIMAGELIST;
157 #endif  /* __WINE__ */
158
159 #define CLR_NONE         0xFFFFFFFF
160 #define CLR_DEFAULT      0xFF000000
161 #define CLR_HILIGHT      CLR_DEFAULT
162
163 #define ILC_MASK         0x0001
164 #define ILC_COLOR        0x0000
165 #define ILC_COLORDDB     0x00FE
166 #define ILC_COLOR4       0x0004
167 #define ILC_COLOR8       0x0008
168 #define ILC_COLOR16      0x0010
169 #define ILC_COLOR24      0x0018
170 #define ILC_COLOR32      0x0020
171 #define ILC_PALETTE      0x0800  /* no longer supported by M$ */
172
173 #define ILD_NORMAL       0x0000
174 #define ILD_TRANSPARENT  0x0001
175 #define ILD_BLEND25      0x0002
176 #define ILD_BLEND50      0x0004
177 #define ILD_MASK         0x0010
178 #define ILD_IMAGE        0x0020
179 #define ILD_ROP          0x0040
180 #define ILD_OVERLAYMASK  0x0F00
181
182 #define ILD_SELECTED     ILD_BLEND50
183 #define ILD_FOCUS        ILD_BLEND25
184 #define ILD_BLEND        ILD_BLEND50
185
186 #define INDEXTOOVERLAYMASK(i)  ((i)<<8)
187
188 #define ILCF_MOVE        (0x00000000)
189 #define ILCF_SWAP        (0x00000001)
190
191
192 typedef struct _IMAGEINFO
193 {
194     HBITMAP32 hbmImage;
195     HBITMAP32 hbmMask;
196     INT32     Unused1;
197     INT32     Unused2;
198     RECT32    rcImage;
199 } IMAGEINFO;
200
201
202 typedef struct _IMAGELISTDRAWPARAMS
203
204     DWORD       cbSize; 
205     HIMAGELIST  himl; 
206     INT32       i; 
207     HDC32       hdcDst; 
208     INT32       x; 
209     INT32       y; 
210     INT32       cx; 
211     INT32       cy; 
212     INT32       xBitmap;        // x offest from the upperleft of bitmap 
213     INT32       yBitmap;        // y offset from the upperleft of bitmap 
214     COLORREF    rgbBk; 
215     COLORREF    rgbFg; 
216     UINT32      fStyle; 
217     DWORD       dwRop; 
218 } IMAGELISTDRAWPARAMS, *LPIMAGELISTDRAWPARAMS; 
219
220  
221 INT32      WINAPI ImageList_Add(HIMAGELIST,HBITMAP32,HBITMAP32);
222 INT32      WINAPI ImageList_AddMasked(HIMAGELIST,HBITMAP32,COLORREF);
223 BOOL32     WINAPI ImageList_BeginDrag(HIMAGELIST,INT32,INT32,INT32);
224 BOOL32     WINAPI ImageList_Copy(HIMAGELIST,INT32,HIMAGELIST,INT32,INT32);
225 HIMAGELIST WINAPI ImageList_Create(INT32,INT32,UINT32,INT32,INT32);
226 BOOL32     WINAPI ImageList_Destroy(HIMAGELIST);
227 BOOL32     WINAPI ImageList_DragEnter(HWND32,INT32,INT32);
228 BOOL32     WINAPI ImageList_DragLeave(HWND32); 
229 BOOL32     WINAPI ImageList_DragMove(INT32,INT32);
230 BOOL32     WINAPI ImageList_DragShowNolock (BOOL32 bShow);
231 BOOL32     WINAPI ImageList_Draw(HIMAGELIST,INT32,HDC32,INT32,INT32,UINT32);
232 BOOL32     WINAPI ImageList_DrawEx(HIMAGELIST,INT32,HDC32,INT32,INT32,INT32,
233                                    INT32,COLORREF,COLORREF,UINT32);
234 BOOL32     WINAPI ImageList_DrawIndirect(IMAGELISTDRAWPARAMS*); 
235 HIMAGELIST WINAPI ImageList_Duplicate(HIMAGELIST);
236 BOOL32     WINAPI ImageList_EndDrag (VOID);
237 COLORREF   WINAPI ImageList_GetBkColor(HIMAGELIST);
238 HIMAGELIST WINAPI ImageList_GetDragImage(POINT32*,POINT32*);
239 HICON32    WINAPI ImageList_GetIcon(HIMAGELIST,INT32,UINT32);
240 BOOL32     WINAPI ImageList_GetIconSize(HIMAGELIST,INT32*,INT32*);
241 INT32      WINAPI ImageList_GetImageCount(HIMAGELIST);
242 BOOL32     WINAPI ImageList_GetImageInfo(HIMAGELIST,INT32,IMAGEINFO*);
243 BOOL32     WINAPI ImageList_GetImageRect (HIMAGELIST,INT32,LPRECT32);
244 HIMAGELIST WINAPI ImageList_LoadImage32A(HINSTANCE32,LPCSTR,INT32,INT32,
245                                          COLORREF,UINT32,UINT32);
246 HIMAGELIST WINAPI ImageList_LoadImage32W(HINSTANCE32,LPCWSTR,INT32,INT32,
247                                          COLORREF,UINT32,UINT32);
248 #define    ImageList_LoadImage WINELIB_NAME_AW(ImageList_LoadImage)
249 HIMAGELIST WINAPI ImageList_Merge(HIMAGELIST,INT32,HIMAGELIST,INT32,INT32,INT32);
250
251 BOOL32     WINAPI ImageList_Remove(HIMAGELIST,INT32);
252 BOOL32     WINAPI ImageList_Replace(HIMAGELIST,INT32,HBITMAP32,HBITMAP32);
253 INT32      WINAPI ImageList_ReplaceIcon(HIMAGELIST,INT32,HICON32);
254
255 COLORREF   WINAPI ImageList_SetBkColor(HIMAGELIST,COLORREF);
256 BOOL32     WINAPI ImageList_SetDragCursorImage(HIMAGELIST,INT32,INT32,INT32);
257 BOOL32     WINAPI ImageList_SetIconSize (HIMAGELIST,INT32,INT32);
258 BOOL32     WINAPI ImageList_SetImageCount (HIMAGELIST,INT32);
259 BOOL32     WINAPI ImageList_SetOverlayImage(HIMAGELIST,INT32,INT32);
260
261 #define ImageList_AddIcon(himl,hicon) ImageList_ReplaceIcon(himl,-1,hicon)
262 #define ImageList_ExtractIcon(hi,himl,i) ImageList_GetIcon(himl,i,0)
263 #define ImageList_LoadBitmap(hi,lpbmp,cx,cGrow,crMask) \
264   ImageList_LoadImage(hi,lpbmp,cx,cGrow,crMask,IMAGE_BITMAP,0)
265 #define ImageList_RemoveAll(himl) ImageList_Remove(himl,-1)
266
267
268 #endif  /* __WINE_COMMCTRL_H */