diff options
Diffstat (limited to 'src/terminal-profile.c')
-rw-r--r-- | src/terminal-profile.c | 78 |
1 files changed, 46 insertions, 32 deletions
diff --git a/src/terminal-profile.c b/src/terminal-profile.c index 4e91aef..f789f66 100644 --- a/src/terminal-profile.c +++ b/src/terminal-profile.c @@ -2,6 +2,7 @@ * Copyright © 2001 Havoc Pennington * Copyright © 2002 Mathias Hasselmann * Copyright © 2008 Christian Persch + * Copyright (C) 2012-2021 MATE Developers * * Mate-terminal is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -519,26 +520,38 @@ terminal_profile_reset_property_internal (TerminalProfile *profile, /* A few properties don't have defaults via the param spec; set them explicitly */ switch (pspec->param_id) { - case PROP_FOREGROUND_COLOR: - case PROP_BOLD_COLOR: - g_value_set_boxed (value, &DEFAULT_FOREGROUND_COLOR); - break; + case PROP_FOREGROUND_COLOR: + case PROP_BOLD_COLOR: + { + GdkRGBA color; - case PROP_BACKGROUND_COLOR: - g_value_set_boxed (value, &DEFAULT_BACKGROUND_COLOR); - break; + if (!gdk_rgba_parse (&color, DEFAULT_FOREGROUND_COLOR)) + return; + color.alpha = 1.0; + g_value_set_boxed (value, &color); + break; + } + case PROP_BACKGROUND_COLOR: + { + GdkRGBA color; - case PROP_FONT: - g_value_take_boxed (value, pango_font_description_from_string (DEFAULT_FONT)); - break; + if (!gdk_rgba_parse (&color, DEFAULT_BACKGROUND_COLOR)) + return; + color.alpha = 1.0; + g_value_set_boxed (value, &color); + break; + } + case PROP_FONT: + g_value_take_boxed (value, pango_font_description_from_string (DEFAULT_FONT)); + break; - case PROP_PALETTE: - set_value_from_palette (value, DEFAULT_PALETTE, TERMINAL_PALETTE_SIZE); - break; + case PROP_PALETTE: + set_value_from_palette (value, DEFAULT_PALETTE, TERMINAL_PALETTE_SIZE); + break; - default: - g_param_value_set_default (pspec, value); - break; + default: + g_param_value_set_default (pspec, value); + break; } if (notify) @@ -1211,12 +1224,14 @@ terminal_profile_class_init (TerminalProfileClass *klass) {\ GParamSpec *pspec = propSpec;\ g_object_class_install_property (object_class, propId, pspec);\ -\ - if (propGSettings)\ - {\ - g_param_spec_set_qdata (pspec, gsettings_key_quark, (gpointer) propGSettings);\ - g_hash_table_insert (klass->gsettings_keys, (gpointer) propGSettings, pspec);\ - }\ + g_param_spec_set_qdata (pspec, gsettings_key_quark, (gpointer) propGSettings);\ + g_hash_table_insert (klass->gsettings_keys, (gpointer) propGSettings, pspec);\ +} + +#define TERMINAL_PROFILE_PROPERTY_OUTER(propId, propSpec) \ +{\ + GParamSpec *pspec = propSpec;\ + g_object_class_install_property (object_class, propId, pspec);\ } #define TERMINAL_PROFILE_PROPERTY_BOOLEAN(prop, propDefault, propGSettings) \ @@ -1255,12 +1270,11 @@ terminal_profile_class_init (TerminalProfileClass *klass) propGSettings) /* these are all read-only */ -#define TERMINAL_PROFILE_PROPERTY_OBJECT(prop, propType, propGSettings)\ - TERMINAL_PROFILE_PROPERTY (PROP_##prop,\ +#define TERMINAL_PROFILE_PROPERTY_OBJECT(prop, propType)\ + TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\ g_param_spec_object (TERMINAL_PROFILE_##prop, NULL, NULL,\ propType,\ - G_PARAM_READABLE | TERMINAL_PROFILE_PSPEC_STATIC),\ - propGSettings) + G_PARAM_READABLE | TERMINAL_PROFILE_PSPEC_STATIC)) #define TERMINAL_PROFILE_PROPERTY_STRING(prop, propDefault, propGSettings)\ TERMINAL_PROFILE_PROPERTY (PROP_##prop,\ @@ -1269,12 +1283,11 @@ terminal_profile_class_init (TerminalProfileClass *klass) G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\ propGSettings) -#define TERMINAL_PROFILE_PROPERTY_STRING_CO(prop, propDefault, propGSettings)\ - TERMINAL_PROFILE_PROPERTY (PROP_##prop,\ +#define TERMINAL_PROFILE_PROPERTY_STRING_CO(prop, propDefault)\ + TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\ g_param_spec_string (TERMINAL_PROFILE_##prop, NULL, NULL,\ propDefault,\ - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | TERMINAL_PROFILE_PSPEC_STATIC),\ - propGSettings) + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | TERMINAL_PROFILE_PSPEC_STATIC)) #define TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED(prop, propElementName, propElementType, propGSettings)\ TERMINAL_PROFILE_PROPERTY (PROP_##prop,\ @@ -1323,9 +1336,10 @@ terminal_profile_class_init (TerminalProfileClass *klass) TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_ROWS, 1, 1024, DEFAULT_DEFAULT_SIZE_ROWS, KEY_DEFAULT_SIZE_ROWS); TERMINAL_PROFILE_PROPERTY_INT (SCROLLBACK_LINES, 1, G_MAXINT, DEFAULT_SCROLLBACK_LINES, KEY_SCROLLBACK_LINES); - TERMINAL_PROFILE_PROPERTY_OBJECT (BACKGROUND_IMAGE, GDK_TYPE_PIXBUF, NULL); + TERMINAL_PROFILE_PROPERTY_OBJECT (BACKGROUND_IMAGE, GDK_TYPE_PIXBUF); + + TERMINAL_PROFILE_PROPERTY_STRING_CO (NAME, DEFAULT_NAME); - TERMINAL_PROFILE_PROPERTY_STRING_CO (NAME, DEFAULT_NAME, NULL); TERMINAL_PROFILE_PROPERTY_STRING (BACKGROUND_IMAGE_FILE, DEFAULT_BACKGROUND_IMAGE_FILE, KEY_BACKGROUND_IMAGE_FILE); TERMINAL_PROFILE_PROPERTY_STRING (CUSTOM_COMMAND, DEFAULT_CUSTOM_COMMAND, KEY_CUSTOM_COMMAND); TERMINAL_PROFILE_PROPERTY_STRING (TITLE, _(DEFAULT_TITLE), KEY_TITLE); |