aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2012-06-02 14:54:18 +0200
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2012-06-02 14:54:18 +0200
commita4245a50902ee9b399c9aa726fb5281e2719fe57 (patch)
treee536fdeea6b8a780b2c797799d8d9ced565ff5c1 /src/main.c
parent54f75db1b82cc5a81c98ed722b3a60c38645919d (diff)
downloadexperiment-player-a4245a50902ee9b399c9aa726fb5281e2719fe57.tar.gz
save transcript fonts and colors in key-file (config file)
* default widget styles are not handled properly. it must be possible to reset manually chosen fonts/colors (mapped to no key in keyfile) * default interactive format text attributes should be saved as well
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c50
1 files changed, 48 insertions, 2 deletions
diff --git a/src/main.c b/src/main.c
index 4197b53..f11334f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -43,6 +43,9 @@ GtkWidget *navigator_scrolledwindow,
gchar *current_filename = NULL;
+#define SPEAKER_WIZARD "Wizard"
+#define SPEAKER_PROBAND "Proband"
+
/*
* GtkBuilder signal callbacks
* NOTE: for some strange reason the parameters are switched
@@ -248,6 +251,8 @@ main(int argc, char *argv[])
{
GtkBuilder *builder;
GtkAdjustment *adj;
+ PangoFontDescription *font_desc;
+ GdkColor color;
/* FIXME: support internationalization instead of enforcing English */
#ifdef __WIN32__
@@ -311,8 +316,34 @@ main(int argc, char *argv[])
gtk_scale_button_set_adjustment(GTK_SCALE_BUTTON(volume_button), adj);
/* configure transcript widgets */
- GTK_EXPERIMENT_TRANSCRIPT(transcript_wizard_widget)->speaker = g_strdup("Wizard");
- GTK_EXPERIMENT_TRANSCRIPT(transcript_proband_widget)->speaker = g_strdup("Proband");
+ GTK_EXPERIMENT_TRANSCRIPT(transcript_wizard_widget)->speaker =
+ g_strdup(SPEAKER_WIZARD);
+ font_desc = config_get_transcript_font(SPEAKER_WIZARD);
+ if (font_desc != NULL) {
+ gtk_widget_modify_font(transcript_wizard_widget, font_desc);
+ pango_font_description_free(font_desc);
+ }
+ if (config_get_transcript_text_color(SPEAKER_WIZARD, &color))
+ gtk_widget_modify_text(transcript_wizard_widget,
+ GTK_STATE_NORMAL, &color);
+ if (config_get_transcript_bg_color(SPEAKER_WIZARD, &color))
+ gtk_widget_modify_bg(transcript_wizard_widget,
+ GTK_STATE_NORMAL, &color);
+
+ GTK_EXPERIMENT_TRANSCRIPT(transcript_proband_widget)->speaker =
+ g_strdup(SPEAKER_PROBAND);
+ font_desc = config_get_transcript_font(SPEAKER_PROBAND);
+ if (font_desc != NULL) {
+ gtk_widget_modify_font(transcript_proband_widget, font_desc);
+ pango_font_description_free(font_desc);
+ }
+ if (config_get_transcript_text_color(SPEAKER_PROBAND, &color))
+ gtk_widget_modify_text(transcript_proband_widget,
+ GTK_STATE_NORMAL, &color);
+ if (config_get_transcript_bg_color(SPEAKER_PROBAND, &color))
+ gtk_widget_modify_bg(transcript_proband_widget,
+ GTK_STATE_NORMAL, &color);
+
format_selection_init();
refresh_quickopen_menu(GTK_MENU(quickopen_menu));
@@ -321,6 +352,21 @@ main(int argc, char *argv[])
gtk_main();
gdk_threads_leave();
+ /** @todo only modify style if it isn't the default widget style */
+ config_set_transcript_font(SPEAKER_WIZARD,
+ transcript_wizard_widget->style->font_desc);
+ config_set_transcript_text_color(SPEAKER_WIZARD,
+ &transcript_wizard_widget->style->text[GTK_STATE_NORMAL]);
+ config_set_transcript_bg_color(SPEAKER_WIZARD,
+ &transcript_wizard_widget->style->bg[GTK_STATE_NORMAL]);
+
+ config_set_transcript_font(SPEAKER_PROBAND,
+ transcript_proband_widget->style->font_desc);
+ config_set_transcript_text_color(SPEAKER_PROBAND,
+ &transcript_proband_widget->style->text[GTK_STATE_NORMAL]);
+ config_set_transcript_bg_color(SPEAKER_PROBAND,
+ &transcript_proband_widget->style->bg[GTK_STATE_NORMAL]);
+
config_save_key_file();
return 0;