2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
15 #include <WINNT/fastlist.h>
18 * DEFINITIONS ________________________________________________________________
23 #define THIS_HINST (HINSTANCE)GetModuleHandle(NULL)
41 #define limit(_a,_x,_b) min( max( (_x), (_a) ), (_b) )
45 #define inlimit(_a,_x,_b) ( (((_x)>=(_a)) && ((_x)<=(_b))) ? TRUE : FALSE )
49 #define Set2State(_hDlg,_idc) SendDlgItemMessage (_hDlg,_idc,BM_SETSTYLE,BS_AUTOCHECKBOX,MAKELPARAM(TRUE,0))
53 #define Set3State(_hDlg,_idc) SendDlgItemMessage (_hDlg,_idc,BM_SETSTYLE,BS_AUTO3STATE,MAKELPARAM(TRUE,0))
56 #define CheckMenu(_hm,_id,_f) CheckMenuItem(_hm,_id,MF_BYCOMMAND|((_f)?MF_CHECKED:MF_UNCHECKED))
57 #define EnableMenu(_hm,_id,_f) EnableMenuItem(_hm,_id,MF_BYCOMMAND|((_f)?MF_ENABLED:MF_GRAYED))
60 #define cxRECT(_r) ((_r).right - (_r).left)
64 #define cyRECT(_r) ((_r).bottom - (_r).top)
67 #define WM_INITDIALOG_SHEET 0x03FE
68 #define WM_DESTROY_SHEET 0x03FF
70 #ifndef IDC_PROPSHEET_TABCTRL
71 #define IDC_PROPSHEET_TABCTRL 0x3020
76 * PROTOTYPES _________________________________________________________________
97 } PROPSHEET, *LPPROPSHEET;
99 EXPORTED LPPROPSHEET PropSheet_Create (int idsTitle, BOOL fContextHelp, HWND hParent = NULL, LPARAM lp = 0);
100 EXPORTED LPPROPSHEET PropSheet_Create (LPTSTR pszTitle, BOOL fContextHelp, HWND hParent = NULL, LPARAM lp = 0);
101 EXPORTED BOOL PropSheet_AddTab (LPPROPSHEET psh, int idsTitle, int idd, DLGPROC dlgproc, LPARAM lpUser, BOOL fHelpButton, BOOL fStartPage = FALSE);
102 EXPORTED BOOL PropSheet_AddTab (LPPROPSHEET psh, LPTSTR pszTitle, int idd, DLGPROC dlgproc, LPARAM lpUser, BOOL fHelpButton, BOOL fStartPage = FALSE);
103 EXPORTED BOOL PropSheet_ShowModal (LPPROPSHEET psh, void (*fnPump)(MSG*lpm) = 0);
104 EXPORTED HWND PropSheet_ShowModeless (LPPROPSHEET psh, int nCmdShow = SW_SHOW);
105 EXPORTED LPARAM PropSheet_FindTabParam (HWND hTab);
106 EXPORTED void PropSheet_Free (LPPROPSHEET psh);
107 EXPORTED HWND PropSheet_FindTabWindow (LPPROPSHEET psh, DLGPROC dlgproc);
109 EXPORTED void PropSheetChanged (HWND hDlg);
111 EXPORTED void TabCtrl_SwitchToTab (HWND hTab, int iTab);
115 ** LIST, TREELIST, FASTLIST COLUMNS
119 #define nCOLUMNS_MAX 32 // maximum number of columns in a listview
126 int cxColumns[ nCOLUMNS_MAX ];
127 int idsColumns[ nCOLUMNS_MAX ];
129 size_t aColumns[ nCOLUMNS_MAX ]; // returns 0-based index into cxColumns
130 } VIEWINFO, *LPVIEWINFO;
132 #define COLUMN_JUSTMASK 0xF0000000 // cxColumns |= to make right-just col
133 #define COLUMN_RIGHTJUST 0x80000000 // cxColumns |= to make right-just col
134 #define COLUMN_CENTERJUST 0x40000000 // cxColumns |= to make center-just col
136 #define COLUMN_SORTREV 0x80000000 // iSort |= to sort descending
143 EXPORTED LPARAM FL_StartChange (HWND hList, BOOL fReset = TRUE);
144 EXPORTED void FL_EndChange (HWND hList, LPARAM lpToSelect = 0);
146 EXPORTED void FL_GetColumns (HWND hList, WORD nCols, WORD *acx);
147 EXPORTED void FL_ResizeColumns (HWND hList, WORD nCols, WORD *acx);
148 EXPORTED void cdecl FL_SetColumns (HWND hList, WORD nCols, WORD *acx, ...);
150 EXPORTED HLISTITEM cdecl FL_AddItem (HWND hList, LPVIEWINFO lpvi, LPARAM lp, int iImage1, ...);
151 EXPORTED HLISTITEM cdecl FL_AddItem (HWND hList, WORD nCols, LPARAM lp, int iImage1, ...);
152 EXPORTED void FL_GetItemText (HWND hList, HLISTITEM hItem, int iCol, LPTSTR pszText);
153 EXPORTED void FL_SetItemText (HWND hList, HLISTITEM hItem, int iCol, LPCTSTR pszText);
155 EXPORTED HLISTITEM FL_GetSelected (HWND hList, HLISTITEM hItemSearch = NULL);
156 EXPORTED void FL_SetSelected (HWND hList, HLISTITEM hItem);
158 EXPORTED LPARAM FL_GetSelectedData (HWND hList);
159 EXPORTED void FL_SetSelectedByData (HWND hList, LPARAM lp);
160 EXPORTED HLISTITEM FL_GetFocused (HWND hList);
162 EXPORTED LPARAM FL_GetData (HWND hList, HLISTITEM hItem);
163 EXPORTED LPARAM FL_GetFocusedData (HWND hList);
164 EXPORTED HLISTITEM FL_GetIndex (HWND hList, LPARAM lp);
166 EXPORTED BOOL FL_HitTestForHeaderBar (HWND hList, POINT ptClient);
168 EXPORTED void FL_RestoreView (HWND hList, LPVIEWINFO lpvi);
169 EXPORTED void FL_StoreView (HWND hList, LPVIEWINFO lpvi);
170 EXPORTED void FL_SortView (HWND hList, LPVIEWINFO lpvi);
177 #define INDEX_SORT (int)-1
179 EXPORTED LPARAM LV_StartChange (HWND hList, BOOL fReset = TRUE);
180 EXPORTED void LV_EndChange (HWND hList, LPARAM lpToSelect = (LPARAM)NULL);
182 EXPORTED void LV_GetColumns (HWND hList, WORD nCols, WORD *acx);
183 EXPORTED void LV_ResizeColumns (HWND hList, WORD nCols, WORD *acx);
184 EXPORTED void cdecl LV_SetColumns (HWND hList, WORD nCols, WORD *acx, ...);
186 EXPORTED void cdecl LV_AddItem (HWND hList, LPVIEWINFO lpvi, int idx, LPARAM lp, int iImage, ...);
187 EXPORTED void cdecl LV_AddItem (HWND hList, WORD nCols, int idx, LPARAM lp, int iImage, ...);
188 EXPORTED void cdecl LV_GetItemText (HWND hList, int inx, short col, LPTSTR pszText);
189 EXPORTED void cdecl LV_SetItemText (HWND hList, int idx, short col, LPCTSTR pszText);
191 EXPORTED int LV_GetSelected (HWND hList, int idx = -1);
192 EXPORTED void LV_SetSelected (HWND hList, int idx);
194 EXPORTED LPARAM LV_GetSelectedData (HWND hList);
195 EXPORTED void LV_SetSelectedByData (HWND hList, LPARAM lp);
196 EXPORTED int LV_GetFocused (HWND hList);
198 EXPORTED LPARAM LV_GetData (HWND hList, int idx);
199 EXPORTED LPARAM LV_GetFocusedData (HWND hList);
200 EXPORTED int LV_GetIndex (HWND hList, LPARAM lp);
202 EXPORTED BOOL LV_HitTestForHeaderBar (HWND hList, POINT ptClient);
204 EXPORTED void LV_RestoreView (HWND hList, LPVIEWINFO lpvi);
205 EXPORTED void LV_StoreView (HWND hList, LPVIEWINFO lpvi);
206 EXPORTED void LV_SortView (HWND hList, LPVIEWINFO lpvi);
207 EXPORTED int LV_PickInsertionPoint (HWND hList, LPTSTR pszNewItem, int (__stdcall *fnSort)(LPCTSTR, LPCTSTR) = 0);
215 EXPORTED LPARAM CB_StartChange (HWND hCombo, BOOL fReset = TRUE);
216 EXPORTED void CB_EndChange (HWND hCombo, LPARAM lpToSelect = (LPARAM)NULL);
218 EXPORTED UINT CB_AddItem (HWND hCombo, int nsz, LPARAM lp);
219 EXPORTED UINT CB_AddItem (HWND hCombo, LPCTSTR psz, LPARAM lp);
221 EXPORTED UINT CB_GetSelected (HWND hCombo);
222 EXPORTED void CB_SetSelected (HWND hCombo, UINT index);
224 EXPORTED LPARAM CB_GetSelectedData (HWND hCombo);
225 EXPORTED void CB_SetSelectedByData (HWND hCombo, LPARAM lp);
227 EXPORTED LPARAM CB_GetData (HWND hCombo, UINT index);
228 EXPORTED UINT CB_GetIndex (HWND hCombo, LPARAM lp);
236 EXPORTED LPARAM LB_StartChange (HWND hList, BOOL fReset = TRUE);
237 EXPORTED void LB_EndChange (HWND hList, LPARAM lpToSelect = (LPARAM)NULL);
239 EXPORTED UINT LB_AddItem (HWND hList, int nsz, LPARAM lp);
240 EXPORTED UINT LB_AddItem (HWND hList, LPCTSTR psz, LPARAM lp);
242 EXPORTED void LB_EnsureVisible (HWND hList, UINT index);
244 EXPORTED UINT LB_GetSelected (HWND hList);
245 EXPORTED void LB_SetSelected (HWND hList, UINT index);
247 EXPORTED LPARAM LB_GetSelectedData (HWND hList);
248 EXPORTED void LB_SetSelectedByData (HWND hList, LPARAM lp);
250 EXPORTED LPARAM LB_GetData (HWND hList, UINT index);
251 EXPORTED UINT LB_GetIndex (HWND hList, LPARAM lp);
253 EXPORTED void LB_EnableHScroll (HWND hList);
260 EXPORTED LPARAM TV_StartChange (HWND hTree, BOOL fReset);
261 EXPORTED void TV_EndChange (HWND hTree, LPARAM lpToSelect = (LPARAM)NULL);
263 EXPORTED LPARAM TV_GetData (HWND hTree, HTREEITEM hti);
264 EXPORTED LPARAM TV_GetSelectedData (HWND hTree);
266 EXPORTED HTREEITEM TV_RecursiveFind (HWND hTree, HTREEITEM htiRoot, LPARAM lpToFind);
274 EXPORTED BOOL Browse_Open (HWND hParent, LPTSTR pszFilename, LPTSTR pszLastDirectory, int idsFilter, int iddTemplate = 0, LPOFNHOOKPROC lpfnHook = NULL, DWORD lCustData = 0);
275 EXPORTED BOOL Browse_Save (HWND hParent, LPTSTR pszFilename, LPTSTR pszLastDirectory, int idsFilter, int iddTemplate = 0, LPOFNHOOKPROC lpfnHook = NULL, DWORD lCustData = 0);
283 EXPORTED void StartHourGlass (void);
284 EXPORTED void StopHourGlass (void);
286 EXPORTED void DisplayContextMenu (HMENU hm, POINT ptScreen, HWND hParent);
288 EXPORTED size_t CountChildren (HWND hParent, LPTSTR pszClass);
290 EXPORTED WORD NextControlID (HWND hParent);
292 EXPORTED BOOL IsAncestor (HWND hParent, HWND hChild);
294 EXPORTED HWND GetTabChild (HWND hTab);
296 EXPORTED HWND GetLastDlgTabItem (HWND hDlg);
298 EXPORTED BOOL IsPropSheet (HWND hSheet);