29 #include "../model/StringTable.hpp"
30 #include "../CompiledStrings.hpp"
53 string string_table_filename = string(HOMEDIR)
54 +
"/.cebl/conf/gui-string-table-en.txt";
64 for(
unsigned int i=0;i<tabs.size();i++)
67 delete interface_combo;
76 gboolean CEBLViewGTK::CB_WindowDelete(GtkWidget *widget,
77 GdkEvent *event,gpointer data)
80 for(
unsigned int i=0; i<view->tabs.size();i++)
82 view->tabs[i]->onHide();
86 void CEBLViewGTK::CB_WindowDestroy(GtkWidget *widget, gpointer data)
105 gtk_widget_show(main_container);
107 gtk_widget_show(main_window);
118 void CEBLViewGTK::CreateMainWindow()
120 main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
122 gtk_window_set_title(GTK_WINDOW(main_window),
"CSU Electroencepholagram Brain-Computer Interface Lab (CEBL)");
125 GtkStyle *style = gtk_rc_get_style(main_window);
126 BG_RED = style->bg[0].red;
127 BG_GREEN = style->bg[0].green;
128 BG_BLUE = style->bg[0].blue;
131 gtk_window_set_default_size(GTK_WINDOW(main_window), WINDOW_WIDTH, WINDOW_HEIGHT);
132 gtk_container_set_border_width(GTK_CONTAINER(main_window),2);
135 g_signal_connect (G_OBJECT (main_window),
"delete_event",
136 G_CALLBACK (CB_WindowDelete),
this);
137 g_signal_connect (G_OBJECT (main_window),
"destroy",
138 G_CALLBACK (CB_WindowDestroy),
this);
146 void CEBLViewGTK::CreateLayout()
150 main_container = gtk_vbox_new(
false,0);
151 gtk_container_add(GTK_CONTAINER(main_window), main_container);
158 main_menu->
attachMenu(main_window,main_container);
165 GtkWidget * main_pane = gtk_hpaned_new();
166 gtk_box_pack_start(GTK_BOX(main_container),main_pane,
true,
true, 1);
167 gtk_widget_show(main_pane);
169 GtkWidget *right_container = gtk_vbox_new(
false,0);
170 gtk_widget_show(right_container);
171 gtk_paned_pack2(GTK_PANED(main_pane), right_container,
true,
false);
178 GtkWidget *align = gtk_alignment_new(0,0,0,1);
181 gtk_widget_show_all(align);
182 gtk_box_pack_start(GTK_BOX(right_container), align,
false,
true, 5);
185 main_notebook = gtk_notebook_new();
186 gtk_box_pack_start(GTK_BOX(right_container), main_notebook,
true,
true, 0);
189 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(main_notebook), GTK_POS_LEFT);
196 tabs.push_back(
new TabEEGRecording(
"EEG Recording", main_notebook,
this));
197 tabs.push_back(
new TabDevice(
"EEG Data Source", main_notebook,
this));
198 tabs.push_back(
new TabMonitor(
"Monitor", main_notebook,
this));
199 tabs.push_back(
new TabFilter(
"Filter", main_notebook,
this));
200 tabs.push_back(
new TabFeatures(
"Features", main_notebook,
this));
201 tabs.push_back(
new TabClassifiers(
"Classifiers", main_notebook,
this));
202 tabs.push_back(
new TabDecision(
"Decision Process", main_notebook,
this));
203 tabs.push_back(
new TabTraining(
"Training", main_notebook,
this));
209 gtk_widget_show(main_notebook);
212 g_signal_connect(G_OBJECT(main_notebook),
214 G_CALLBACK(CB_ChangeTab),
219 gtk_box_pack_end(GTK_BOX(main_container), info_bar->
getContainer(),
false,
false, 1);
221 gtk_box_pack_end(GTK_BOX(main_container), status_bar->getContainer(),
false,
false, 1);
231 void CEBLViewGTK::CB_ChangeTab(GtkNotebook *notebook,
232 GtkNotebookPage *page,
239 if(view->old_page >= 0
240 && view->old_page <
int(view->tabs.size()))
242 view->tabs[view->old_page]->onHide();
243 view->tabs[view->old_page]->updateModel();
246 view->tabs[page_num]->onShow();
247 view->tabs[page_num]->updateView();
248 view->old_page = page_num;
256 if(this->old_page >= 0
257 && this->old_page <
int(this->tabs.size()))
259 tabs[this->old_page]->updateView();
269 if(this->old_page >= 0
270 && this->old_page <
int(this->tabs.size()))
272 tabs[this->old_page]->updateModel();