bsnes/snespurify/phoenix/gtk/widget/combo-box.cpp

34 lines
905 B
C++
Executable File

static void ComboBox_change(ComboBox *self) {
if(self->p.locked == false && self->onChange) self->onChange();
}
void pComboBox::append(const string &text) {
gtk_combo_box_append_text(GTK_COMBO_BOX(gtkWidget), text);
if(itemCounter++ == 0) setSelection(0);
}
void pComboBox::reset() {
locked = true;
for(signed n = itemCounter - 1; n >= 0; n--) {
gtk_combo_box_remove_text(GTK_COMBO_BOX(gtkWidget), n);
}
itemCounter = 0;
locked = false;
}
unsigned pComboBox::selection() {
return gtk_combo_box_get_active(GTK_COMBO_BOX(gtkWidget));
}
void pComboBox::setSelection(unsigned row) {
locked = true;
gtk_combo_box_set_active(GTK_COMBO_BOX(gtkWidget), row);
locked = false;
}
void pComboBox::constructor() {
itemCounter = 0;
gtkWidget = gtk_combo_box_new_text();
g_signal_connect_swapped(G_OBJECT(gtkWidget), "changed", G_CALLBACK(ComboBox_change), (gpointer)&comboBox);
}