fbdbg  3.0
FreeBASIC Debugger
mbar_buttons.bas
Go to the documentation of this file.
1 
6 
7 
8 SUB act_free CDECL ALIAS "act_free" ( _
9  BYVAL action AS GtkAction PTR, _
10  BYVAL user_data AS gpointer) EXPORT
11 
12 ?" --> callback act_free"
13 
14 END SUB
15 
16 
17 SUB act_minicmd CDECL ALIAS "act_minicmd" ( _
18  BYVAL action AS GtkAction PTR, _
19  BYVAL user_data AS gpointer) EXPORT
20 
21 ?" --> callback act_minicmd"
22 
23 END SUB
24 
25 
26 SUB act_restart CDECL ALIAS "act_restart" ( _
27  BYVAL action AS GtkAction PTR, _
28  BYVAL user_data AS gpointer) EXPORT
29 
30 ?" --> callback act_restart"
31 
32 END SUB
33 
34 
35 SUB act_multiexe CDECL ALIAS "act_multiexe" ( _
36  BYVAL action AS GtkAction PTR, _
37  BYVAL user_data AS gpointer) EXPORT
38 
39 ?" --> callback act_multiexe"
40 
41 END SUB
42 
43 
44 SUB act_attachexe CDECL ALIAS "act_attachexe" ( _
45  BYVAL action AS GtkAction PTR, _
46  BYVAL user_data AS gpointer) EXPORT
47 
48 ?" --> callback act_attachexe"
49 
50 END SUB
51 
52 
53 
66 SUB act_files CDECL ALIAS "act_files" ( _
67  BYVAL action AS GtkAction PTR, _
68  BYVAL user_data AS gpointer) EXPORT
69 
70 ?" --> callback act_files"
71 filechoose
72  'VAR dia = DBG_FILE_OPEN("Select debuggee file name")
73  'gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dia), dbg_all_filter())
74  'gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dia), dbg_exe_filter())
75  'gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dia), dbg_bas_filter())
76 
77  'IF GTK_RESPONSE_ACCEPT = gtk_dialog_run(GTK_DIALOG(dia)) THEN
78  ' VAR fnam = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dia)) _
79  ' , fnr = FREEFILE
80  ' IF 0 = OPEN(*fnam FOR INPUT AS fnr) THEN
81  ' VAR l = LOF(fnr)
82  ' IF l <= G_MAXINT THEN
83  ' VAR t = STRING(l, 0)
84  ' GET #fnr, , t
85  ' CLOSE #fnr
86 
87  ' ?SRC->addBas(MID(*fnam, INSTRREV(*fnam, ANY "/\") + 1), t)
88  ' END IF
89  ' END IF
90 
91  ' g_free (fnam)
92  'END IF
93 
94  'gtk_widget_destroy(dia)
95 END SUB
96 
97 
98 
99 
106 SUB act_notes CDECL ALIAS "act_notes" ( _
107  BYVAL Action AS GtkAction PTR, _
108  BYVAL user_data AS gpointer) EXPORT
109 
110 ?" --> callback act_notes"
111  TXT->Notes()
112 
113 END SUB
114 
115 
116 SUB act_source CDECL ALIAS "act_source" ( _
117  BYVAL action AS GtkAction PTR, _
118  BYVAL user_data AS gpointer) EXPORT
119 
120 ?" --> callback act_source"
121 
122 END SUB
123 
124 
125 SUB act_varproc CDECL ALIAS "act_varproc" ( _
126  BYVAL action AS GtkAction PTR, _
127  BYVAL user_data AS gpointer) EXPORT
128 
129 ?" --> callback act_varproc"
130 
131 '' list some files to load
132 dim as gchar ptr fnam(...) => { _
133  @"fbdbg.bas" _
134 , @"gui/shortcuts.bas" _
135 , @"gui/settings.bas" _
136 , @"gui/source.bas" _
137 }
138 '' references for pages
139 dim as any ptr ref(ubound(fnam))
140 ?" load the files"
141 FOR i AS INTEGER = 0 TO ubound(fnam)
142  var fnr = FREEFILE
143  IF 0 = OPEN(*fnam(i) FOR INPUT AS fnr) THEN
144  VAR l = LOF(fnr)
145  IF l <= G_MAXINT THEN
146  VAR t = STRING(l, 0)
147  GET #fnr, , t
148  CLOSE #fnr
149 
150  ref(i) = SRC->addBas(MID(*fnam(i), INSTRREV(*fnam(i), ANY "/\") + 1), t)
151  END IF
152  END IF
153 NEXT
154 
155 '?" do some random scrolling soon ... (don't do GUI actions)"
156 'while gtk_events_pending() : gtk_main_iteration() : wend : sleep 2000 ' make changes visible
157 
158 'randomize(timer)
159 'FOR i AS INTEGER = 0 TO 10
160  'var l = cuint(rnd() * 150), ind = l mod ubound(ref)
161 
162 '?" SRC->scroll(" & l & ", " & ref(ind) & ")", ind
163  'SRC->scroll(l, ref(ind))
164 
165  'while gtk_events_pending() : gtk_main_iteration() : wend : sleep 2000 ' make changes visible
166 'NEXT
167 
168 '?" remove all notebook pages (GUI actions alowed again)"
169 'SRC->removeAll()
170 ''' alternative remove single pages
171 'FOR i AS INTEGER = 0 TO ubound(fnam)
172  'SRC->remove(ref(i))
173 'NEXT
174 exit sub
175 
176 while gtk_events_pending() : gtk_main_iteration() : wend
177 SRC->scroll(150, ref(1))
178 while gtk_events_pending() : gtk_main_iteration() : wend : sleep 1000
179 SRC->changeMark(150, ref(1), "book")
180 while gtk_events_pending() : gtk_main_iteration() : wend : sleep 1000
181 SRC->changeMark(150, ref(1), "brkp")
182 while gtk_events_pending() : gtk_main_iteration() : wend : sleep 1000
183 SRC->changeMark(150, ref(1), "brkt")
184 while gtk_events_pending() : gtk_main_iteration() : wend : sleep 1000
185 SRC->changeMark(150, ref(1), "brkd")
186 while gtk_events_pending() : gtk_main_iteration() : wend : sleep 1000
187 SRC->changeMark(150, ref(1), "boo")
188 while gtk_events_pending() : gtk_main_iteration() : wend : sleep 1000
189 SRC->changeMark(150, ref(1), "brk")
190 while gtk_events_pending() : gtk_main_iteration() : wend : sleep 1000
191 SRC->changeMark(150, ref(1), "book")
192 while gtk_events_pending() : gtk_main_iteration() : wend : sleep 1000
193 SRC->changeMark(150, ref(1), "brkp")
194 while gtk_events_pending() : gtk_main_iteration() : wend : sleep 1000
195 SRC->changeMark(150, ref(1), "")
196 END SUB
197 
198 
199 SUB act_memory CDECL ALIAS "act_memory" ( _
200  BYVAL action AS GtkAction PTR, _
201  BYVAL user_data AS gpointer) EXPORT
202 
203 ?" --> callback act_memory"
204 
205 '' test code to get removed
206 static as guint32 runtype = 0
207 ?" runtype = "; runtype
208 ACT->setState(runtype)
209 runtype += 1 : if runtype > RTEND then runtype = 0
210 END SUB
211