aboutsummaryrefslogtreecommitdiff
path: root/src/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/config.c')
-rw-r--r--src/config.c99
1 files changed, 99 insertions, 0 deletions
diff --git a/src/config.c b/src/config.c
index 1dedf79..eb6c8df 100644
--- a/src/config.c
+++ b/src/config.c
@@ -8,6 +8,8 @@
#include <glib/gprintf.h>
#include <glib/gstdio.h>
+#include <gdk/gdk.h>
+
#include "experiment-player.h"
static GKeyFile *keyfile;
@@ -22,6 +24,32 @@ config_init_key_file(void)
config_set_quickopen_directory(DEFAULT_QUICKOPEN_DIR);
config_set_formats_directory(DEFAULT_FORMATS_DIR);
+ if (DEFAULT_INTERACTIVE_FORMAT_FONT != NULL)
+ g_key_file_set_string(keyfile, "Wizard Transcript",
+ "Default-Format-Font",
+ DEFAULT_INTERACTIVE_FORMAT_FONT);
+ if (DEFAULT_INTERACTIVE_FORMAT_FGCOLOR != NULL)
+ g_key_file_set_string(keyfile, "Wizard Transcript",
+ "Default-Format-Text-Color",
+ DEFAULT_INTERACTIVE_FORMAT_FGCOLOR);
+ if (DEFAULT_INTERACTIVE_FORMAT_BGCOLOR != NULL)
+ g_key_file_set_string(keyfile, "Wizard Transcript",
+ "Default-Format-BG-Color",
+ DEFAULT_INTERACTIVE_FORMAT_BGCOLOR);
+
+ if (DEFAULT_INTERACTIVE_FORMAT_FONT != NULL)
+ g_key_file_set_string(keyfile, "Proband Transcript",
+ "Default-Format-Font",
+ DEFAULT_INTERACTIVE_FORMAT_FONT);
+ if (DEFAULT_INTERACTIVE_FORMAT_FGCOLOR != NULL)
+ g_key_file_set_string(keyfile, "Proband Transcript",
+ "Default-Format-Text-Color",
+ DEFAULT_INTERACTIVE_FORMAT_FGCOLOR);
+ if (DEFAULT_INTERACTIVE_FORMAT_BGCOLOR != NULL)
+ g_key_file_set_string(keyfile, "Proband Transcript",
+ "Default-Format-BG-Color",
+ DEFAULT_INTERACTIVE_FORMAT_BGCOLOR);
+
/* may fail if no serialized configuration exists */
g_key_file_load_from_data_dirs(keyfile, CONFIG_KEY_FILE, &filename,
G_KEY_FILE_KEEP_COMMENTS, NULL);
@@ -56,6 +84,77 @@ config_get_formats_directory(void)
}
void
+config_generic_set_transcript_font(const gchar *actor, const gchar *key,
+ const PangoFontDescription *font)
+{
+ gchar group[255];
+ gchar *font_name;
+
+ g_snprintf(group, sizeof(group), "%s Transcript", actor);
+
+ if (font == NULL) {
+ g_key_file_remove_key(keyfile, group, key, NULL);
+ } else {
+ font_name = pango_font_description_to_string(font);
+ g_key_file_set_string(keyfile, group, key, font_name);
+ g_free(font_name);
+ }
+}
+
+PangoFontDescription *
+config_generic_get_transcript_font(const gchar *actor, const gchar *key)
+{
+ gchar group[255];
+ gchar *font_name;
+ PangoFontDescription *font_desc = NULL;
+
+ g_snprintf(group, sizeof(group), "%s Transcript", actor);
+ font_name = g_key_file_get_string(keyfile, group, key, NULL);
+ if (font_name != NULL) {
+ font_desc = pango_font_description_from_string(font_name);
+ g_free(font_name);
+ }
+
+ return font_desc;
+}
+
+void
+config_generic_set_transcript_color(const gchar *actor, const gchar *key,
+ const GdkColor *color)
+{
+ gchar group[255];
+ gchar *color_name;
+
+ g_snprintf(group, sizeof(group), "%s Transcript", actor);
+
+ if (color == NULL) {
+ g_key_file_remove_key(keyfile, group, key, NULL);
+ } else {
+ color_name = gdk_color_to_string(color);
+ g_key_file_set_string(keyfile, group, key, color_name);
+ g_free(color_name);
+ }
+}
+
+gboolean
+config_generic_get_transcript_color(const gchar *actor, const gchar *key,
+ GdkColor *color)
+{
+ gchar group[255];
+ gchar *color_name;
+
+ g_snprintf(group, sizeof(group), "%s Transcript", actor);
+ color_name = g_key_file_get_string(keyfile, group, key, NULL);
+ if (color_name == NULL)
+ return FALSE;
+
+ gdk_color_parse(color_name, color);
+ g_free(color_name);
+
+ return TRUE;
+}
+
+void
config_save_key_file(void)
{
gchar *data;