Release 960506
[wine] / include / listbox.h
1 /*
2  *   Listbox definitions
3  */
4
5 typedef struct tagLISTSTRUCT {
6         MEASUREITEMSTRUCT mis;
7         UINT            itemState;
8         RECT            itemRect;
9         HANDLE          hData;
10         char            *itemText;
11         struct tagLISTSTRUCT *lpNext;
12 } LISTSTRUCT, *LPLISTSTRUCT;
13
14 typedef struct {
15         WORD    FirstVisible;
16         WORD    ItemsCount;
17         WORD    ItemsVisible;
18         WORD    ColumnsVisible;
19         WORD    ItemsPerColumn;
20         short   ItemFocused;
21         short   PrevFocused;
22         WORD    StdItemHeight;
23         WORD    ColumnsWidth;
24         WORD    DrawCtlType;
25         WORD    CtlID;
26         LPLISTSTRUCT lpFirst;
27         HWND    hSelf;
28         DWORD   dwStyle;      /* added for COMBOLBOX style faking */
29         HWND    hParent;
30         HFONT   hFont;
31         BOOL    bRedrawFlag;
32         BOOL    HasStrings;
33         BOOL    OwnerDrawn;
34         WORD    iNumStops;
35         LPINT16 TabStops;
36         HANDLE  hDrawItemStruct;
37         BOOL    needMeasure;
38         HANDLE  HeapSel;
39 /*      MDESC   *Heap; */
40 } HEADLIST,*LPHEADLIST;
41
42 /* shared code between listbox and combo controls */
43 extern void CreateListBoxStruct(HWND hwnd, WORD CtlType, LONG styles, HWND parent);
44 extern void DestroyListBoxStruct(LPHEADLIST lphl);
45
46 extern void ListBoxSendNotification(LPHEADLIST lphl, WORD code);
47
48 extern LPLISTSTRUCT ListBoxGetItem(LPHEADLIST lphl, UINT uIndex);
49 extern int ListMaxFirstVisible(LPHEADLIST lphl);
50 extern int ListBoxScrollToFocus(LPHEADLIST lphl);
51 extern int ListBoxAddString(LPHEADLIST lphl, LPCSTR newstr);
52 extern int ListBoxInsertString(LPHEADLIST lphl, UINT uIndex, LPCSTR newstr);
53 extern int ListBoxGetText(LPHEADLIST lphl, UINT uIndex, LPSTR OutStr);
54 extern DWORD ListBoxGetItemData(LPHEADLIST lphl, UINT uIndex);
55 extern int ListBoxSetItemData(LPHEADLIST lphl, UINT uIndex, DWORD ItemData);
56 extern int ListBoxDeleteString(LPHEADLIST lphl, UINT uIndex);
57 extern int ListBoxFindString(LPHEADLIST lphl, UINT nFirst, SEGPTR MatchStr);
58 extern int ListBoxResetContent(LPHEADLIST lphl);
59 extern int ListBoxSetCurSel(LPHEADLIST lphl, WORD wIndex);
60 extern int ListBoxSetSel(LPHEADLIST lphl, WORD wIndex, WORD state);
61 extern int ListBoxGetSel(LPHEADLIST lphl, WORD wIndex);
62 extern LONG ListBoxDirectory(LPHEADLIST lphl, UINT attrib, LPCSTR filespec);
63 extern int ListBoxGetItemRect(LPHEADLIST lphl, WORD wIndex, LPRECT rect);
64 extern int ListBoxSetItemHeight(LPHEADLIST lphl, WORD wIndex, long height);
65 extern int ListBoxFindNextMatch(LPHEADLIST lphl, WORD wChar);
66
67 extern void ListBoxDrawItem (HWND hwnd, LPHEADLIST lphl, HDC hdc,
68                              LPLISTSTRUCT lpls, RECT *rect, WORD itemAction,
69                              WORD itemState);
70 extern int ListBoxFindMouse(LPHEADLIST lphl, int X, int Y);
71 extern void ListBoxAskMeasure(LPHEADLIST lphl, LPLISTSTRUCT lpls);
72
73 extern LRESULT ListBoxWndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);