diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-06-02 14:54:18 +0200 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-06-02 14:54:18 +0200 |
commit | a4245a50902ee9b399c9aa726fb5281e2719fe57 (patch) | |
tree | e536fdeea6b8a780b2c797799d8d9ced565ff5c1 /src/main.c | |
parent | 54f75db1b82cc5a81c98ed722b3a60c38645919d (diff) | |
download | experiment-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.c | 50 |
1 files changed, 48 insertions, 2 deletions
@@ -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; |