#include "gtkrc.h"
#include "gtkintl.h"
#include "gtkwidget.h"
+#include "gtktypeutils.h"
#include "gtkprivate.h"
-#include "gtkalias.h"
#ifdef GDK_WINDOWING_X11
#include "x11/gdkx.h"
PROP_SOUND_THEME_NAME,
PROP_ENABLE_INPUT_FEEDBACK_SOUNDS,
PROP_ENABLE_EVENT_SOUNDS,
- PROP_ENABLE_TOOLTIPS
+ PROP_ENABLE_TOOLTIPS,
+ PROP_TOOLBAR_STYLE,
+ PROP_TOOLBAR_ICON_SIZE,
+ PROP_AUTO_MNEMONICS,
+ PROP_APPLICATION_PREFER_DARK_THEME
};
GTK_PARAM_READWRITE),
NULL);
g_assert (result == PROP_ENABLE_TOOLTIPS);
+
+ /**
+ * GtkSettings:toolbar-style:
+ *
+ * The size of icons in default toolbars.
+ */
+ result = settings_install_property_parser (class,
+ g_param_spec_enum ("gtk-toolbar-style",
+ P_("Toolbar style"),
+ P_("Whether default toolbars have text only, text and icons, icons only, etc."),
+ GTK_TYPE_TOOLBAR_STYLE,
+ GTK_TOOLBAR_BOTH,
+ GTK_PARAM_READWRITE),
+ gtk_rc_property_parse_enum);
+ g_assert (result == PROP_TOOLBAR_STYLE);
+
+ /**
+ * GtkSettings:toolbar-icon-size:
+ *
+ * The size of icons in default toolbars.
+ */
+ result = settings_install_property_parser (class,
+ g_param_spec_enum ("gtk-toolbar-icon-size",
+ P_("Toolbar Icon Size"),
+ P_("The size of icons in default toolbars."),
+ GTK_TYPE_ICON_SIZE,
+ GTK_ICON_SIZE_LARGE_TOOLBAR,
+ GTK_PARAM_READWRITE),
+ gtk_rc_property_parse_enum);
+ g_assert (result == PROP_TOOLBAR_ICON_SIZE);
+
+ /**
+ * GtkSettings:gtk-auto-mnemonics:
+ *
+ * Whether mnemonics should be automatically shown and hidden when the user
+ * presses the mnemonic activator.
+ *
+ * Since: 2.20
+ */
+ result = settings_install_property_parser (class,
+ g_param_spec_boolean ("gtk-auto-mnemonics",
+ P_("Auto Mnemonics"),
+ P_("Whether mnemonics should be automatically shown and hidden when the user presses the mnemonic activator."),
+ FALSE,
+ GTK_PARAM_READWRITE),
+ NULL);
+ g_assert (result == PROP_AUTO_MNEMONICS);
+
+ /**
+ * GtkSettings:gtk-application-prefer-dark-theme:
+ *
+ * Whether the application prefers to use a dark theme. If a GTK+ theme
+ * includes a dark variant, it will be used instead of the configured
+ * theme.
+ *
+ * Some applications benefit from minimizing the amount of light pollution that
+ * interferes with the content. Good candidates for dark themes are photo and
+ * video editors that make the actual content get all the attention and minimize
+ * the distraction of the chrome.
+ *
+ * Dark themes should not be used for documents, where large spaces are white/light
+ * and the dark chrome creates too much contrast (web browser, text editor...).
+ *
+ * Since: 2.22
+ */
+ result = settings_install_property_parser (class,
+ g_param_spec_boolean ("gtk-application-prefer-dark-theme",
+ P_("Application prefers a dark theme"),
+ P_("Whether the application prefers to have a dark theme."),
+ FALSE,
+ GTK_PARAM_READWRITE),
+ NULL);
+ g_assert (result == PROP_APPLICATION_PREFER_DARK_THEME);
}
static void
/**
* gtk_settings_get_for_screen:
- * @screen : a #GdkScreen.
- *
+ * @screen: a #GdkScreen.
+ *
* Gets the #GtkSettings object for @screen, creating it if necessary.
*
- * Return value: a #GtkSettings object.
+ * Return value: (transfer none): a #GtkSettings object.
*
* Since: 2.2
*/
gtk_settings_get_for_screen (GdkScreen *screen)
{
GtkSettings *settings;
-
+
g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
-
+
settings = g_object_get_data (G_OBJECT (screen), "gtk-settings");
if (!settings)
{
*
* Gets the #GtkSettings object for the default GDK screen, creating
* it if necessary. See gtk_settings_get_for_screen().
- *
- * Return value: a #GtkSettings object. If there is no default
+ *
+ * Return value: (transfer none): a #GtkSettings object. If there is no default
* screen, then returns %NULL.
**/
GtkSettings*
case G_TYPE_FLOAT:
case G_TYPE_DOUBLE:
case G_TYPE_STRING:
+ case G_TYPE_ENUM:
break;
case G_TYPE_BOXED:
if (strcmp (g_param_spec_get_name (pspec), "color-hash") == 0)
GtkBorder border;
GScanner *scanner;
gboolean success = FALSE;
+ int left, right, top, bottom;
g_return_val_if_fail (G_IS_PARAM_SPEC (pspec), FALSE);
g_return_val_if_fail (G_VALUE_HOLDS_BOXED (property_value), FALSE);
scanner = gtk_rc_scanner_new ();
g_scanner_input_text (scanner, gstring->str, gstring->len);
- if (get_braced_int (scanner, TRUE, FALSE, &border.left) &&
- get_braced_int (scanner, FALSE, FALSE, &border.right) &&
- get_braced_int (scanner, FALSE, FALSE, &border.top) &&
- get_braced_int (scanner, FALSE, TRUE, &border.bottom))
+ if (get_braced_int (scanner, TRUE, FALSE, &left) &&
+ get_braced_int (scanner, FALSE, FALSE, &right) &&
+ get_braced_int (scanner, FALSE, FALSE, &top) &&
+ get_braced_int (scanner, FALSE, TRUE, &bottom))
{
+ border.left = left;
+ border.right = right;
+ border.top = top;
+ border.bottom = bottom;
g_value_set_boxed (property_value, &border);
success = TRUE;
}
GParamSpec *pspec;
guint property_id;
- settings = gtk_settings_get_for_screen (gdk_drawable_get_screen (event->window));
+ settings = gtk_settings_get_for_screen (gdk_window_get_screen (event->window));
pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (settings), event->name);
if (pspec)
gint i;
GHashTable *old_hash;
GHashTableIter iter;
- gchar *name;
- GdkColor *color;
+ gpointer name;
+ gpointer color;
if ((str == NULL || *str == '\0') &&
(data->lastentry[source] == NULL || data->lastentry[source][0] == '\0'))
return g_string_free (string, FALSE);
}
-
-
-#define __GTK_SETTINGS_C__
-#include "gtkaliasdef.c"