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