Revision: 45682
http://sourceforge.net/p/vice-emu/code/45682
Author: compyx
Date: 2025-05-15 18:54:46 +0000 (Thu, 15 May 2025)
Log Message:
-----------
Joystick: Gtk3 UI: add GtkStack(Switcher) to experimental dialog
Split mapping/calibration dialog into three "tabs": input testing, mapping and
calibration.
Modified Paths:
--------------
branches/compyx/joymap-003/vice/src/arch/gtk3/widgets/settings_joymap.c
Modified: branches/compyx/joymap-003/vice/src/arch/gtk3/widgets/settings_joymap.c
===================================================================
--- branches/compyx/joymap-003/vice/src/arch/gtk3/widgets/settings_joymap.c 2025-05-15 17:11:39 UTC (rev 45681)
+++ branches/compyx/joymap-003/vice/src/arch/gtk3/widgets/settings_joymap.c 2025-05-15 18:54:46 UTC (rev 45682)
@@ -21,6 +21,10 @@
static GtkWidget *event_widget_new(joystick_device_t *joydev);
+static GtkWidget *inputs_grid;
+static GtkWidget *mappings_grid;
+static GtkWidget *calibration_grid;
+
static GtkWidget *layout;
static GtkWidget *device_combo;
static GtkWidget *event_widget;
@@ -95,7 +99,7 @@
gtk_widget_destroy(event_widget);
}
event_widget = event_widget_new(joystick_device_by_index(index));
- gtk_grid_attach(GTK_GRID(layout), event_widget, 0, 2, 2, 1);
+ gtk_grid_attach(GTK_GRID(inputs_grid), event_widget, 0, 2, 2, 1);
gtk_widget_show_all(event_widget);
start_polling(joystick_device_by_index(index));
}
@@ -235,6 +239,8 @@
GtkWidget *settings_joymap_widget_create(GtkWidget *parent)
{
GtkWidget *label;
+ GtkWidget *stack;
+ GtkWidget *switcher;
int row = 0;
@@ -250,18 +256,29 @@
gtk_grid_set_column_spacing(GTK_GRID(layout), 16);
gtk_grid_set_row_spacing(GTK_GRID(layout), 8);
- label = label_helper("<b>Joystick mappings playground</b>");
- gtk_widget_set_margin_bottom(label, 8);
- gtk_grid_attach(GTK_GRID(layout), label, 0, row, 2, 1);
- row++;
-
+ label = gtk_label_new("Host device");
+ gtk_widget_set_halign(label, GTK_ALIGN_START);
device_combo = device_combo_new();
gtk_widget_set_hexpand(device_combo, TRUE);
- label = gtk_label_new("Device");
- gtk_widget_set_halign(label, GTK_ALIGN_START);
- gtk_grid_attach(GTK_GRID(layout), label, 0, row, 1, 1);
+ gtk_grid_attach(GTK_GRID(layout), label, 0, row, 1, 1);
gtk_grid_attach(GTK_GRID(layout), device_combo, 1, row, 1, 1);
+ row++;
+ stack = gtk_stack_new();
+ switcher = gtk_stack_switcher_new();
+ gtk_stack_switcher_set_stack(GTK_STACK_SWITCHER(switcher), GTK_STACK(stack));
+
+ gtk_grid_attach(GTK_GRID(layout), switcher, 0, row++, 2, 1);
+ gtk_grid_attach(GTK_GRID(layout), stack, 0, row++, 2, 1);
+
+ inputs_grid = gtk_grid_new();
+ mappings_grid = gtk_grid_new();
+ calibration_grid = gtk_grid_new();
+ gtk_stack_add_titled(GTK_STACK(stack), inputs_grid, "inputs", "Inputs");
+ gtk_stack_add_titled(GTK_STACK(stack), mappings_grid, "mappings", "Mappings");
+ gtk_stack_add_titled(GTK_STACK(stack), calibration_grid, "calibration", "Calibration");
+
+
g_signal_connect(G_OBJECT(layout),
"destroy",
G_CALLBACK(on_joymap_widget_destroy),
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|