1 /* 2 * pluma-settings.h 3 * This file is part of pluma 4 * 5 * Copyright (C) 2009 - Ignacio Casal Quinteiro 6 * 2002 - Paolo Maggi 7 * Copyright (C) 2012-2021 MATE Developers 8 * 9 * pluma is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation; either version 2 of the License, or 12 * (at your option) any later version. 13 * 14 * pluma is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with pluma; if not, write to the Free Software 21 * Foundation, Inc., 51 Franklin St, Fifth Floor, 22 * Boston, MA 02110-1301 USA 23 */ 24 25 #ifndef __PLUMA_SETTINGS_H__ 26 #define __PLUMA_SETTINGS_H__ 27 28 #include <glib-object.h> 29 #include <glib.h> 30 #include "pluma-app.h" 31 32 G_BEGIN_DECLS 33 34 #define PLUMA_TYPE_SETTINGS (pluma_settings_get_type ()) 35 #define PLUMA_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUMA_TYPE_SETTINGS, PlumaSettings)) 36 #define PLUMA_SETTINGS_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUMA_TYPE_SETTINGS, PlumaSettings const)) 37 #define PLUMA_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUMA_TYPE_SETTINGS, PlumaSettingsClass)) 38 #define PLUMA_IS_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUMA_TYPE_SETTINGS)) 39 #define PLUMA_IS_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUMA_TYPE_SETTINGS)) 40 #define PLUMA_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUMA_TYPE_SETTINGS, PlumaSettingsClass)) 41 42 typedef struct _PlumaSettings PlumaSettings; 43 typedef struct _PlumaSettingsClass PlumaSettingsClass; 44 typedef struct _PlumaSettingsPrivate PlumaSettingsPrivate; 45 46 struct _PlumaSettings 47 { 48 GObject parent; 49 50 PlumaSettingsPrivate *priv; 51 }; 52 53 struct _PlumaSettingsClass 54 { 55 GObjectClass parent_class; 56 }; 57 58 typedef enum { 59 PLUMA_TOOLBAR_SYSTEM = 0, 60 PLUMA_TOOLBAR_ICONS, 61 PLUMA_TOOLBAR_ICONS_AND_TEXT, 62 PLUMA_TOOLBAR_ICONS_BOTH_HORIZ 63 } PlumaToolbarSetting; 64 65 GType pluma_settings_get_type (void) G_GNUC_CONST; 66 67 G_GNUC_INTERNAL 68 PlumaSettings * _pluma_settings_get_singleton (void); 69 70 void pluma_settings_unref_singleton (void); 71 72 PlumaLockdownMask pluma_settings_get_lockdown (PlumaSettings *self); 73 74 gchar *pluma_settings_get_system_font (PlumaSettings *self); 75 76 GtkSourceSmartHomeEndType pluma_settings_get_smart_home_end (PlumaSettings *self); 77 78 PlumaToolbarSetting pluma_settings_get_toolbar_style (PlumaSettings *self); 79 80 /* Utility functions */ 81 GSList *pluma_settings_get_list (GSettings *settings, 82 const gchar *key); 83 84 void pluma_settings_set_list (GSettings *settings, 85 const gchar *key, 86 GSList *list); 87 88 GtkWrapMode pluma_settings_get_wrap_mode (GSettings *settings, 89 const gchar *key); 90 91 void pluma_settings_set_wrap_mode (GSettings *settings, 92 const gchar *key, 93 GtkWrapMode mode); 94 95 GSList * pluma_settings_get_writable_vfs_schemes (GSettings *settings); 96 97 #define PLUMA_SCHEMA_ID "org.mate.pluma" 98 99 /* key constants */ 100 #define PLUMA_SETTINGS_USE_DEFAULT_FONT "use-default-font" 101 #define PLUMA_SETTINGS_EDITOR_FONT "editor-font" 102 #define PLUMA_SETTINGS_COLOR_SCHEME "color-scheme" 103 #define PLUMA_SETTINGS_CREATE_BACKUP_COPY "create-backup-copy" 104 #define PLUMA_SETTINGS_AUTO_SAVE "auto-save" 105 #define PLUMA_SETTINGS_AUTO_SAVE_INTERVAL "auto-save-interval" 106 #define PLUMA_SETTINGS_MAX_UNDO_ACTIONS "max-undo-actions" 107 #define PLUMA_SETTINGS_WRAP_MODE "wrap-mode" 108 #define PLUMA_SETTINGS_TABS_SIZE "tabs-size" 109 #define PLUMA_SETTINGS_INSERT_SPACES "insert-spaces" 110 #define PLUMA_SETTINGS_AUTO_INDENT "auto-indent" 111 #define PLUMA_SETTINGS_DISPLAY_LINE_NUMBERS "display-line-numbers" 112 #define PLUMA_SETTINGS_HIGHLIGHT_CURRENT_LINE "highlight-current-line" 113 #define PLUMA_SETTINGS_BRACKET_MATCHING "bracket-matching" 114 #define PLUMA_SETTINGS_DISPLAY_RIGHT_MARGIN "display-right-margin" 115 #define PLUMA_SETTINGS_RIGHT_MARGIN_POSITION "right-margin-position" 116 #define PLUMA_SETTINGS_WRITABLE_VFS_SCHEMES "writable-vfs-schemes" 117 #define PLUMA_SETTINGS_RESTORE_CURSOR_POSITION "restore-cursor-position" 118 #define PLUMA_SETTINGS_SYNTAX_HIGHLIGHTING "syntax-highlighting" 119 #define PLUMA_SETTINGS_SEARCH_HIGHLIGHTING "search-highlighting" 120 #define PLUMA_SETTINGS_TOOLBAR_VISIBLE "toolbar-visible" 121 #define PLUMA_SETTINGS_STATUSBAR_VISIBLE "statusbar-visible" 122 #define PLUMA_SETTINGS_SIDE_PANE_VISIBLE "side-pane-visible" 123 #define PLUMA_SETTINGS_BOTTOM_PANE_VISIBLE "bottom-panel-visible" 124 #define PLUMA_SETTINGS_MAX_RECENTS "max-recents" 125 #define PLUMA_SETTINGS_PRINT_SYNTAX_HIGHLIGHTING "print-syntax-highlighting" 126 #define PLUMA_SETTINGS_PRINT_HEADER "print-header" 127 #define PLUMA_SETTINGS_PRINT_WRAP_MODE "print-wrap-mode" 128 #define PLUMA_SETTINGS_PRINT_LINE_NUMBERS "print-line-numbers" 129 #define PLUMA_SETTINGS_PRINT_FONT_BODY_PANGO "print-font-body-pango" 130 #define PLUMA_SETTINGS_PRINT_FONT_HEADER_PANGO "print-font-header-pango" 131 #define PLUMA_SETTINGS_PRINT_FONT_NUMBERS_PANGO "print-font-numbers-pango" 132 #define PLUMA_SETTINGS_ENCODING_AUTO_DETECTED "auto-detected-encodings" 133 #define PLUMA_SETTINGS_ENCODING_SHOWN_IN_MENU "shown-in-menu-encodings" 134 #define PLUMA_SETTINGS_ACTIVE_PLUGINS "active-plugins" 135 #define PLUMA_SETTINGS_SHOW_SINGLE_TAB "show-single-tab" 136 #define PLUMA_SETTINGS_SHOW_TABS_WITH_SIDE_PANE "show-tabs-with-side-pane" 137 #define PLUMA_SETTINGS_CTRL_TABS_SWITCH_TABS "ctrl-tab-switch-tabs" 138 #define PLUMA_SETTINGS_SHOW_SAVE_CONFIRMATION "show-save-confirmation" 139 #define PLUMA_SETTINGS_DRAWER_SPACE "enable-space-drawer-space" 140 #define PLUMA_SETTINGS_DRAWER_TAB "enable-space-drawer-tab" 141 #define PLUMA_SETTINGS_DRAWER_NEWLINE "enable-space-drawer-newline" 142 #define PLUMA_SETTINGS_DRAWER_NBSP "enable-space-drawer-nbsp" 143 #define PLUMA_SETTINGS_DISPLAY_OVERVIEW_MAP "display-overview-map" 144 #define PLUMA_SETTINGS_BACKGROUND_PATTERN "background-pattern" 145 146 /* White list of writable mate-vfs methods */ 147 #define PLUMA_SETTINGS_WRITABLE_VFS_SCHEMES "writable-vfs-schemes" 148 #define PLUMA_SETTINGS_SMART_HOME_END "smart-home-end" 149 150 /* window state keys */ 151 #define PLUMA_SETTINGS_WINDOW_STATE "state" 152 #define PLUMA_SETTINGS_WINDOW_SIZE "size" 153 #define PLUMA_SETTINGS_SIDE_PANEL_SIZE "side-panel-size" 154 #define PLUMA_SETTINGS_SIDE_PANEL_ACTIVE_PAGE "side-panel-active-page" 155 #define PLUMA_SETTINGS_BOTTOM_PANEL_SIZE "bottom-panel-size" 156 #define PLUMA_SETTINGS_BOTTOM_PANEL_ACTIVE_PAGE "bottom-panel-active-page" 157 #define PLUMA_SETTINGS_ACTIVE_FILE_FILTER "filter-id" 158 159 G_END_DECLS 160 161 #endif /* __PLUMA_SETTINGS_H__ */ 162