25 this->updating_view =
false;
26 this->selected_interface = 0;
31 this->interfaces.push_back(
"Simple Pie");
32 this->interface_pointers.push_back(NULL);
33 this->interfaces.push_back(
"Keyboard Pie");
34 this->interface_pointers.push_back(NULL);
35 this->interfaces.push_back(
"Robot Pie");
36 this->interface_pointers.push_back(NULL);
37 this->interfaces.push_back(
"Cursor Pie");
38 this->interface_pointers.push_back(NULL);
44 for(
unsigned int i=0;i < interface_pointers.size();i++)
46 if(this->interface_pointers[this->selected_interface] != NULL)
47 delete this->interface_pointers[i];
56 EEGInterface * ret = this->interface_pointers[this->selected_interface];
60 if(this->interfaces[this->selected_interface] ==
"Simple Pie")
62 this->interface_pointers[this->selected_interface] =
new PieInterface();
64 else if(this->interfaces[this->selected_interface] ==
"Keyboard Pie")
66 this->interface_pointers[this->selected_interface] =
new KeyboardPie();
68 else if(this->interfaces[this->selected_interface] ==
"Robot Pie")
70 this->interface_pointers[this->selected_interface] =
new RobotPie();
72 else if(this->interfaces[this->selected_interface] ==
"Cursor Pie")
74 this->interface_pointers[this->selected_interface] =
new CursorPie();
76 ret = this->interface_pointers[this->selected_interface];
87 GtkWidget* combo = gtk_combo_box_new_text();
89 this->combos.push_back(combo);
90 this->num_interfaces.push_back(0);
91 this->updateComboBox(combos.size()-1);
93 g_signal_connect(G_OBJECT(combo),
95 G_CALLBACK(CB_changeInterface),
103 this->updating_view =
true;
104 for (
unsigned int i=0;i<combos.size();i++)
106 this->updateComboBox(i);
108 this->updating_view =
false;
113 void InterfaceCombo::updateComboBox(
int index)
115 GtkWidget * combo = combos[index];
116 int num_interfaces = this->num_interfaces[index];
119 for(
int i=num_interfaces-1;i>=0;i--)
121 gtk_combo_box_remove_text(GTK_COMBO_BOX(combo),i);
128 num_interfaces = interfaces.size();
130 int selected = this->selected_interface;
131 for(
int i=0;i<num_interfaces;i++)
133 gtk_combo_box_append_text(GTK_COMBO_BOX(combo),interfaces[i].c_str());
135 gtk_combo_box_set_active(GTK_COMBO_BOX(combo),selected);
136 this->num_interfaces[index] = num_interfaces;
142 return this->selected_interface;
146 void InterfaceCombo::CB_changeInterface(GtkWidget * w, gpointer data)
149 if(!d->updating_view)
151 string selected_text = gtk_combo_box_get_active_text(GTK_COMBO_BOX(w));
152 for(
unsigned int i=0; i < d->interfaces.size();i++)
153 if(selected_text==d->interfaces[i])
154 d->selected_interface = i;