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