KWWidgets
Main Page
Classes
Files
File List
File Members
Utilities
TkTreeCtrl
generic
tkTreeElem.h
Go to the documentation of this file.
1
/*
2
* tkTreeElem.h --
3
*
4
* This module is the header for elements in treectrl widgets.
5
*
6
* Copyright (c) 2002-2006 Tim Baker
7
*
8
* RCS: @(#) $Id: tkTreeElem.h,v 1.1 2007-02-06 13:18:14 barre Exp $
9
*/
10
11
typedef
struct
ElementType
ElementType
;
12
typedef
struct
Element
Element
;
13
typedef
struct
ElementArgs
ElementArgs
;
14
15
struct
ElementArgs
16
{
17
TreeCtrl
*
tree
;
18
Element
*
elem
;
19
int
state
;
20
struct
{
21
TreeItem
item
;
22
TreeItemColumn
column
;
23
}
create
;
24
struct
{
25
int
noop
;
26
}
delete
;
27
struct
{
28
int
objc
;
29
Tcl_Obj *CONST *
objv
;
30
int
flagSelf
;
31
TreeItem
item
;
32
TreeItemColumn
column
;
33
}
config
;
34
struct
{
35
int
x
;
36
int
y
;
37
int
width
;
38
int
height
;
39
#define STICKY_W 0x1000
/* These values must match ELF_STICKY_xxx */
40
#define STICKY_N 0x2000
41
#define STICKY_E 0x4000
42
#define STICKY_S 0x8000
43
int
sticky
;
44
Drawable
drawable
;
45
int
bounds
[4];
46
}
display
;
47
struct
{
48
int
fixedWidth
;
49
int
fixedHeight
;
50
int
maxWidth
;
51
int
maxHeight
;
52
int
width
;
53
int
height
;
54
}
needed
;
55
struct
{
56
int
fixedWidth
;
57
int
height
;
58
}
height
;
59
struct
{
60
int
flagTree
;
61
int
flagMaster
;
62
int
flagSelf
;
63
}
change
;
64
struct
{
65
int
state1
;
66
int
state2
;
67
}
states
;
68
struct
{
69
Tcl_Obj *
obj
;
70
}
actual
;
71
struct
{
72
int
visible
;
73
}
screen
;
74
};
75
76
struct
ElementType
77
{
78
char
*
name
;
/* "image", "text" */
79
int
size
;
/* size of an Element */
80
Tk_OptionSpec *
optionSpecs
;
81
Tk_OptionTable
optionTable
;
82
int (*
createProc
)(
ElementArgs
*args);
83
void (*
deleteProc
)(
ElementArgs
*args);
84
int (*
configProc
)(
ElementArgs
*args);
85
void (*
displayProc
)(
ElementArgs
*args);
86
void (*
neededProc
)(
ElementArgs
*args);
87
void (*
heightProc
)(
ElementArgs
*args);
88
int (*
changeProc
)(
ElementArgs
*args);
89
int (*
stateProc
)(
ElementArgs
*args);
90
int (*
undefProc
)(
ElementArgs
*args);
91
int (*
actualProc
)(
ElementArgs
*args);
92
void (*
onScreenProc
)(
ElementArgs
*args);
93
ElementType
*
next
;
94
};
95
96
/* list of these for each style */
97
struct
Element
98
{
99
Tk_Uid
name
;
/* "elem2", "eText" etc */
100
ElementType
*
typePtr
;
101
Element
*
master
;
/* NULL if this is master */
102
DynamicOption
*
options
;
/* Dynamically-allocated options. */
103
/* type-specific data here */
104
};
105
106
extern
ElementType
elemTypeBitmap
;
107
extern
ElementType
elemTypeBorder
;
108
extern
ElementType
elemTypeCheckButton
;
109
extern
ElementType
elemTypeImage
;
110
extern
ElementType
elemTypeRect
;
111
extern
ElementType
elemTypeText
;
112
extern
ElementType
elemTypeWindow
;
113
114
#define ELEMENT_TYPE_MATCHES(t1,t2) ((t1)->name == (t2)->name)
115
116
/***** ***** *****/
117
118
extern
int
Element_GetSortData
(
TreeCtrl
*tree,
Element
*elem,
int
type,
long
*lv,
double
*dv,
char
**sv);
119
120
typedef
struct
TreeIterate_ *
TreeIterate
;
121
122
extern
int
TreeElement_TypeFromObj
(
TreeCtrl
*tree, Tcl_Obj *objPtr,
ElementType
**typePtrPtr);
123
extern
void
Tree_RedrawElement
(
TreeCtrl
*tree,
TreeItem
item,
Element
*elem);
124
extern
TreeIterate
Tree_ElementIterateBegin
(
TreeCtrl
*tree,
ElementType
*elemTypePtr);
125
extern
TreeIterate
Tree_ElementIterateNext
(
TreeIterate
iter_);
126
extern
Element
*
Tree_ElementIterateGet
(
TreeIterate
iter_);
127
extern
void
Tree_ElementIterateChanged
(
TreeIterate
iter_,
int
mask);
128
extern
void
Tree_ElementChangedItself
(
TreeCtrl
*tree,
TreeItem
item,
129
TreeItemColumn
column,
Element
*elem,
int
flags,
int
mask);
130
131
typedef
struct
TreeCtrlStubs
TreeCtrlStubs
;
132
struct
TreeCtrlStubs
133
{
134
int (*
TreeCtrl_RegisterElementType
)(Tcl_Interp *interp,
ElementType
*typePtr);
135
void (*
Tree_RedrawElement
)(
TreeCtrl
*tree,
TreeItem
item,
Element
*elem);
136
TreeIterate
(*
Tree_ElementIterateBegin
)(
TreeCtrl
*tree,
ElementType
*elemTypePtr);
137
TreeIterate
(*
Tree_ElementIterateNext
)(
TreeIterate
iter_);
138
Element
*(*Tree_ElementIterateGet)(
TreeIterate
iter_);
139
void (*
Tree_ElementIterateChanged
)(
TreeIterate
iter_,
int
mask);
140
void (*
PerStateInfo_Free
)(
TreeCtrl
*tree,
PerStateType
*typePtr,
PerStateInfo
*pInfo);
141
int (*
PerStateInfo_FromObj
)(
TreeCtrl
*tree,
StateFromObjProc
proc,
PerStateType
*typePtr,
PerStateInfo
*pInfo);
142
PerStateData
*(*PerStateInfo_ForState)(
TreeCtrl
*tree,
PerStateType
*typePtr,
PerStateInfo
*pInfo,
int
state,
int
*match);
143
Tcl_Obj *(*PerStateInfo_ObjForState)(
TreeCtrl
*tree,
PerStateType
*typePtr,
PerStateInfo
*pInfo,
int
state,
int
*match);
144
int (*
PerStateInfo_Undefine
)(
TreeCtrl
*tree,
PerStateType
*typePtr,
PerStateInfo
*pInfo,
int
state);
145
PerStateType
*
pstBoolean
;
146
int (*
PerStateBoolean_ForState
)(
TreeCtrl
*tree,
PerStateInfo
*pInfo,
int
state,
int
*match);
147
void (*
PSTSave
)(
PerStateInfo
*pInfo,
PerStateInfo
*pSave);
148
void (*
PSTRestore
)(
TreeCtrl
*tree,
PerStateType
*typePtr,
PerStateInfo
*pInfo,
PerStateInfo
*pSave);
149
int (*
TreeStateFromObj
)(
TreeCtrl
*tree, Tcl_Obj *obj,
int
*stateOff,
int
*stateOn);
150
int (*
BooleanCO_Init
)(Tk_OptionSpec *optionTable, CONST
char
*optionName);
151
int (*
StringTableCO_Init
)(Tk_OptionSpec *optionTable, CONST
char
*optionName, CONST
char
**tablePtr);
152
};
153
Generated on Sun Apr 28 2013 21:04:55 for KWWidgets by
1.8.3.1