11 #include "mainWindow.h"
14 extern systemView
* gSysView
;
16 typedef void (*call_Event_Selected_Hook
)(void * call_data
);
17 extern call_Event_Selected_Hook selected_hook
;
18 extern view_constructor gConstructor
;
20 mainWindow
* get_window_data_struct(GtkWidget
* widget
);
23 void insertView(GtkWidget
* widget
, view_constructor constructor
);
26 on_textview1_grab_focus (GtkTextView
*text_view
,
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
);
37 insertViewTest(GtkMenuItem
*menuitem
, gpointer user_data
)
40 insertView((GtkWidget
*)menuitem
, gConstructor
);
45 on_insert_viewer_test_activate (GtkMenuItem
*menuitem
,
48 GtkWidget
*scrolledwindow1
, *textview1
, *label
;
55 mwData
= get_window_data_struct((GtkWidget
*)menuitem
);
56 if(!mwData
->CurrentTab
) return;
57 custom
= mwData
->CurrentTab
->custom
;
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
);
65 gtk_custom_widget_add(custom
, scrolledwindow1
);
66 gtk_widget_set_size_request ((GtkWidget
*)scrolledwindow1
, 800, 100);
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);
75 g_signal_connect ((gpointer
) textview1
, "grab_focus",
76 G_CALLBACK (on_textview1_grab_focus
), custom
);
79 /* end of test part */
82 /* internal functions */
83 void insertView(GtkWidget
* widget
, view_constructor constructor
)
88 mwData
= get_window_data_struct(widget
);
89 if(!mwData
->CurrentTab
) return;
90 custom
= mwData
->CurrentTab
->custom
;
92 gtk_custom_widget_add(custom
, (GtkWidget
*)constructor(mwData
));
95 void get_label_string (GtkWidget
* text
, gchar
* label
)
97 GtkEntry
* entry
= (GtkEntry
*)text
;
98 if(strlen(gtk_entry_get_text(entry
))!=0)
99 strcpy(label
,gtk_entry_get_text(entry
));
102 void get_label(GtkWindow
* mw
, gchar
* str
)
104 GtkWidget
* dialogue
;
109 strcpy(str
,"Page"); //default label
111 dialogue
= gtk_dialog_new_with_buttons("Get the name of the tab",mw
,
113 GTK_STOCK_OK
,GTK_RESPONSE_ACCEPT
,
114 GTK_STOCK_CANCEL
,GTK_RESPONSE_REJECT
,
117 label
= gtk_label_new("Please input tab's name");
118 gtk_widget_show(label
);
120 text
= gtk_entry_new();
121 gtk_widget_show(text
);
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);
126 id
= gtk_dialog_run(GTK_DIALOG(dialogue
));
128 case GTK_RESPONSE_ACCEPT
:
129 get_label_string(text
,str
);
130 gtk_widget_destroy(dialogue
);
132 case GTK_RESPONSE_REJECT
:
134 gtk_widget_destroy(dialogue
);
139 mainWindow
* get_window_data_struct(GtkWidget
* widget
)
144 mw
= lookup_widget(widget
, "MWindow");
146 g_printf("Main window does not exist\n");
150 mwData
= (mainWindow
*) g_object_get_data(G_OBJECT(mw
),"mainWindow");
152 g_printf("Main window data does not exist\n");
158 void createNewWindow(GtkWidget
* widget
, gpointer user_data
, gboolean clone
)
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 */
167 GtkWidget
* ToolMenuTitle_menu
, *insert_view
;
170 mw
= lookup_widget (widget
, "MWindow");
172 g_printf("Can not find main window\n");
176 sv
= (systemView
*)g_object_get_data(G_OBJECT(mw
),"systemView");
178 g_printf("Can not find system view\n");
182 newMWindow
= g_new(mainWindow
, 1);
183 newWindow
= create_MWindow();
184 gtk_widget_show (newWindow
);
187 newSv
= g_new(systemView
, 1);
188 while(sv
->Next
) sv
= sv
->Next
;
191 newSv
->EventDB
= NULL
;
192 newSv
->SystemInfo
= NULL
;
193 newSv
->Options
= NULL
;
195 newSv
->Window
= newMWindow
;
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));
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
),
213 g_object_set_data(G_OBJECT(newWindow
), "systemView", (gpointer
)newSv
);
214 g_object_set_data(G_OBJECT(newWindow
), "mainWindow", (gpointer
)newMWindow
);
217 g_printf("Clone : use the same traceset\n");
219 g_printf("Empty : traceset is set to NULL\n");
223 void move_up_viewer(GtkWidget
* widget
, gpointer user_data
)
225 mainWindow
* mw
= get_window_data_struct(widget
);
226 if(!mw
->CurrentTab
) return;
227 gtk_custom_widget_move_up(mw
->CurrentTab
->custom
);
230 void move_down_viewer(GtkWidget
* widget
, gpointer user_data
)
232 mainWindow
* mw
= get_window_data_struct(widget
);
233 if(!mw
->CurrentTab
) return;
234 gtk_custom_widget_move_down(mw
->CurrentTab
->custom
);
237 void delete_viewer(GtkWidget
* widget
, gpointer user_data
)
239 mainWindow
* mw
= get_window_data_struct(widget
);
240 if(!mw
->CurrentTab
) return;
241 gtk_custom_widget_delete(mw
->CurrentTab
->custom
);
244 void open_traceset(GtkWidget
* widget
, gpointer user_data
)
246 g_printf("Open a trace set\n");
249 void add_trace(GtkWidget
* widget
, gpointer user_data
)
251 g_printf("add a trace to a trace set\n");
254 void remove_trace(GtkWidget
* widget
, gpointer user_data
)
256 g_printf("remove a trace from a trace set\n");
259 void save(GtkWidget
* widget
, gpointer user_data
)
264 void save_as(GtkWidget
* widget
, gpointer user_data
)
266 g_printf("Save as\n");
269 void zoom_in(GtkWidget
* widget
, gpointer user_data
)
271 g_printf("Zoom in\n");
274 void zoom_out(GtkWidget
* widget
, gpointer user_data
)
276 g_printf("Zoom out\n");
279 void zoom_extended(GtkWidget
* widget
, gpointer user_data
)
281 g_printf("Zoom extended\n");
284 void go_to_time(GtkWidget
* widget
, gpointer user_data
)
286 g_printf("Go to time\n");
289 void show_time_frame(GtkWidget
* widget
, gpointer user_data
)
291 g_printf("Show time frame\n");
295 /* callback function */
298 on_empty_traceset_activate (GtkMenuItem
*menuitem
,
301 createNewWindow((GtkWidget
*)menuitem
, user_data
, FALSE
);
306 on_clone_traceset_activate (GtkMenuItem
*menuitem
,
309 createNewWindow((GtkWidget
*)menuitem
, user_data
, TRUE
);
314 on_tab_activate (GtkMenuItem
*menuitem
,
323 GtkNotebook
* notebook
= (GtkNotebook
*)lookup_widget((GtkWidget
*)menuitem
, "MNotebook");
324 if(notebook
== NULL
){
325 g_printf("Notebook does not exist\n");
329 mwData
= get_window_data_struct((GtkWidget
*)menuitem
);
331 tmpTab
= mwData
->Tab
;
332 while(tmpTab
&& tmpTab
->Next
) tmpTab
= tmpTab
->Next
;
334 tmpTab
= g_new(tab
,1);
335 mwData
->Tab
= tmpTab
;
337 tmpTab
->Next
= g_new(tab
,1);
338 tmpTab
= tmpTab
->Next
;
340 // mwData->CurrentTab = tmpTab;
341 tmpTab
->custom
= (GtkCustom
*)gtk_custom_new();
342 gtk_widget_show((GtkWidget
*)tmpTab
->custom
);
345 get_label((GtkWindow
*)mwData
->MWindow
, label
);
346 tmpTab
->label
= gtk_label_new (label
);
347 gtk_widget_show (tmpTab
->label
);
349 gtk_notebook_append_page(notebook
, (GtkWidget
*)tmpTab
->custom
, tmpTab
->label
);
351 list
= gtk_container_get_children(GTK_CONTAINER(notebook
));
352 gtk_notebook_set_current_page(notebook
,g_list_length(list
)-1);
357 on_open_activate (GtkMenuItem
*menuitem
,
360 open_traceset((GtkWidget
*)menuitem
, user_data
);
365 on_close_activate (GtkMenuItem
*menuitem
,
373 on_close_tab_activate (GtkMenuItem
*menuitem
,
376 g_printf("Close tab\n");
381 on_add_trace_activate (GtkMenuItem
*menuitem
,
384 add_trace((GtkWidget
*)menuitem
, user_data
);
389 on_remove_trace_activate (GtkMenuItem
*menuitem
,
392 remove_trace((GtkWidget
*)menuitem
, user_data
);
397 on_save_activate (GtkMenuItem
*menuitem
,
400 save((GtkWidget
*)menuitem
, user_data
);
405 on_save_as_activate (GtkMenuItem
*menuitem
,
408 save_as((GtkWidget
*)menuitem
, user_data
);
413 on_quit_activate (GtkMenuItem
*menuitem
,
416 on_MWindow_destroy(GTK_OBJECT(menuitem
), user_data
);
421 on_cut_activate (GtkMenuItem
*menuitem
,
429 on_copy_activate (GtkMenuItem
*menuitem
,
437 on_paste_activate (GtkMenuItem
*menuitem
,
445 on_delete_activate (GtkMenuItem
*menuitem
,
448 g_printf("Delete\n");
453 on_zoom_in_activate (GtkMenuItem
*menuitem
,
456 zoom_in((GtkWidget
*)menuitem
, user_data
);
461 on_zoom_out_activate (GtkMenuItem
*menuitem
,
464 zoom_out((GtkWidget
*)menuitem
, user_data
);
469 on_zoom_extended_activate (GtkMenuItem
*menuitem
,
472 zoom_extended((GtkWidget
*)menuitem
, user_data
);
477 on_go_to_time_activate (GtkMenuItem
*menuitem
,
480 go_to_time((GtkWidget
*)menuitem
, user_data
);
485 on_show_time_frame_activate (GtkMenuItem
*menuitem
,
488 show_time_frame((GtkWidget
*)menuitem
, user_data
);
493 on_move_viewer_up_activate (GtkMenuItem
*menuitem
,
496 move_up_viewer((GtkWidget
*)menuitem
, user_data
);
501 on_move_viewer_down_activate (GtkMenuItem
*menuitem
,
504 move_down_viewer((GtkWidget
*)menuitem
, user_data
);
509 on_remove_viewer_activate (GtkMenuItem
*menuitem
,
512 delete_viewer((GtkWidget
*)menuitem
, user_data
);
517 on_load_module_activate (GtkMenuItem
*menuitem
,
520 g_printf("Load module\n");
525 on_unload_module_activate (GtkMenuItem
*menuitem
,
528 g_printf("Unload module\n");
533 on_add_module_search_path_activate (GtkMenuItem
*menuitem
,
536 g_printf("Add module search path\n");
541 on_color_activate (GtkMenuItem
*menuitem
,
549 on_filter_activate (GtkMenuItem
*menuitem
,
552 g_printf("Filter\n");
557 on_save_configuration_activate (GtkMenuItem
*menuitem
,
560 g_printf("Save configuration\n");
565 on_content_activate (GtkMenuItem
*menuitem
,
568 g_printf("Content\n");
573 on_about_activate (GtkMenuItem
*menuitem
,
576 g_printf("About...\n");
581 on_button_new_clicked (GtkButton
*button
,
584 createNewWindow((GtkWidget
*)button
, user_data
, FALSE
);
589 on_button_open_clicked (GtkButton
*button
,
592 open_traceset((GtkWidget
*)button
, user_data
);
597 on_button_add_trace_clicked (GtkButton
*button
,
600 add_trace((GtkWidget
*)button
, user_data
);
605 on_button_remove_trace_clicked (GtkButton
*button
,
608 remove_trace((GtkWidget
*)button
, user_data
);
613 on_button_save_clicked (GtkButton
*button
,
616 save((GtkWidget
*)button
, user_data
);
621 on_button_save_as_clicked (GtkButton
*button
,
624 save_as((GtkWidget
*)button
, user_data
);
629 on_button_zoom_in_clicked (GtkButton
*button
,
632 zoom_in((GtkWidget
*)button
, user_data
);
637 on_button_zoom_out_clicked (GtkButton
*button
,
640 zoom_out((GtkWidget
*)button
, user_data
);
645 on_button_zoom_extended_clicked (GtkButton
*button
,
648 zoom_extended((GtkWidget
*)button
, user_data
);
653 on_button_go_to_time_clicked (GtkButton
*button
,
656 go_to_time((GtkWidget
*)button
, user_data
);
661 on_button_show_time_frame_clicked (GtkButton
*button
,
664 show_time_frame((GtkWidget
*)button
, user_data
);
669 on_button_move_up_clicked (GtkButton
*button
,
672 move_up_viewer((GtkWidget
*)button
, user_data
);
677 on_button_move_down_clicked (GtkButton
*button
,
680 move_down_viewer((GtkWidget
*)button
, user_data
);
685 on_button_delete_viewer_clicked (GtkButton
*button
,
688 delete_viewer((GtkWidget
*)button
, user_data
);
692 on_MWindow_destroy (GtkObject
*object
,
695 systemView
* sv
= gSysView
;
698 g_printf("There are : %d windows\n",++count
);
701 g_printf("There are : %d windows\n",++count
);
709 on_MNotebook_switch_page (GtkNotebook
*notebook
,
710 GtkNotebookPage
*page
,
714 mainWindow
* mw
= get_window_data_struct((GtkWidget
*)notebook
);
721 mw
->CurrentTab
= Tab
;