File: appTree.h

package info (click to toggle)
ted 2.11-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 11,064 kB
  • ctags: 13,935
  • sloc: ansic: 120,446; makefile: 7,469; sh: 253
file content (111 lines) | stat: -rw-r--r-- 2,678 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/************************************************************************/
/*									*/
/*  Infrastructure for building and managing hierarchy trees.		*/
/*									*/
/************************************************************************/

#   include	<appFrame.h>

typedef struct TreeNode
    {
    /*  1  */
    int			tnChildCount;
    int			tnNumberInParent;
    struct TreeNode **	tnChildren;
    struct TreeNode *	tnParent;

    /*  2  */
    unsigned long	tnId;
    char *		tnLabel;
    char *		tnIconName;
    APP_BITMAP_IMAGE	tnPixmap;
    APP_BITMAP_MASK	tnMask;
    int			tnLabelStrlen;
    int			tnLabelWidth;

    /*  3  */
    int			tnIsOpen;
    int			tnX0;
    int			tnY0;
    int			tnY1;
    } TreeNode;

typedef struct TreeDocument
    {
    TreeNode *		tdRootNode;
    TreeNode *		tdCurrentNode;

    APP_COLOR_RGB	tdBlackColor;
    APP_COLOR_RGB	tdWhiteColor;
    APP_COLOR_RGB	tdLineColor;
    APP_COLOR_RGB *	tdCurrentColor;
    APP_FONT *		tdFontStruct;

    int			tdGridSize;
    } TreeDocument;

typedef enum ClickPosition
    {
    CLICKposSTRIP,
    CLICKposOPEN,
    CLICKposICON,
    CLICKposLABEL
    } ClickPosition;

#   define	appTreeMakeCurrent( td, tn ) (td)->tdCurrentNode= (tn)

/************************************************************************/
/*									*/
/*  Routine declarations.						*/
/*									*/
/************************************************************************/

extern TreeNode * appTreeAddNode(	TreeDocument *		td );

extern void appInitTreeDocument(	TreeDocument *		td );

extern void appCleanTreeDocument(	TreeDocument *		td );

extern void appDeleteNode(		TreeDocument *		td,
					TreeNode *		tn );

extern int appTreeSetLabel(		TreeNode *		tn,
					const char *		label );

extern int appTreeSetIconName(		TreeNode *		tn,
					const char *		iconName );

extern int appLayoutTree(		TreeDocument *		td,
					AppDrawingData *	add,
					EditApplication *	ea );

extern int appDrawTree(			TreeDocument *			td,
					AppDrawingData *		add,
					const DocumentRectangle *	drClip,
					int				ox,
					int				oy );

extern TreeNode * appTreeFindNode(	TreeDocument *		td,
					int *			pPosition,
					int			x,
					int			y );

extern int appTreeProcessMouseClick( TreeDocument *		td,
				EditApplication *		ea,
				AppDrawingData *		add,
				APP_MOUSE_CLICK_EVENT *		bevent,
				int				ox,
				int				oy );

extern int appTreeAllocateResources(	TreeDocument *		td,
					AppDrawingData *	add,
					AppColors *		ac,
					const char *		font );

void appDrawTreeRectangle(	TreeDocument *		td,
				AppDrawingData *	add,
				DocumentRectangle *	drVisible,
				DocumentRectangle *	drClip,
				int			ox,
				int			oy );