source: trunk/include/win/treeview.h@ 44

Last change on this file since 44 was 44, checked in by achimha, 26 years ago

* empty log message *

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