Removed definitions for FIONREAD and FIONBIO.
[wine/wine-kai.git] / include / treeview.h
blobcfc3aff31f3c6951bf2c75085654d60bddc36b9e
1 /*
2 * Treeview class extra info
4 * Copyright 1998 Eric Kohl
5 * Copyright 1998 Alex Priem
6 */
8 #ifndef __WINE_TREEVIEW_H
9 #define __WINE_TREEVIEW_H
11 #define MINIMUM_INDENT 10
12 #define TV_REFRESH_DELAY 100 /* 100 ms delay between two refreshes */
13 #define TV_DEFAULTITEMHEIGHT 16
14 #define TVITEM_ALLOC 16 /* default nr of items to allocate at first try */
17 /* internal structures */
19 typedef struct {
20 UINT mask;
21 HTREEITEM hItem;
22 UINT state;
23 UINT stateMask;
24 LPSTR pszText;
25 int cchTextMax;
26 int iImage;
27 int iSelectedImage;
28 int cChildren;
29 LPARAM lParam;
30 int iIntegral;
31 int iLevel; /* indentation level:0=root level */
32 COLORREF clrText;
33 HTREEITEM parent; /* handle to parent or 0 if at root*/
34 HTREEITEM firstChild; /* handle to first child or 0 if no child*/
35 HTREEITEM sibling; /* handle to next item in list, 0 if last */
36 HTREEITEM upsibling; /* handle to previous item in list, 0 if first */
37 int visible;
38 RECT rect;
39 RECT text;
40 RECT expandBox; /* expand box (+/-) coordinate */
41 } TREEVIEW_ITEM;
44 typedef struct tagTREEVIEW_INFO
46 UINT uInternalStatus;
47 UINT bAutoSize; /* merge with uInternalStatus */
48 INT Timer;
49 UINT uNumItems; /* number of valid TREEVIEW_ITEMs */
50 UINT uNumPtrsAlloced;
51 HTREEITEM uMaxHandle; /* needed for delete_item */
52 HTREEITEM TopRootItem; /* handle to first item in treeview */
53 INT cdmode; /* last custom draw setting */
54 UINT uItemHeight; /* item height, -1 for default item height */
55 UINT uRealItemHeight;/* current item height in pixels */
56 UINT uVisibleHeight; /* visible height of treeview in pixels */
57 UINT uTotalHeight; /* total height of treeview in pixels */
58 UINT uVisibleWidth;
59 UINT uTotalWidth;
60 UINT uIndent; /* indentation in pixels */
61 HTREEITEM selectedItem; /* handle to selected item or 0 if none */
62 HTREEITEM focusItem; /* handle to item that has focus, 0 if none */
63 HTREEITEM hotItem; /* handle currently under cursor, 0 if none */
64 HTREEITEM editItem; /* handle to item currently editted, 0 if none */
65 HTREEITEM firstVisible; /* handle to first visible item */
66 HTREEITEM dropItem; /* handle to item selected by drag cursor */
67 HIMAGELIST dragList; /* Bitmap of dragged item */
68 INT cx,cy; /* current x/y place in list */
69 COLORREF clrBk;
70 COLORREF clrText;
71 HFONT hFont;
72 HFONT hBoldFont;
73 HWND hwndToolTip;
74 HWND hwndEdit;
75 WNDPROC wpEditOrig; /* needed for subclassing edit control */
76 HIMAGELIST himlNormal;
77 HIMAGELIST himlState;
78 TREEVIEW_ITEM *items; /* itemlist */
79 INT *freeList; /* bitmap indicating which elements are valid */
80 /* 1=valid, 0=free; */
81 /* size of list= uNumPtrsAlloced/32 */
82 } TREEVIEW_INFO;
86 /* bitflags for infoPtr->uInternalStatus */
88 #define TV_HSCROLL 0x01 /* treeview too large to fit in window */
89 #define TV_VSCROLL 0x02 /* (horizontal/vertical) */
90 #define TV_LDRAG 0x04 /* Lbutton pushed to start drag */
91 #define TV_LDRAGGING 0x08 /* Lbutton pushed, mouse moved. */
92 #define TV_RDRAG 0x10 /* dito Rbutton */
93 #define TV_RDRAGGING 0x20
95 /* bitflags for infoPtr->timer */
97 #define TV_REFRESH_TIMER 1
98 #define TV_EDIT_TIMER 2
99 #define TV_REFRESH_TIMER_SET 1
100 #define TV_EDIT_TIMER_SET 2
103 extern VOID TREEVIEW_Register (VOID);
104 extern VOID TREEVIEW_Unregister (VOID);
106 #endif /* __WINE_TREEVIEW_H */