fbdbg  3.0
FreeBASIC Debugger
expand.bas
Go to the documentation of this file.
1 
10 
11 
12 '' example code to fill a list store
13 SUB fillExpandTree cdecl(BYVAL Store as GtkTreeStore ptr, byval UserData as gpointer)
14  DIM AS ZSTRING PTR entries(...) = { _ ' some rows data
15  @"--> PUDT1 <* UDT1>=0" _
16  , @"A < Integer> No valid value" _
17  , @"B <UDT2>" _
18  , @"A2 [ 0-5 ] <TYPE>" _
19  , @"AAA <Integer>=0 " _
20  , @"BBB <Ulongint>=0" _
21  , @"B2 <EENUM>=0 >> Unknown Enum value" _
22  , @"C2 <* Integer>=0" _
23  , @"<Integer>=0" _
24  , @"D2 <* EENUM>=0" _
25  , @"<EENUM>=0 >> Unknown Enum value" _
26  , @"C <Ushort>=0" _
27  }
28 
29  DIM AS GtkTreeIter iter(3) ' iterators, four levels here
30 
31  gtk_tree_store_clear(Store) ' empty the Store
32 
33  gtk_tree_store_append(Store, @iter(0), NULL) ' level 0
34  gtk_tree_store_set(Store, @iter(0), 0, entries(0), -1)
35 
36  gtk_tree_store_append(Store, @iter(1), @iter(0)) ' level 1
37  gtk_tree_store_set(Store, @iter(1), 0, entries(1), -1)
38 
39  gtk_tree_store_append(Store, @iter(1), @iter(0)) ' level 1
40  gtk_tree_store_set(Store, @iter(1), 0, entries(2), -1)
41 
42  gtk_tree_store_append(Store, @iter(2), @iter(1)) ' level 2
43  gtk_tree_store_set(Store, @iter(2), 0, entries(3), -1)
44 
45  gtk_tree_store_append(Store, @iter(3), @iter(2)) ' level 3
46  gtk_tree_store_set(Store, @iter(3), 0, entries(4), -1)
47 
48  gtk_tree_store_append(Store, @iter(3), @iter(2)) ' level 3
49  gtk_tree_store_set(Store, @iter(3), 0, entries(5), -1)
50 
51  gtk_tree_store_append(Store, @iter(2), @iter(1)) ' level 2
52  gtk_tree_store_set(Store, @iter(2), 0, entries(6), -1)
53 
54  gtk_tree_store_append(Store, @iter(2), @iter(1)) ' level 2
55  gtk_tree_store_set(Store, @iter(2), 0, entries(6), -1)
56 
57  gtk_tree_store_append(Store, @iter(3), @iter(2)) ' level 3
58  gtk_tree_store_set(Store, @iter(3), 0, entries(7), -1)
59 
60  gtk_tree_store_append(Store, @iter(3), @iter(2)) ' level 3
61  gtk_tree_store_set(Store, @iter(3), 0, entries(8), -1)
62 
63  gtk_tree_store_append(Store, @iter(2), @iter(1)) ' level 2
64  gtk_tree_store_set(Store, @iter(2), 0, entries(9), -1)
65 
66  gtk_tree_store_append(Store, @iter(3), @iter(2)) ' level 3
67  gtk_tree_store_set(Store, @iter(3), 0, entries(10), -1)
68 
69  gtk_tree_store_append(Store, @iter(1), @iter(0)) ' level 1
70  gtk_tree_store_set(Store, @iter(1), 0, entries(11), -1)
71 END SUB
72 
73 
74 
79 CONSTRUCTOR ExpandUdt()
80  VAR fnam = "expand.ui", fnr = FREEFILE
81  IF OPEN(fnam FOR INPUT AS fnr) THEN
82  ?PROJ_NAME & ": Cannot open " & fnam : END 1
83  'g_error("Cannot open " & fnam)
84  ELSE
85  Xml = STRING(LOF(fnr), 0)
86  GET #fnr, , Xml
87  CLOSE #fnr
88  END IF
89 ?" CONSTRUCTOR ExpandUdt"
90 END CONSTRUCTOR
91 
92 
93 SUB ExpandUdt.destroyAll()
94  'g_slist_foreach(List, G_FUNC(@gtk_widget_destroy), NULL)
95 END SUB
96 
97 DECLARE SUB on_expand_destroyed CDECL ( _
98  BYVAL AS GtkWidget PTR, _
99  BYVAL AS gpointer)
100 
101 
102 
109 SUB ExpandUdt.addXpd( _
110  BYVAL FillStore AS SUB CDECL(BYVAL AS GtkTreeStore PTR, BYVAL AS gpointer) _
111  , BYVAL UserData AS gpointer)
112 
113  VAR build = gtk_builder_new()
114  DIM AS GError PTR meld
115  IF 0 = gtk_builder_add_from_string(build, Xml, -1, @meld) THEN
116  WITH *meld
117  ?PROJ_NAME & ": Fehler/Error (GTK-Builder in ExpandUdt.addXpd)"
118  ?*.message
119  END WITH
120  g_error_free(meld)
121  END 2
122  END IF
123  var dia = gtk_builder_get_object(build, "window1")
124  var gtv = gtk_builder_get_object(build, "tviewExpand")
125  var store = gtk_builder_get_object(build, "tstoreExpand")
126  gtk_builder_connect_signals(build, 0)
127  g_object_unref(build)
128 
129  g_signal_connect(dia, "destroy" _
130  , G_CALLBACK(@on_expand_destroyed), gtv)
131 
132  gtk_window_set_title(GTK_WINDOW(dia), "Expand")
133  FillStore(GTK_TREE_STORE(store), UserData)
134  gtk_tree_view_expand_all(GTK_TREE_VIEW(gtv))
135 
136  List = g_slist_prepend(List, gtv)
137 END SUB
138 
139 DIM SHARED AS ExpandUdt PTR XPD
140 
141 
142 
143 SUB on_expand_destroyed CDECL ALIAS "on_expand_destroyed" ( _
144  BYVAL Dia AS GtkWidget PTR, _
145  BYVAL Gtv AS gpointer) EXPORT
146 
147 ?" --> callback on_expand_destroyed"
148  XPD->List = g_slist_remove(XPD->List, Gtv)
149 END SUB
150 
151 
152 SUB exp_watched_clicked CDECL ALIAS "exp_watched_clicked" ( _
153  BYVAL Button AS GtkButton PTR, _
154  BYVAL user_data AS gpointer) EXPORT
155 
156 ?" --> callback exp_watched_clicked"
157 
158 END SUB
159 
160 
161 SUB exp_dump_clicked CDECL ALIAS "exp_dump_clicked" ( _
162  BYVAL Button AS GtkButton PTR, _
163  BYVAL user_data AS gpointer) EXPORT
164 
165 ?" --> callback exp_dump_clicked"
166 
167 END SUB
168 
169 
170 SUB exp_edit_clicked CDECL ALIAS "exp_edit_clicked" ( _
171  BYVAL Button AS GtkButton PTR, _
172  BYVAL user_data AS gpointer) EXPORT
173 
174 ?" --> callback exp_edit_clicked"
175 
176 END SUB
177 
178 
179 SUB exp_show_clicked CDECL ALIAS "exp_show_clicked" ( _
180  BYVAL Button AS GtkButton PTR, _
181  BYVAL user_data AS gpointer) EXPORT
182 
183 ?" --> callback exp_show_clicked"
184 
185 END SUB
186 
187 
188 SUB exp_new_clicked CDECL ALIAS "exp_new_clicked" ( _
189  BYVAL Button AS GtkButton PTR, _
190  BYVAL user_data AS gpointer) EXPORT
191 
192 ?" --> callback exp_new_clicked"
193  XPD->addXpd(@fillExpandTree, NULL)
194 
195 END SUB
196 
197 
198 SUB exp_replace_clicked CDECL ALIAS "exp_replace_clicked" ( _
199  BYVAL Button AS GtkButton PTR, _
200  BYVAL user_data AS gpointer) EXPORT
201 
202 ?" --> callback exp_replace_clicked"
203 
204 END SUB
205 
206 
207 SUB exp_delta_m_clicked CDECL ALIAS "exp_delta_m_clicked" ( _
208  BYVAL Button AS GtkButton PTR, _
209  BYVAL user_data AS gpointer) EXPORT
210 
211 ?" --> callback exp_delta_m_clicked"
212 
213 END SUB
214 
215 
216 SUB exp_delta_p_clicked CDECL ALIAS "exp_delta_p_clicked" ( _
217  BYVAL Button AS GtkButton PTR, _
218  BYVAL user_data AS gpointer) EXPORT
219 
220 ?" --> callback exp_delta_p_clicked"
221 
222 END SUB
223 
224 
225 SUB exp_delta_set_clicked CDECL ALIAS "exp_delta_set_clicked" ( _
226  BYVAL Button AS GtkButton PTR, _
227  BYVAL user_data AS gpointer) EXPORT
228 
229 ?" --> callback exp_delta_set_clicked"
230 
231 END SUB
232 
233 
234 SUB exp_close_clicked CDECL ALIAS "exp_close_clicked" ( _
235  BYVAL Button AS GtkButton PTR, _
236  BYVAL user_data AS gpointer) EXPORT
237 
238 ?" --> callback exp_close_clicked"
239 
240 END SUB
241 
242 
243 SUB exp_arrange_clicked CDECL ALIAS "exp_arrange_clicked" ( _
244  BYVAL Button AS GtkButton PTR, _
245  BYVAL user_data AS gpointer) EXPORT
246 
247 ?" --> callback exp_arrange_clicked"
248 
249 END SUB
250 
251 
252 SUB exp_about_clicked CDECL ALIAS "exp_about_clicked" ( _
253  BYVAL Button AS GtkButton PTR, _
254  BYVAL user_data AS gpointer) EXPORT
255 
256 ?" --> callback exp_about_clicked"
257 
258 END SUB
259