1 /*
2  * Copyright (c) Tony Bybell 2010.
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  */
9 
10 #ifndef WAVE_TCLCB_H
11 #define WAVE_TCLCB_H
12 
13 #include <config.h>
14 
15 #ifdef HAVE_LIBTCL
16 
17 #include <tcl.h>
18 #include <tk.h>
19 #include "debug.h"
20 
21 #define WAVE_TCL_LIST_ELEMENT			(TCL_LIST_ELEMENT)
22 #define WAVE_TCL_APPEND_VALUE			(TCL_APPEND_VALUE)
23 #define WAVE_TCL_GLOBAL_ONLY			(TCL_GLOBAL_ONLY)
24 
25 #else
26 
27 #define WAVE_TCL_LIST_ELEMENT			(0)
28 #define WAVE_TCL_APPEND_VALUE			(0)
29 #define WAVE_TCL_GLOBAL_ONLY			(0)
30 
31 #endif
32 
33 
34 #define WAVE_TCLCB_FLAGS_NONE			(WAVE_TCL_LIST_ELEMENT|WAVE_TCL_GLOBAL_ONLY)
35 #define WAVE_TCLCB_FLAGS_APPEND			(WAVE_TCL_LIST_ELEMENT|WAVE_TCL_GLOBAL_ONLY|WAVE_TCL_APPEND_VALUE)
36 
37 /* ################################################################ */
38 
39 #define WAVE_TCLCB_ERROR			"gtkwave::cbError"
40 #define WAVE_TCLCB_ERROR_FLAGS			WAVE_TCLCB_FLAGS_NONE
41 #define WAVE_TCLCB_ERROR_INIT			""
42 
43 #define WAVE_TCLCB_TIMER_PERIOD			"gtkwave::cbTimerPeriod"
44 #define WAVE_TCLCB_TIMER_PERIOD_FLAGS		WAVE_TCLCB_FLAGS_NONE
45 #define WAVE_TCLCB_TIMER_PERIOD_INIT		"250"
46 
47 #define WAVE_TCLCB_CURRENT_ACTIVE_TAB		"gtkwave::cbCurrentActiveTab"
48 #define WAVE_TCLCB_CURRENT_ACTIVE_TAB_FLAGS	WAVE_TCLCB_FLAGS_NONE
49 #define WAVE_TCLCB_CURRENT_ACTIVE_INIT		""
50 
51 #define WAVE_TCLCB_QUIT_PROGRAM			"gtkwave::cbQuitProgram"
52 #define WAVE_TCLCB_QUIT_PROGRAM_FLAGS		WAVE_TCLCB_FLAGS_NONE
53 #define WAVE_TCLCB_QUIT_PROGRAM_INIT		""
54 
55 #define WAVE_TCLCB_CLOSE_TAB_NUMBER		"gtkwave::cbCloseTabNumber"
56 #define WAVE_TCLCB_CLOSE_TAB_NUMBER_FLAGS	WAVE_TCLCB_FLAGS_NONE
57 #define WAVE_TCLCB_CLOSE_TAB_NUMBER_INIT	""
58 
59 #define WAVE_TCLCB_RELOAD_BEGIN			"gtkwave::cbReloadBegin"
60 #define WAVE_TCLCB_RELOAD_BEGIN_FLAGS		WAVE_TCLCB_FLAGS_NONE
61 #define WAVE_TCLCB_RELOAD_BEGIN_INIT		""
62 
63 #define WAVE_TCLCB_RELOAD_END			"gtkwave::cbReloadEnd"
64 #define WAVE_TCLCB_RELOAD_END_FLAGS		WAVE_TCLCB_FLAGS_NONE
65 #define WAVE_TCLCB_RELOAD_END_INIT		""
66 
67 #define WAVE_TCLCB_TREE_EXPAND			"gtkwave::cbTreeExpand"
68 #define WAVE_TCLCB_TREE_EXPAND_FLAGS		WAVE_TCLCB_FLAGS_NONE
69 #define WAVE_TCLCB_TREE_EXPAND_INIT		""
70 
71 #define WAVE_TCLCB_TREE_COLLAPSE		"gtkwave::cbTreeCollapse"
72 #define WAVE_TCLCB_TREE_COLLAPSE_FLAGS		WAVE_TCLCB_FLAGS_NONE
73 #define WAVE_TCLCB_TREE_COLLAPSE_INIT		""
74 
75 #define WAVE_TCLCB_TREE_SELECT			"gtkwave::cbTreeSelect"
76 #define WAVE_TCLCB_TREE_SELECT_FLAGS		WAVE_TCLCB_FLAGS_NONE
77 #define WAVE_TCLCB_TREE_SELECT_INIT		""
78 
79 #define WAVE_TCLCB_TREE_UNSELECT		"gtkwave::cbTreeUnselect"
80 #define WAVE_TCLCB_TREE_UNSELECT_FLAGS		WAVE_TCLCB_FLAGS_NONE
81 #define WAVE_TCLCB_TREE_UNSELECT_INIT		""
82 
83 #define WAVE_TCLCB_TREE_SIG_SELECT		"gtkwave::cbTreeSigSelect"
84 #define WAVE_TCLCB_TREE_SIG_SELECT_FLAGS	WAVE_TCLCB_FLAGS_NONE
85 #define WAVE_TCLCB_TREE_SIG_SELECT_INIT		""
86 
87 #define WAVE_TCLCB_TREE_SIG_UNSELECT		"gtkwave::cbTreeSigUnselect"
88 #define WAVE_TCLCB_TREE_SIG_UNSELECT_FLAGS	WAVE_TCLCB_FLAGS_NONE
89 #define WAVE_TCLCB_TREE_SIG_UNSELECT_INIT	""
90 
91 #define WAVE_TCLCB_TREE_SIG_DOUBLE_CLICK	"gtkwave::cbTreeSigDoubleClick"
92 #define WAVE_TCLCB_TREE_SIG_DOUBLE_CLICK_FLAGS	WAVE_TCLCB_FLAGS_NONE
93 #define WAVE_TCLCB_TREE_SIG_DOUBLE_CLICK_INIT	""
94 
95 #define WAVE_TCLCB_OPEN_TRACE_GROUP		"gtkwave::cbOpenTraceGroup"
96 #define WAVE_TCLCB_OPEN_TRACE_GROUP_FLAGS	WAVE_TCLCB_FLAGS_NONE
97 #define WAVE_TCLCB_OPEN_TRACE_GROUP_INIT	""
98 
99 #define WAVE_TCLCB_CLOSE_TRACE_GROUP		"gtkwave::cbCloseTraceGroup"
100 #define WAVE_TCLCB_CLOSE_TRACE_GROUP_FLAGS	WAVE_TCLCB_FLAGS_NONE
101 #define WAVE_TCLCB_CLOSE_TRACE_GROUP_INIT	""
102 
103 #define WAVE_TCLCB_TRACES_UPDATED		"gtkwave::cbTracesUpdated"
104 #define WAVE_TCLCB_TRACES_UPDATED_FLAGS		WAVE_TCLCB_FLAGS_NONE
105 #define WAVE_TCLCB_TRACES_UPDATED_INIT		""
106 
107 #define WAVE_TCLCB_FROM_ENTRY_UPDATED		"gtkwave::cbFromEntryUpdated"
108 #define WAVE_TCLCB_FROM_ENTRY_UPDATED_FLAGS	WAVE_TCLCB_FLAGS_NONE
109 #define WAVE_TCLCB_FROM_ENTRY_UPDATED_INIT	""
110 
111 #define WAVE_TCLCB_TO_ENTRY_UPDATED		"gtkwave::cbToEntryUpdated"
112 #define WAVE_TCLCB_TO_ENTRY_UPDATED_FLAGS	WAVE_TCLCB_FLAGS_NONE
113 #define WAVE_TCLCB_TO_ENTRY_UPDATED_INIT	""
114 
115 #define WAVE_TCLCB_STATUS_TEXT			"gtkwave::cbStatusText"
116 #define WAVE_TCLCB_STATUS_TEXT_FLAGS		WAVE_TCLCB_FLAGS_NONE
117 #define WAVE_TCLCB_STATUS_TEXT_INIT		""
118 
119 /* ################################################################ */
120 
121 #define WAVE_TCLCB_MACRO_EXPANSION \
122 WAVE_TCLCB_M(WAVE_TCLCB_ERROR,			WAVE_TCLCB_ERROR_FLAGS,			WAVE_TCLCB_ERROR_INIT),\
123 WAVE_TCLCB_M(WAVE_TCLCB_TIMER_PERIOD,		WAVE_TCLCB_TIMER_PERIOD_FLAGS,		WAVE_TCLCB_TIMER_PERIOD_INIT),\
124 WAVE_TCLCB_M(WAVE_TCLCB_CURRENT_ACTIVE_TAB,	WAVE_TCLCB_CURRENT_ACTIVE_TAB_FLAGS,	WAVE_TCLCB_CURRENT_ACTIVE_INIT),\
125 WAVE_TCLCB_M(WAVE_TCLCB_QUIT_PROGRAM,		WAVE_TCLCB_QUIT_PROGRAM_FLAGS,		WAVE_TCLCB_QUIT_PROGRAM_INIT),\
126 WAVE_TCLCB_M(WAVE_TCLCB_CLOSE_TAB_NUMBER,	WAVE_TCLCB_CLOSE_TAB_NUMBER_FLAGS,	WAVE_TCLCB_CLOSE_TAB_NUMBER_INIT),\
127 WAVE_TCLCB_M(WAVE_TCLCB_RELOAD_BEGIN,		WAVE_TCLCB_RELOAD_BEGIN_FLAGS,		WAVE_TCLCB_RELOAD_BEGIN_INIT),\
128 WAVE_TCLCB_M(WAVE_TCLCB_RELOAD_END,		WAVE_TCLCB_RELOAD_END_FLAGS,		WAVE_TCLCB_RELOAD_END_INIT),\
129 WAVE_TCLCB_M(WAVE_TCLCB_TREE_EXPAND,		WAVE_TCLCB_TREE_EXPAND_FLAGS,		WAVE_TCLCB_TREE_EXPAND_INIT),\
130 WAVE_TCLCB_M(WAVE_TCLCB_TREE_COLLAPSE,		WAVE_TCLCB_TREE_COLLAPSE_FLAGS,		WAVE_TCLCB_TREE_COLLAPSE_INIT),\
131 WAVE_TCLCB_M(WAVE_TCLCB_TREE_SELECT,		WAVE_TCLCB_TREE_SELECT_FLAGS,		WAVE_TCLCB_TREE_SELECT_INIT),\
132 WAVE_TCLCB_M(WAVE_TCLCB_TREE_UNSELECT,		WAVE_TCLCB_TREE_UNSELECT_FLAGS,		WAVE_TCLCB_TREE_UNSELECT_INIT),\
133 WAVE_TCLCB_M(WAVE_TCLCB_TREE_SIG_SELECT,	WAVE_TCLCB_TREE_SIG_SELECT_FLAGS,	WAVE_TCLCB_TREE_SIG_SELECT_INIT),\
134 WAVE_TCLCB_M(WAVE_TCLCB_TREE_SIG_UNSELECT,	WAVE_TCLCB_TREE_SIG_UNSELECT_FLAGS,	WAVE_TCLCB_TREE_SIG_UNSELECT_INIT),\
135 WAVE_TCLCB_M(WAVE_TCLCB_TREE_SIG_DOUBLE_CLICK,	WAVE_TCLCB_TREE_SIG_DOUBLE_CLICK_FLAGS,	WAVE_TCLCB_TREE_SIG_DOUBLE_CLICK_INIT),\
136 WAVE_TCLCB_M(WAVE_TCLCB_OPEN_TRACE_GROUP,	WAVE_TCLCB_OPEN_TRACE_GROUP_FLAGS,	WAVE_TCLCB_OPEN_TRACE_GROUP_INIT),\
137 WAVE_TCLCB_M(WAVE_TCLCB_CLOSE_TRACE_GROUP,	WAVE_TCLCB_CLOSE_TRACE_GROUP_FLAGS,	WAVE_TCLCB_CLOSE_TRACE_GROUP_INIT),\
138 WAVE_TCLCB_M(WAVE_TCLCB_TRACES_UPDATED,		WAVE_TCLCB_TRACES_UPDATED_FLAGS,	WAVE_TCLCB_TRACES_UPDATED_INIT),\
139 WAVE_TCLCB_M(WAVE_TCLCB_FROM_ENTRY_UPDATED,	WAVE_TCLCB_FROM_ENTRY_UPDATED_FLAGS,	WAVE_TCLCB_FROM_ENTRY_UPDATED_INIT),\
140 WAVE_TCLCB_M(WAVE_TCLCB_TO_ENTRY_UPDATED,	WAVE_TCLCB_TO_ENTRY_UPDATED_FLAGS,	WAVE_TCLCB_TO_ENTRY_UPDATED_INIT),\
141 WAVE_TCLCB_M(WAVE_TCLCB_STATUS_TEXT,		WAVE_TCLCB_STATUS_TEXT_FLAGS,		WAVE_TCLCB_STATUS_TEXT_INIT),\
142 WAVE_TCLCB_M("",-1,"")
143 
144 /* ################################################################ */
145 
146 #endif
147