561eba2a |
1 | #ifdef HAVE_CONFIG_H |
2 | # include <config.h> |
3 | #endif |
4 | |
5 | #include <gtk/gtk.h> |
6 | #include <gmodule.h> |
7 | |
8 | #include "callbacks.h" |
9 | #include "interface.h" |
10 | #include "support.h" |
95cd67ef |
11 | #include <lttv/mainWindow.h> |
37d0eca6 |
12 | #include <lttv/menu.h> |
13 | #include <lttv/toolbar.h> |
561eba2a |
14 | |
15 | extern systemView * gSysView; |
ec25ff5e |
16 | extern LttvTracesetContext * gTracesetContext; |
17 | |
18 | /** Array containing instanced objects. */ |
19 | extern GSList * Main_Window_List; |
561eba2a |
20 | |
561eba2a |
21 | mainWindow * get_window_data_struct(GtkWidget * widget); |
22 | |
23 | /* test part */ |
24 | void insertView(GtkWidget* widget, view_constructor constructor); |
25 | |
26 | void |
27 | on_textview1_grab_focus (GtkTextView *text_view, |
28 | gpointer user_data) |
29 | { |
30 | GtkWidget * widget; |
31 | GtkCustom * custom = (GtkCustom*)user_data; |
32 | widget = gtk_widget_get_parent((GtkWidget*)text_view); |
33 | widget = gtk_widget_get_parent(widget); |
34 | gtk_custom_set_focus((GtkWidget*)custom, (gpointer)widget); |
35 | } |
36 | |
37 | void |
38 | insertViewTest(GtkMenuItem *menuitem, gpointer user_data) |
39 | { |
40 | guint val = 20; |
37d0eca6 |
41 | insertView((GtkWidget*)menuitem, (view_constructor)user_data); |
42 | // selected_hook(&val); |
561eba2a |
43 | } |
44 | |
45 | void |
46 | on_insert_viewer_test_activate (GtkMenuItem *menuitem, |
47 | gpointer user_data) |
48 | { |
49 | GtkWidget *scrolledwindow1, *textview1, *label; |
50 | static int count = 0; |
51 | char str[64]; |
52 | GtkCustom * custom; |
53 | GtkTextBuffer* buf; |
54 | |
55 | mainWindow * mwData; |
56 | mwData = get_window_data_struct((GtkWidget*)menuitem); |
57 | if(!mwData->CurrentTab) return; |
58 | custom = mwData->CurrentTab->custom; |
59 | |
60 | sprintf(str,"label : %d",++count); |
61 | scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); |
62 | gtk_widget_show (scrolledwindow1); |
63 | label = gtk_label_new(str); |
64 | gtk_widget_show(label); |
65 | |
66 | gtk_custom_widget_add(custom, scrolledwindow1); |
67 | gtk_widget_set_size_request ((GtkWidget*)scrolledwindow1, 800, 100); |
68 | |
69 | textview1 = gtk_text_view_new (); |
70 | gtk_widget_show (textview1); |
71 | gtk_container_add (GTK_CONTAINER (scrolledwindow1), textview1); |
72 | buf = gtk_text_view_get_buffer((GtkTextView*)textview1); |
73 | sprintf(str,"text view : %d",count); |
74 | gtk_text_buffer_set_text(buf,str, -1); |
75 | |
76 | g_signal_connect ((gpointer) textview1, "grab_focus", |
77 | G_CALLBACK (on_textview1_grab_focus), custom); |
78 | } |
79 | |
80 | /* end of test part */ |
81 | |
82 | |
83 | /* internal functions */ |
84 | void insertView(GtkWidget* widget, view_constructor constructor) |
85 | { |
86 | GtkCustom * custom; |
87 | mainWindow * mwData; |
f9334f6f |
88 | GtkWidget * viewer; |
561eba2a |
89 | |
90 | mwData = get_window_data_struct(widget); |
91 | if(!mwData->CurrentTab) return; |
92 | custom = mwData->CurrentTab->custom; |
93 | |
f9334f6f |
94 | viewer = (GtkWidget*)constructor(mwData); |
95 | if(viewer) |
96 | gtk_custom_widget_add(custom, viewer); |
561eba2a |
97 | } |
98 | |
99 | void get_label_string (GtkWidget * text, gchar * label) |
100 | { |
101 | GtkEntry * entry = (GtkEntry*)text; |
102 | if(strlen(gtk_entry_get_text(entry))!=0) |
103 | strcpy(label,gtk_entry_get_text(entry)); |
104 | } |
105 | |
106 | void get_label(GtkWindow * mw, gchar * str) |
107 | { |
108 | GtkWidget * dialogue; |
109 | GtkWidget * text; |
110 | GtkWidget * label; |
111 | gint id; |
112 | |
113 | strcpy(str,"Page"); //default label |
114 | |
115 | dialogue = gtk_dialog_new_with_buttons("Get the name of the tab",mw, |
116 | GTK_DIALOG_MODAL, |
117 | GTK_STOCK_OK,GTK_RESPONSE_ACCEPT, |
118 | GTK_STOCK_CANCEL,GTK_RESPONSE_REJECT, |
119 | NULL); |
120 | |
121 | label = gtk_label_new("Please input tab's name"); |
122 | gtk_widget_show(label); |
123 | |
124 | text = gtk_entry_new(); |
125 | gtk_widget_show(text); |
126 | |
127 | gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialogue)->vbox), label,TRUE, TRUE,0); |
128 | gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialogue)->vbox), text,FALSE, FALSE,0); |
129 | |
130 | id = gtk_dialog_run(GTK_DIALOG(dialogue)); |
131 | switch(id){ |
132 | case GTK_RESPONSE_ACCEPT: |
133 | get_label_string(text,str); |
134 | gtk_widget_destroy(dialogue); |
135 | break; |
136 | case GTK_RESPONSE_REJECT: |
137 | default: |
138 | gtk_widget_destroy(dialogue); |
139 | break; |
140 | } |
141 | } |
142 | |
143 | mainWindow * get_window_data_struct(GtkWidget * widget) |
144 | { |
145 | GtkWidget * mw; |
146 | mainWindow * mwData; |
147 | |
148 | mw = lookup_widget(widget, "MWindow"); |
149 | if(mw == NULL){ |
150 | g_printf("Main window does not exist\n"); |
151 | return; |
152 | } |
153 | |
154 | mwData = (mainWindow *) g_object_get_data(G_OBJECT(mw),"mainWindow"); |
155 | if(mwData == NULL){ |
156 | g_printf("Main window data does not exist\n"); |
157 | return; |
158 | } |
159 | return mwData; |
160 | } |
161 | |
162 | void createNewWindow(GtkWidget* widget, gpointer user_data, gboolean clone) |
163 | { |
164 | GtkWidget * mw = NULL; /* Main window */ |
165 | systemView * sv = NULL; /* System view */ |
166 | systemView * newSv; /* New system view displayed in the new window */ |
167 | GtkWidget * newWindow; /* New generated main window */ |
168 | mainWindow * newMWindow;/* New main window structure */ |
169 | |
170 | //test |
37d0eca6 |
171 | int i; |
172 | GtkWidget * ToolMenuTitle_menu, *insert_view, *pixmap; |
173 | LttvMenus * menu; |
174 | LttvToolbars * toolbar; |
175 | lttv_menu_closure *menuItem; |
176 | lttv_toolbar_closure *toolbarItem; |
177 | LttvAttributeValue value; |
178 | LttvIAttribute *attributes = LTTV_IATTRIBUTE(lttv_global_attributes()); |
179 | view_constructor constructor; |
180 | GdkPixbuf *pixbuf; |
561eba2a |
181 | //end |
182 | |
183 | mw = lookup_widget (widget, "MWindow"); |
184 | if(mw == NULL){ |
185 | g_printf("Can not find main window\n"); |
186 | return; |
187 | } |
188 | |
189 | sv = (systemView *)g_object_get_data(G_OBJECT(mw),"systemView"); |
190 | if(sv == NULL){ |
191 | g_printf("Can not find system view\n"); |
192 | return; |
193 | } |
194 | |
195 | newMWindow = g_new(mainWindow, 1); |
ec25ff5e |
196 | |
197 | /* Add the object's information to the module's array */ |
198 | Main_Window_List = g_slist_append(Main_Window_List, mw); |
199 | |
561eba2a |
200 | newWindow = create_MWindow(); |
201 | gtk_widget_show (newWindow); |
202 | |
203 | |
204 | newSv = g_new(systemView, 1); |
205 | while(sv->Next) sv = sv->Next; |
206 | sv->Next = newSv; |
207 | |
208 | newSv->EventDB = NULL; |
209 | newSv->SystemInfo = NULL; |
210 | newSv->Options = NULL; |
211 | newSv->Next = NULL; |
212 | newSv->Window = newMWindow; |
213 | |
214 | newMWindow->MWindow = newWindow; |
215 | newMWindow->Tab = NULL; |
216 | newMWindow->CurrentTab = NULL; |
217 | newMWindow->SystemView = newSv; |
ec25ff5e |
218 | newMWindow->Attributes = LTTV_IATTRIBUTE(g_object_new(LTTV_ATTRIBUTE_TYPE, NULL)); |
219 | newMWindow->traceset_context = LTTV_TRACESET_CONTEXT(gTracesetContext); |
220 | newMWindow->traceset = (LTTV_TRACESET_CONTEXT(gTracesetContext))->ts; |
221 | g_object_ref(gTracesetContext); |
561eba2a |
222 | |
223 | //test yxx |
37d0eca6 |
224 | g_assert(lttv_iattribute_find_by_path(attributes, |
225 | "viewers/menu", LTTV_POINTER, &value)); |
226 | menu = (LttvMenus*)*(value.v_pointer); |
227 | |
228 | if(menu){ |
229 | for(i=0;i<menu->len;i++){ |
230 | menuItem = &g_array_index(menu, lttv_menu_closure, i); |
231 | constructor = menuItem->con; |
232 | ToolMenuTitle_menu = lookup_widget(newMWindow->MWindow,"ToolMenuTitle_menu"); |
233 | insert_view = gtk_menu_item_new_with_mnemonic (menuItem->menuText); |
234 | gtk_widget_show (insert_view); |
235 | gtk_container_add (GTK_CONTAINER (ToolMenuTitle_menu), insert_view); |
236 | g_signal_connect ((gpointer) insert_view, "activate", |
237 | G_CALLBACK (insertViewTest), |
238 | constructor); |
239 | } |
240 | } |
241 | g_assert(lttv_iattribute_find_by_path(attributes, |
242 | "viewers/toolbar", LTTV_POINTER, &value)); |
243 | toolbar = (LttvToolbars*)*(value.v_pointer); |
244 | |
245 | if(toolbar){ |
246 | for(i=0;i<toolbar->len;i++){ |
247 | toolbarItem = &g_array_index(toolbar, lttv_toolbar_closure, i); |
248 | constructor = toolbarItem->con; |
249 | ToolMenuTitle_menu = lookup_widget(newMWindow->MWindow,"MToolbar2"); |
250 | pixbuf = gdk_pixbuf_new_from_xpm_data ((const char**)toolbarItem->pixmap); |
251 | pixmap = gtk_image_new_from_pixbuf(pixbuf); |
252 | insert_view = gtk_toolbar_append_element (GTK_TOOLBAR (ToolMenuTitle_menu), |
253 | GTK_TOOLBAR_CHILD_BUTTON, |
254 | NULL, |
255 | "", |
256 | toolbarItem->tooltip, NULL, |
257 | pixmap, NULL, NULL); |
258 | gtk_label_set_use_underline (GTK_LABEL (((GtkToolbarChild*) (g_list_last (GTK_TOOLBAR (ToolMenuTitle_menu)->children)->data))->label), TRUE); |
259 | gtk_widget_show (insert_view); |
260 | gtk_container_set_border_width (GTK_CONTAINER (insert_view), 1); |
261 | g_signal_connect ((gpointer) insert_view, "clicked",G_CALLBACK (insertViewTest),constructor); |
262 | } |
263 | } |
561eba2a |
264 | //end |
265 | |
266 | g_object_set_data(G_OBJECT(newWindow), "systemView", (gpointer)newSv); |
267 | g_object_set_data(G_OBJECT(newWindow), "mainWindow", (gpointer)newMWindow); |
268 | |
269 | if(clone){ |
270 | g_printf("Clone : use the same traceset\n"); |
271 | }else{ |
272 | g_printf("Empty : traceset is set to NULL\n"); |
273 | } |
274 | } |
275 | |
276 | void move_up_viewer(GtkWidget * widget, gpointer user_data) |
277 | { |
278 | mainWindow * mw = get_window_data_struct(widget); |
279 | if(!mw->CurrentTab) return; |
280 | gtk_custom_widget_move_up(mw->CurrentTab->custom); |
281 | } |
282 | |
283 | void move_down_viewer(GtkWidget * widget, gpointer user_data) |
284 | { |
285 | mainWindow * mw = get_window_data_struct(widget); |
286 | if(!mw->CurrentTab) return; |
287 | gtk_custom_widget_move_down(mw->CurrentTab->custom); |
288 | } |
289 | |
290 | void delete_viewer(GtkWidget * widget, gpointer user_data) |
291 | { |
292 | mainWindow * mw = get_window_data_struct(widget); |
293 | if(!mw->CurrentTab) return; |
294 | gtk_custom_widget_delete(mw->CurrentTab->custom); |
295 | } |
296 | |
297 | void open_traceset(GtkWidget * widget, gpointer user_data) |
298 | { |
299 | g_printf("Open a trace set\n"); |
300 | } |
301 | |
302 | void add_trace(GtkWidget * widget, gpointer user_data) |
303 | { |
304 | g_printf("add a trace to a trace set\n"); |
305 | } |
306 | |
307 | void remove_trace(GtkWidget * widget, gpointer user_data) |
308 | { |
309 | g_printf("remove a trace from a trace set\n"); |
310 | } |
311 | |
312 | void save(GtkWidget * widget, gpointer user_data) |
313 | { |
314 | g_printf("Save\n"); |
315 | } |
316 | |
317 | void save_as(GtkWidget * widget, gpointer user_data) |
318 | { |
319 | g_printf("Save as\n"); |
320 | } |
321 | |
322 | void zoom_in(GtkWidget * widget, gpointer user_data) |
323 | { |
324 | g_printf("Zoom in\n"); |
325 | } |
326 | |
327 | void zoom_out(GtkWidget * widget, gpointer user_data) |
328 | { |
329 | g_printf("Zoom out\n"); |
330 | } |
331 | |
332 | void zoom_extended(GtkWidget * widget, gpointer user_data) |
333 | { |
334 | g_printf("Zoom extended\n"); |
335 | } |
336 | |
337 | void go_to_time(GtkWidget * widget, gpointer user_data) |
338 | { |
339 | g_printf("Go to time\n"); |
340 | } |
341 | |
342 | void show_time_frame(GtkWidget * widget, gpointer user_data) |
343 | { |
344 | g_printf("Show time frame\n"); |
345 | } |
346 | |
347 | |
348 | /* callback function */ |
349 | |
350 | void |
351 | on_empty_traceset_activate (GtkMenuItem *menuitem, |
352 | gpointer user_data) |
353 | { |
354 | createNewWindow((GtkWidget*)menuitem, user_data, FALSE); |
355 | } |
356 | |
357 | |
358 | void |
359 | on_clone_traceset_activate (GtkMenuItem *menuitem, |
360 | gpointer user_data) |
361 | { |
362 | createNewWindow((GtkWidget*)menuitem, user_data, TRUE); |
363 | } |
364 | |
365 | |
366 | void |
367 | on_tab_activate (GtkMenuItem *menuitem, |
368 | gpointer user_data) |
369 | { |
370 | GList * list; |
371 | gchar label[64]; |
372 | |
373 | tab * tmpTab; |
374 | GtkWidget * pane; |
375 | mainWindow * mwData; |
376 | GtkNotebook * notebook = (GtkNotebook *)lookup_widget((GtkWidget*)menuitem, "MNotebook"); |
377 | if(notebook == NULL){ |
378 | g_printf("Notebook does not exist\n"); |
379 | return; |
380 | } |
381 | |
382 | mwData = get_window_data_struct((GtkWidget*)menuitem); |
383 | |
384 | tmpTab = mwData->Tab; |
385 | while(tmpTab && tmpTab->Next) tmpTab = tmpTab->Next; |
386 | if(!tmpTab){ |
ec25ff5e |
387 | mwData->CurrentTab = NULL; |
561eba2a |
388 | tmpTab = g_new(tab,1); |
ec25ff5e |
389 | tmpTab->traceStartTime.tv_sec = 0; |
390 | tmpTab->traceStartTime.tv_nsec = 0; |
391 | tmpTab->traceEndTime.tv_sec = G_MAXULONG; |
392 | tmpTab->traceEndTime.tv_nsec = G_MAXULONG; |
393 | tmpTab->startTime.tv_sec = 0; |
394 | tmpTab->startTime.tv_nsec = 0; |
395 | tmpTab->endTime.tv_sec = G_MAXULONG; |
396 | tmpTab->endTime.tv_nsec = G_MAXULONG; |
397 | tmpTab->currentTime.tv_sec = 0; |
398 | tmpTab->currentTime.tv_nsec = 0; |
399 | mwData->Tab = tmpTab; |
561eba2a |
400 | }else{ |
401 | tmpTab->Next = g_new(tab,1); |
402 | tmpTab = tmpTab->Next; |
403 | } |
ec25ff5e |
404 | if(mwData->CurrentTab){ |
405 | tmpTab->traceStartTime = mwData->CurrentTab->traceStartTime; |
406 | tmpTab->traceEndTime = mwData->CurrentTab->traceEndTime; |
407 | tmpTab->startTime = mwData->CurrentTab->startTime; |
408 | tmpTab->endTime = mwData->CurrentTab->endTime; |
409 | tmpTab->currentTime = mwData->CurrentTab->currentTime; |
410 | } |
411 | tmpTab->Attributes = LTTV_IATTRIBUTE(g_object_new(LTTV_ATTRIBUTE_TYPE, NULL)); |
561eba2a |
412 | // mwData->CurrentTab = tmpTab; |
413 | tmpTab->custom = (GtkCustom*)gtk_custom_new(); |
414 | gtk_widget_show((GtkWidget*)tmpTab->custom); |
415 | tmpTab->Next = NULL; |
416 | |
417 | get_label((GtkWindow*)mwData->MWindow, label); |
418 | tmpTab->label = gtk_label_new (label); |
419 | gtk_widget_show (tmpTab->label); |
420 | |
421 | gtk_notebook_append_page(notebook, (GtkWidget*)tmpTab->custom, tmpTab->label); |
422 | |
423 | list = gtk_container_get_children(GTK_CONTAINER(notebook)); |
424 | gtk_notebook_set_current_page(notebook,g_list_length(list)-1); |
425 | } |
426 | |
427 | |
428 | void |
429 | on_open_activate (GtkMenuItem *menuitem, |
430 | gpointer user_data) |
431 | { |
432 | open_traceset((GtkWidget*)menuitem, user_data); |
433 | } |
434 | |
435 | |
436 | void |
437 | on_close_activate (GtkMenuItem *menuitem, |
438 | gpointer user_data) |
439 | { |
440 | g_printf("Close\n"); |
441 | } |
442 | |
443 | |
444 | void |
445 | on_close_tab_activate (GtkMenuItem *menuitem, |
446 | gpointer user_data) |
447 | { |
448 | g_printf("Close tab\n"); |
449 | } |
450 | |
451 | |
452 | void |
453 | on_add_trace_activate (GtkMenuItem *menuitem, |
454 | gpointer user_data) |
455 | { |
456 | add_trace((GtkWidget*)menuitem, user_data); |
457 | } |
458 | |
459 | |
460 | void |
461 | on_remove_trace_activate (GtkMenuItem *menuitem, |
462 | gpointer user_data) |
463 | { |
464 | remove_trace((GtkWidget*)menuitem, user_data); |
465 | } |
466 | |
467 | |
468 | void |
469 | on_save_activate (GtkMenuItem *menuitem, |
470 | gpointer user_data) |
471 | { |
472 | save((GtkWidget*)menuitem, user_data); |
473 | } |
474 | |
475 | |
476 | void |
477 | on_save_as_activate (GtkMenuItem *menuitem, |
478 | gpointer user_data) |
479 | { |
480 | save_as((GtkWidget*)menuitem, user_data); |
481 | } |
482 | |
483 | |
484 | void |
485 | on_quit_activate (GtkMenuItem *menuitem, |
486 | gpointer user_data) |
487 | { |
488 | on_MWindow_destroy(GTK_OBJECT(menuitem), user_data); |
489 | } |
490 | |
491 | |
492 | void |
493 | on_cut_activate (GtkMenuItem *menuitem, |
494 | gpointer user_data) |
495 | { |
496 | g_printf("Cut\n"); |
497 | } |
498 | |
499 | |
500 | void |
501 | on_copy_activate (GtkMenuItem *menuitem, |
502 | gpointer user_data) |
503 | { |
504 | g_printf("Copye\n"); |
505 | } |
506 | |
507 | |
508 | void |
509 | on_paste_activate (GtkMenuItem *menuitem, |
510 | gpointer user_data) |
511 | { |
512 | g_printf("Paste\n"); |
513 | } |
514 | |
515 | |
516 | void |
517 | on_delete_activate (GtkMenuItem *menuitem, |
518 | gpointer user_data) |
519 | { |
520 | g_printf("Delete\n"); |
521 | } |
522 | |
523 | |
524 | void |
525 | on_zoom_in_activate (GtkMenuItem *menuitem, |
526 | gpointer user_data) |
527 | { |
528 | zoom_in((GtkWidget*)menuitem, user_data); |
529 | } |
530 | |
531 | |
532 | void |
533 | on_zoom_out_activate (GtkMenuItem *menuitem, |
534 | gpointer user_data) |
535 | { |
536 | zoom_out((GtkWidget*)menuitem, user_data); |
537 | } |
538 | |
539 | |
540 | void |
541 | on_zoom_extended_activate (GtkMenuItem *menuitem, |
542 | gpointer user_data) |
543 | { |
544 | zoom_extended((GtkWidget*)menuitem, user_data); |
545 | } |
546 | |
547 | |
548 | void |
549 | on_go_to_time_activate (GtkMenuItem *menuitem, |
550 | gpointer user_data) |
551 | { |
552 | go_to_time((GtkWidget*)menuitem, user_data); |
553 | } |
554 | |
555 | |
556 | void |
557 | on_show_time_frame_activate (GtkMenuItem *menuitem, |
558 | gpointer user_data) |
559 | { |
560 | show_time_frame((GtkWidget*)menuitem, user_data); |
561 | } |
562 | |
563 | |
564 | void |
565 | on_move_viewer_up_activate (GtkMenuItem *menuitem, |
566 | gpointer user_data) |
567 | { |
568 | move_up_viewer((GtkWidget*)menuitem, user_data); |
569 | } |
570 | |
571 | |
572 | void |
573 | on_move_viewer_down_activate (GtkMenuItem *menuitem, |
574 | gpointer user_data) |
575 | { |
576 | move_down_viewer((GtkWidget*)menuitem, user_data); |
577 | } |
578 | |
579 | |
580 | void |
581 | on_remove_viewer_activate (GtkMenuItem *menuitem, |
582 | gpointer user_data) |
583 | { |
584 | delete_viewer((GtkWidget*)menuitem, user_data); |
585 | } |
586 | |
587 | |
588 | void |
589 | on_load_module_activate (GtkMenuItem *menuitem, |
590 | gpointer user_data) |
591 | { |
592 | g_printf("Load module\n"); |
593 | } |
594 | |
595 | |
596 | void |
597 | on_unload_module_activate (GtkMenuItem *menuitem, |
598 | gpointer user_data) |
599 | { |
600 | g_printf("Unload module\n"); |
601 | } |
602 | |
603 | |
604 | void |
605 | on_add_module_search_path_activate (GtkMenuItem *menuitem, |
606 | gpointer user_data) |
607 | { |
608 | g_printf("Add module search path\n"); |
609 | } |
610 | |
611 | |
612 | void |
613 | on_color_activate (GtkMenuItem *menuitem, |
614 | gpointer user_data) |
615 | { |
616 | g_printf("Color\n"); |
617 | } |
618 | |
619 | |
620 | void |
621 | on_filter_activate (GtkMenuItem *menuitem, |
622 | gpointer user_data) |
623 | { |
624 | g_printf("Filter\n"); |
625 | } |
626 | |
627 | |
628 | void |
629 | on_save_configuration_activate (GtkMenuItem *menuitem, |
630 | gpointer user_data) |
631 | { |
632 | g_printf("Save configuration\n"); |
633 | } |
634 | |
635 | |
636 | void |
637 | on_content_activate (GtkMenuItem *menuitem, |
638 | gpointer user_data) |
639 | { |
640 | g_printf("Content\n"); |
641 | } |
642 | |
643 | |
644 | void |
645 | on_about_activate (GtkMenuItem *menuitem, |
646 | gpointer user_data) |
647 | { |
648 | g_printf("About...\n"); |
649 | } |
650 | |
651 | |
652 | void |
653 | on_button_new_clicked (GtkButton *button, |
654 | gpointer user_data) |
655 | { |
656 | createNewWindow((GtkWidget*)button, user_data, FALSE); |
657 | } |
658 | |
659 | |
660 | void |
661 | on_button_open_clicked (GtkButton *button, |
662 | gpointer user_data) |
663 | { |
664 | open_traceset((GtkWidget*)button, user_data); |
665 | } |
666 | |
667 | |
668 | void |
669 | on_button_add_trace_clicked (GtkButton *button, |
670 | gpointer user_data) |
671 | { |
672 | add_trace((GtkWidget*)button, user_data); |
673 | } |
674 | |
675 | |
676 | void |
677 | on_button_remove_trace_clicked (GtkButton *button, |
678 | gpointer user_data) |
679 | { |
680 | remove_trace((GtkWidget*)button, user_data); |
681 | } |
682 | |
683 | |
684 | void |
685 | on_button_save_clicked (GtkButton *button, |
686 | gpointer user_data) |
687 | { |
688 | save((GtkWidget*)button, user_data); |
689 | } |
690 | |
691 | |
692 | void |
693 | on_button_save_as_clicked (GtkButton *button, |
694 | gpointer user_data) |
695 | { |
696 | save_as((GtkWidget*)button, user_data); |
697 | } |
698 | |
699 | |
700 | void |
701 | on_button_zoom_in_clicked (GtkButton *button, |
702 | gpointer user_data) |
703 | { |
704 | zoom_in((GtkWidget*)button, user_data); |
705 | } |
706 | |
707 | |
708 | void |
709 | on_button_zoom_out_clicked (GtkButton *button, |
710 | gpointer user_data) |
711 | { |
712 | zoom_out((GtkWidget*)button, user_data); |
713 | } |
714 | |
715 | |
716 | void |
717 | on_button_zoom_extended_clicked (GtkButton *button, |
718 | gpointer user_data) |
719 | { |
720 | zoom_extended((GtkWidget*)button, user_data); |
721 | } |
722 | |
723 | |
724 | void |
725 | on_button_go_to_time_clicked (GtkButton *button, |
726 | gpointer user_data) |
727 | { |
728 | go_to_time((GtkWidget*)button, user_data); |
729 | } |
730 | |
731 | |
732 | void |
733 | on_button_show_time_frame_clicked (GtkButton *button, |
734 | gpointer user_data) |
735 | { |
736 | show_time_frame((GtkWidget*)button, user_data); |
737 | } |
738 | |
739 | |
740 | void |
741 | on_button_move_up_clicked (GtkButton *button, |
742 | gpointer user_data) |
743 | { |
744 | move_up_viewer((GtkWidget*)button, user_data); |
745 | } |
746 | |
747 | |
748 | void |
749 | on_button_move_down_clicked (GtkButton *button, |
750 | gpointer user_data) |
751 | { |
752 | move_down_viewer((GtkWidget*)button, user_data); |
753 | } |
754 | |
755 | |
756 | void |
757 | on_button_delete_viewer_clicked (GtkButton *button, |
758 | gpointer user_data) |
759 | { |
760 | delete_viewer((GtkWidget*)button, user_data); |
761 | } |
762 | |
763 | void |
764 | on_MWindow_destroy (GtkObject *object, |
765 | gpointer user_data) |
766 | { |
767 | systemView * sv = gSysView; |
768 | gint count = 0; |
769 | while(sv->Next){ |
770 | g_printf("There are : %d windows\n",++count); |
771 | sv = sv->Next; |
772 | } |
773 | g_printf("There are : %d windows\n",++count); |
774 | |
775 | gtk_main_quit (); |
776 | |
777 | } |
778 | |
779 | |
780 | void |
781 | on_MNotebook_switch_page (GtkNotebook *notebook, |
782 | GtkNotebookPage *page, |
783 | guint page_num, |
784 | gpointer user_data) |
785 | { |
786 | mainWindow * mw = get_window_data_struct((GtkWidget*)notebook); |
787 | tab * Tab = mw->Tab; |
788 | |
789 | while(page_num){ |
790 | Tab = Tab->Next; |
791 | page_num--; |
792 | } |
793 | mw->CurrentTab = Tab; |
794 | } |
795 | |