12 this->parent_tab = parent;
18 this->num_channels = nchannels;
20 num_display_samples = 0;
26 GtkWidget *container = gtk_vbox_new(
false, 0);
27 plot_box = gtk_vbox_new(
false, 0);
28 scroll_window = gtk_scrolled_window_new(NULL,NULL);
29 gtk_container_border_width(GTK_CONTAINER(scroll_window),0);
30 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window),
31 GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
32 gtk_box_pack_start(GTK_BOX(container),scroll_window,
true,
true, 0);
36 box_controls = gtk_hbox_new(
false, 0);
39 spin_samples = gtk_spin_button_new_with_range(1, MAXINT, 1);
40 gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin_samples),1);
41 gtk_widget_set_size_request(spin_samples, 80, 25);
42 g_signal_connect(G_OBJECT(spin_samples),
44 G_CALLBACK(CB_ChangeNumSamples),
47 spin_zoom = gtk_spin_button_new_with_range(.01, 500, .01);
48 gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin_zoom),zoom);
49 gtk_widget_set_size_request(spin_zoom, 80, 25);
50 g_signal_connect(G_OBJECT(spin_zoom),
52 G_CALLBACK(CB_ChangeZoom),
56 gtk_box_pack_start(GTK_BOX(box_controls),gtk_label_new(
"Currently displaying "),
false,
false,2);
57 gtk_box_pack_start(GTK_BOX(box_controls),spin_samples,
false,
false,2);
58 gtk_box_pack_start(GTK_BOX(box_controls),gtk_label_new(
" samples at a time."),
false,
false,2);
60 gtk_box_pack_end(GTK_BOX(box_controls),spin_zoom,
false,
false,2);
61 gtk_box_pack_end(GTK_BOX(box_controls),gtk_label_new(
"Zoom: "),
false,
false,2);
63 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll_window),plot_box);
64 gtk_box_pack_start(GTK_BOX(container),box_controls,
false,
false,5);
78 this->num_channels =
min(this->num_channels,72);
79 plot =
new EEGPlot(this->num_channels);
82 if(labels.size() == 0 || labels[0] ==
"1")
85 for(
int i=0; i<num_channels; i++)
94 int window_height = 0;
97 gtk_window_get_size(GTK_WINDOW(parent_tab->
getView()->
getMainWindow()),&window_width,&window_height);
103 gtk_window_get_size(GTK_WINDOW(this->
detached_window),&window_width,&window_height);
105 if(num_display_samples==0)
106 num_display_samples = window_width;
117 gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin_samples),num_display_samples);
121 gtk_box_pack_start(GTK_BOX(plot_box), (*plot),
true,
true, 0);
132 this->num_channels = nchannels;
133 this->num_channels =
min(nchannels,72);
144 gtk_container_remove(GTK_CONTAINER(plot_box),(*plot));
177 gtk_widget_hide(box_controls);
178 gtk_widget_hide(box_controls2);
182 gtk_widget_show(box_controls);
183 gtk_widget_show(box_controls2);
191 this->labels = labels;
203 gtk_spin_button_set_value(GTK_SPIN_BUTTON(this->spin_zoom),zoom);
210 this->num_display_samples = n;
215 gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin_samples),n);
223 if(data.size2() < 1 || plot == NULL)
241 void EEGMonitor::CB_ChangeNumSamples(GtkWidget *spin, gpointer data)
245 monitor->num_display_samples = int(gtk_spin_button_get_value(GTK_SPIN_BUTTON(monitor->spin_samples)));
246 if(monitor->plot != NULL)
251 void EEGMonitor::CB_ChangeZoom(GtkWidget *spin, gpointer data)
254 monitor->zoom = double(gtk_spin_button_get_value(GTK_SPIN_BUTTON(monitor->spin_zoom)));
255 if(monitor->plot != NULL)
256 monitor->plot->
setZoom(monitor->zoom);