diff options
author | Goffredo Baroncelli <[email protected]> | 2019-06-15 17:52:01 +0200 |
---|---|---|
committer | Victor Kareh <[email protected]> | 2019-06-28 08:38:58 -0400 |
commit | c264b0d7b6782a596c6502edc158f754ed968835 (patch) | |
tree | 76d0b874925f026f26c55883b0bed38d4cd60a3c /pluma/pluma-prefs-manager.c | |
parent | dee5500dd7d1ca8b6b9ef2c25af658bb9c839262 (diff) | |
download | pluma-c264b0d7b6782a596c6502edc158f754ed968835.tar.bz2 pluma-c264b0d7b6782a596c6502edc158f754ed968835.tar.xz |
Draw spaces, tabs, newlines and nbsp.
Via gsettings it is possible to enable the drawing of:
- newline (enable-space-drawer-newline)
- spaces (enable-space-drawer-space)
- tab (enable-space-drawer-tab)
- not blank space (enable-space-drawer-nbsp)
The first setting is a boolean ones, so the only allowable values
are true (show the symbol) or false (don't show the symbol).
Instead for the last three settings, the allowed values are:
'draw-none' -> show nothing
'draw-all' -> show all spaces/tabs
'draw-trailing' -> show only the trailing spaces/tabs (only if GTK >= 3.24)
Diffstat (limited to 'pluma/pluma-prefs-manager.c')
-rw-r--r-- | pluma/pluma-prefs-manager.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/pluma/pluma-prefs-manager.c b/pluma/pluma-prefs-manager.c index c82c887c..e83f44ed 100644 --- a/pluma/pluma-prefs-manager.c +++ b/pluma/pluma-prefs-manager.c @@ -122,6 +122,33 @@ pluma_prefs_manager_ ## name ## _can_set (void) \ } + +#define DEFINE_ENUM_PREF(name, key) gint \ +pluma_prefs_manager_get_ ## name (void) \ +{ \ + pluma_debug (DEBUG_PREFS); \ + \ + return pluma_prefs_manager_get_enum (key); \ +} \ + \ +void \ +pluma_prefs_manager_set_ ## name (gint v) \ +{ \ + pluma_debug (DEBUG_PREFS); \ + \ + pluma_prefs_manager_set_enum (key, \ + v); \ +} \ + \ +gboolean \ +pluma_prefs_manager_ ## name ## _can_set (void) \ +{ \ + pluma_debug (DEBUG_PREFS); \ + \ + return pluma_prefs_manager_key_is_writable (key); \ +} + + PlumaPrefsManager *pluma_prefs_manager = NULL; @@ -133,6 +160,8 @@ static gint pluma_prefs_manager_get_int (const gchar* key); static gchar *pluma_prefs_manager_get_string (const gchar* key); +static gint pluma_prefs_manager_get_enum (const gchar* key); + gboolean pluma_prefs_manager_init (void) @@ -189,6 +218,14 @@ pluma_prefs_manager_get_string (const gchar* key) return g_settings_get_string (pluma_prefs_manager->settings, key); } +static gint +pluma_prefs_manager_get_enum (const gchar* key) +{ + pluma_debug (DEBUG_PREFS); + + return g_settings_get_enum (pluma_prefs_manager->settings, key); +} + static void pluma_prefs_manager_set_bool (const gchar* key, gboolean value) { @@ -224,6 +261,17 @@ pluma_prefs_manager_set_string (const gchar* key, const gchar* value) g_settings_set_string (pluma_prefs_manager->settings, key, value); } +static void +pluma_prefs_manager_set_enum (const gchar* key, gint value) +{ + pluma_debug (DEBUG_PREFS); + + g_return_if_fail (g_settings_is_writable ( + pluma_prefs_manager->settings, key)); + + g_settings_set_enum (pluma_prefs_manager->settings, key, value); +} + static gboolean pluma_prefs_manager_key_is_writable (const gchar* key) { @@ -939,3 +987,19 @@ pluma_prefs_manager_get_lockdown (void) return lockdown; } + +/* enable drawing 'normal' spaces */ +DEFINE_ENUM_PREF(draw_spaces, + GPM_SPACE_DRAWER_SPACE) + +/* enable drawing tabs */ +DEFINE_ENUM_PREF(draw_tabs, + GPM_SPACE_DRAWER_TAB) + +/* enable drawing newline */ +DEFINE_BOOL_PREF(draw_newlines, + GPM_SPACE_DRAWER_NEWLINE) + +/* enable drawing nbsp */ +DEFINE_ENUM_PREF(draw_nbsp, + GPM_SPACE_DRAWER_NBSP) |