input device select combo box logic in work for GTK Gui.
This commit is contained in:
parent
5bfbbbba7e
commit
1331aeca14
|
@ -74,8 +74,9 @@ extern bool gtk_gui_run;
|
||||||
|
|
||||||
GtkWidget *MainWindow = NULL;
|
GtkWidget *MainWindow = NULL;
|
||||||
GtkWidget *evbox = NULL;
|
GtkWidget *evbox = NULL;
|
||||||
GtkWidget *padNoCombo = NULL;
|
static GtkWidget *padNoCombo = NULL;
|
||||||
GtkWidget *buttonMappings[10] = { NULL };
|
static GtkWidget *devSelCombo = NULL;
|
||||||
|
static GtkWidget *buttonMappings[10] = { NULL };
|
||||||
static GtkWidget *Menubar = NULL;
|
static GtkWidget *Menubar = NULL;
|
||||||
static GtkRadioMenuItem *stateSlot[10] = { NULL };
|
static GtkRadioMenuItem *stateSlot[10] = { NULL };
|
||||||
bool gtkIsStarted = false;
|
bool gtkIsStarted = false;
|
||||||
|
@ -739,15 +740,17 @@ static void closeGamepadConfig (GtkWidget * w, GdkEvent * e, gpointer p)
|
||||||
// creates and opens the gamepad config window (requires GTK 2.24)
|
// creates and opens the gamepad config window (requires GTK 2.24)
|
||||||
void openGamepadConfig (void)
|
void openGamepadConfig (void)
|
||||||
{
|
{
|
||||||
|
int portNum = 0;
|
||||||
GtkWidget *win;
|
GtkWidget *win;
|
||||||
GtkWidget *vbox;
|
GtkWidget *vbox;
|
||||||
GtkWidget *hboxPadNo;
|
GtkWidget *hboxPadNo;
|
||||||
GtkWidget *padNoLabel;
|
GtkWidget *padNoLabel;
|
||||||
//GtkWidget* configNoLabel;
|
GtkWidget* devSelLabel, *devSelHbox;
|
||||||
GtkWidget *fourScoreChk;
|
GtkWidget *fourScoreChk;
|
||||||
GtkWidget *oppositeDirChk;
|
GtkWidget *oppositeDirChk;
|
||||||
GtkWidget *buttonFrame;
|
GtkWidget *buttonFrame;
|
||||||
GtkWidget *buttonTable;
|
GtkWidget *buttonTable;
|
||||||
|
char stmp[256];
|
||||||
|
|
||||||
win = gtk_dialog_new_with_buttons ("Controller Configuration",
|
win = gtk_dialog_new_with_buttons ("Controller Configuration",
|
||||||
GTK_WINDOW (MainWindow),
|
GTK_WINDOW (MainWindow),
|
||||||
|
@ -792,6 +795,67 @@ void openGamepadConfig (void)
|
||||||
g_signal_connect (padNoCombo, "changed",
|
g_signal_connect (padNoCombo, "changed",
|
||||||
G_CALLBACK (updateGamepadConfig), NULL);
|
G_CALLBACK (updateGamepadConfig), NULL);
|
||||||
|
|
||||||
|
devSelHbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||||
|
devSelLabel = gtk_label_new ("Device:");
|
||||||
|
devSelCombo = gtk_combo_box_text_new ();
|
||||||
|
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (devSelCombo), "Keyboard");
|
||||||
|
|
||||||
|
gtk_combo_box_set_active (GTK_COMBO_BOX (devSelCombo), 0);
|
||||||
|
|
||||||
|
for (int i=0; i<MAX_JOYSTICKS; i++)
|
||||||
|
{
|
||||||
|
jsDev_t *js = getJoystickDevice( i );
|
||||||
|
|
||||||
|
if ( js != NULL )
|
||||||
|
{
|
||||||
|
if ( js->isConnected() )
|
||||||
|
{
|
||||||
|
sprintf( stmp, "%i: %s", i, js->getName() );
|
||||||
|
gtk_combo_box_text_append_text( GTK_COMBO_BOX_TEXT (devSelCombo), stmp );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
gtk_combo_box_set_active (GTK_COMBO_BOX (devSelCombo), 0);
|
||||||
|
|
||||||
|
{
|
||||||
|
GtkTreeModel *treeModel = gtk_combo_box_get_model( GTK_COMBO_BOX (devSelCombo) );
|
||||||
|
GtkTreeIter iter;
|
||||||
|
gboolean iterValid;
|
||||||
|
|
||||||
|
iterValid = gtk_tree_model_get_iter_first( treeModel, &iter );
|
||||||
|
|
||||||
|
while ( iterValid )
|
||||||
|
{
|
||||||
|
GValue value;
|
||||||
|
|
||||||
|
memset( &value, 0, sizeof(value));
|
||||||
|
|
||||||
|
gtk_tree_model_get_value (treeModel, &iter, 0, &value );
|
||||||
|
|
||||||
|
if ( G_IS_VALUE(&value) )
|
||||||
|
{
|
||||||
|
if ( G_VALUE_TYPE(&value) == G_TYPE_STRING )
|
||||||
|
{
|
||||||
|
int devIdx = -1;
|
||||||
|
const char *s = (const char *)g_value_peek_pointer( &value );
|
||||||
|
|
||||||
|
if ( isdigit( s[0] ) )
|
||||||
|
{
|
||||||
|
devIdx = atoi(s);
|
||||||
|
}
|
||||||
|
if ( (devIdx >= 0) && (devIdx == GamePad[portNum].getDeviceIndex() ) )
|
||||||
|
{
|
||||||
|
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (devSelCombo), &iter);
|
||||||
|
}
|
||||||
|
//printf("Type is String: '%s'\n", s );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
g_value_unset(&value);
|
||||||
|
|
||||||
|
iterValid = gtk_tree_model_iter_next( treeModel, &iter );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//g_signal_connect (typeCombo, "changed", G_CALLBACK (setInputDevice),
|
//g_signal_connect (typeCombo, "changed", G_CALLBACK (setInputDevice),
|
||||||
// gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT
|
// gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT
|
||||||
// (typeCombo)));
|
// (typeCombo)));
|
||||||
|
@ -809,6 +873,10 @@ void openGamepadConfig (void)
|
||||||
gtk_box_pack_start (GTK_BOX (vbox), hboxPadNo, FALSE, TRUE, 5);
|
gtk_box_pack_start (GTK_BOX (vbox), hboxPadNo, FALSE, TRUE, 5);
|
||||||
//gtk_box_pack_start_defaults(GTK_BOX(vbox), typeCombo);
|
//gtk_box_pack_start_defaults(GTK_BOX(vbox), typeCombo);
|
||||||
|
|
||||||
|
gtk_box_pack_start (GTK_BOX (devSelHbox), devSelLabel, TRUE, TRUE, 5);
|
||||||
|
gtk_box_pack_start (GTK_BOX (devSelHbox), devSelCombo, TRUE, TRUE, 5);
|
||||||
|
gtk_box_pack_start (GTK_BOX (vbox), devSelHbox, FALSE, TRUE, 5);
|
||||||
|
|
||||||
gtk_box_pack_start (GTK_BOX (vbox), fourScoreChk, FALSE, TRUE, 5);
|
gtk_box_pack_start (GTK_BOX (vbox), fourScoreChk, FALSE, TRUE, 5);
|
||||||
gtk_box_pack_start (GTK_BOX (vbox), oppositeDirChk, FALSE, TRUE, 5);
|
gtk_box_pack_start (GTK_BOX (vbox), oppositeDirChk, FALSE, TRUE, 5);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue