summaryrefslogtreecommitdiffstats
path: root/src/gui-wizard-gtk/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui-wizard-gtk/main.c')
-rw-r--r--src/gui-wizard-gtk/main.c47
1 files changed, 36 insertions, 11 deletions
diff --git a/src/gui-wizard-gtk/main.c b/src/gui-wizard-gtk/main.c
index 4f54ff2b..2ddff27d 100644
--- a/src/gui-wizard-gtk/main.c
+++ b/src/gui-wizard-gtk/main.c
@@ -7,8 +7,22 @@
char *g_glade_file = NULL;
+char *g_dump_dir_name = NULL;
+
+char *g_analyze_label_selected = NULL;
+
static crash_data_t *cd;
+static void analyze_rb_was_toggled(GtkToggleButton *button, gpointer user_data)
+{
+ const char *label = gtk_button_get_label(GTK_BUTTON(button));
+ if (label)
+ {
+ free(g_analyze_label_selected);
+ g_analyze_label_selected = xstrdup(label);
+ }
+}
+
int main(int argc, char **argv)
{
gtk_init(&argc, &argv);
@@ -35,11 +49,13 @@ int main(int argc, char **argv)
if (!argv[0] || argv[1]) /* zero or >1 arguments */
show_usage_and_die(program_usage_string, program_options);
- struct dump_dir *dd = dd_opendir(argv[0], 0);
+ g_dump_dir_name = argv[0];
+
+ struct dump_dir *dd = dd_opendir(g_dump_dir_name, 0);
if (!dd)
return 1;
cd = create_crash_data_from_dump_dir(dd);
- char *analyze_events = list_possible_events(dd, /*dump_dir_name*/ NULL, "analyze");
+ char *analyze_events = list_possible_events(dd, g_dump_dir_name, "analyze");
dd_close(dd);
GtkWidget *assistant = create_assistant();
@@ -52,15 +68,24 @@ int main(int argc, char **argv)
if (analyze_events[0])
{
char *event_name = analyze_events;
- char *event_name_end = strchr(event_name, '\n');
- *event_name_end = '\0';
- GtkWidget *rb = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(first_rb), event_name);
- *event_name_end = '\n';
- event_name = event_name_end + 1;
-
- if (!first_rb)
- first_rb = rb;
- gtk_box_pack_start(GTK_BOX(g_vb_analyzers), rb, /*expand*/ false, /*fill*/ false, /*padding*/ 0);
+ while (event_name[0])
+ {
+ char *event_name_end = strchr(event_name, '\n');
+ *event_name_end = '\0';
+ GtkWidget *rb = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(first_rb), event_name);
+ if (!first_rb)
+ {
+ first_rb = rb;
+ free(g_analyze_label_selected);
+ g_analyze_label_selected = xstrdup(event_name);
+ }
+ *event_name_end = '\n';
+ event_name = event_name_end + 1;
+
+ gtk_box_pack_start(GTK_BOX(g_vb_analyzers), rb, /*expand*/ false, /*fill*/ false, /*padding*/ 0);
+
+ g_signal_connect(G_OBJECT(rb), "toggled", G_CALLBACK(analyze_rb_was_toggled), NULL);
+ }
}
else { /*???*/ }