1 /* 2 * xed-settings.h 3 * This file is part of xed 4 * 5 * Copyright (C) 2009 - Ignacio Casal Quinteiro 6 * 2002 - Paolo Maggi 7 * 8 * xed is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License, or 11 * (at your option) any later version. 12 * 13 * xed is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with xed; if not, write to the Free Software 20 * Foundation, Inc., 51 Franklin St, Fifth Floor, 21 * Boston, MA 02110-1301 USA 22 */ 23 24 25 #ifndef __XED_SETTINGS_H__ 26 #define __XED_SETTINGS_H__ 27 28 #include <glib-object.h> 29 #include <glib.h> 30 #include "xed-app.h" 31 32 G_BEGIN_DECLS 33 34 #define XED_TYPE_SETTINGS (xed_settings_get_type ()) 35 #define XED_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XED_TYPE_SETTINGS, XedSettings)) 36 #define XED_SETTINGS_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XED_TYPE_SETTINGS, XedSettings const)) 37 #define XED_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XED_TYPE_SETTINGS, XedSettingsClass)) 38 #define XED_IS_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XED_TYPE_SETTINGS)) 39 #define XED_IS_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XED_TYPE_SETTINGS)) 40 #define XED_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XED_TYPE_SETTINGS, XedSettingsClass)) 41 42 typedef struct _XedSettings XedSettings; 43 typedef struct _XedSettingsClass XedSettingsClass; 44 typedef struct _XedSettingsPrivate XedSettingsPrivate; 45 46 struct _XedSettings 47 { 48 GObject parent; 49 50 XedSettingsPrivate *priv; 51 }; 52 53 struct _XedSettingsClass 54 { 55 GObjectClass parent_class; 56 }; 57 58 GType xed_settings_get_type (void) G_GNUC_CONST; 59 60 GObject *xed_settings_new (void); 61 62 gchar *xed_settings_get_system_font (XedSettings *xs); 63 64 /* Utility functions */ 65 GSList *xed_settings_get_list (GSettings *settings, 66 const gchar *key); 67 68 void xed_settings_set_list (GSettings *settings, 69 const gchar *key, 70 const GSList *list); 71 72 /* key constants */ 73 #define XED_SETTINGS_USE_DEFAULT_FONT "use-default-font" 74 #define XED_SETTINGS_EDITOR_FONT "editor-font" 75 #define XED_SETTINGS_PREFER_DARK_THEME "prefer-dark-theme" 76 #define XED_SETTINGS_SCHEME "scheme" 77 #define XED_SETTINGS_CREATE_BACKUP_COPY "create-backup-copy" 78 #define XED_SETTINGS_AUTO_SAVE "auto-save" 79 #define XED_SETTINGS_AUTO_SAVE_INTERVAL "auto-save-interval" 80 #define XED_SETTINGS_UNDO_ACTIONS_LIMIT "undo-actions-limit" 81 #define XED_SETTINGS_MAX_UNDO_ACTIONS "max-undo-actions" 82 #define XED_SETTINGS_WRAP_MODE "wrap-mode" 83 #define XED_SETTINGS_TABS_SIZE "tabs-size" 84 #define XED_SETTINGS_INSERT_SPACES "insert-spaces" 85 #define XED_SETTINGS_AUTO_INDENT "auto-indent" 86 #define XED_SETTINGS_DISPLAY_LINE_NUMBERS "display-line-numbers" 87 #define XED_SETTINGS_HIGHLIGHT_CURRENT_LINE "highlight-current-line" 88 #define XED_SETTINGS_BRACKET_MATCHING "bracket-matching" 89 #define XED_SETTINGS_DISPLAY_RIGHT_MARGIN "display-right-margin" 90 #define XED_SETTINGS_RIGHT_MARGIN_POSITION "right-margin-position" 91 #define XED_SETTINGS_DRAW_WHITESPACE "draw-whitespace" 92 #define XED_SETTINGS_DRAW_WHITESPACE_LEADING "draw-whitespace-leading" 93 #define XED_SETTINGS_DRAW_WHITESPACE_TRAILING "draw-whitespace-trailing" 94 #define XED_SETTINGS_DRAW_WHITESPACE_INSIDE "draw-whitespace-inside" 95 #define XED_SETTINGS_DRAW_WHITESPACE_NEWLINE "draw-whitespace-newline" 96 #define XED_SETTINGS_SMART_HOME_END "smart-home-end" 97 #define XED_SETTINGS_WRITABLE_VFS_SCHEMES "writable-vfs-schemes" 98 #define XED_SETTINGS_RESTORE_CURSOR_POSITION "restore-cursor-position" 99 #define XED_SETTINGS_SYNTAX_HIGHLIGHTING "syntax-highlighting" 100 #define XED_SETTINGS_SEARCH_HIGHLIGHTING "search-highlighting" 101 #define XED_SETTINGS_ENABLE_TAB_SCROLLING "enable-tab-scrolling" 102 #define XED_SETTINGS_TOOLBAR_VISIBLE "toolbar-visible" 103 #define XED_SETTINGS_MENUBAR_VISIBLE "menubar-visible" 104 #define XED_SETTINGS_STATUSBAR_VISIBLE "statusbar-visible" 105 #define XED_SETTINGS_SIDE_PANEL_VISIBLE "side-panel-visible" 106 #define XED_SETTINGS_BOTTOM_PANEL_VISIBLE "bottom-panel-visible" 107 #define XED_SETTINGS_MINIMAP_VISIBLE "minimap-visible" 108 #define XED_SETTINGS_MAX_RECENTS "max-recents" 109 #define XED_SETTINGS_PRINT_SYNTAX_HIGHLIGHTING "print-syntax-highlighting" 110 #define XED_SETTINGS_PRINT_HEADER "print-header" 111 #define XED_SETTINGS_PRINT_WRAP_MODE "print-wrap-mode" 112 #define XED_SETTINGS_PRINT_LINE_NUMBERS "print-line-numbers" 113 #define XED_SETTINGS_PRINT_FONT_BODY_PANGO "print-font-body-pango" 114 #define XED_SETTINGS_PRINT_FONT_HEADER_PANGO "print-font-header-pango" 115 #define XED_SETTINGS_PRINT_FONT_NUMBERS_PANGO "print-font-numbers-pango" 116 #define XED_SETTINGS_ENCODING_AUTO_DETECTED "auto-detected" 117 #define XED_SETTINGS_ENCODING_SHOWN_IN_MENU "shown-in-menu" 118 #define XED_SETTINGS_ACTIVE_PLUGINS "active-plugins" 119 #define XED_SETTINGS_ENSURE_TRAILING_NEWLINE "ensure-trailing-newline" 120 121 /* window state keys */ 122 #define XED_SETTINGS_WINDOW_STATE "state" 123 #define XED_SETTINGS_WINDOW_SIZE "size" 124 #define XED_SETTINGS_SIDE_PANEL_SIZE "side-panel-size" 125 #define XED_SETTINGS_SIDE_PANEL_ACTIVE_PAGE "side-panel-active-page" 126 #define XED_SETTINGS_BOTTOM_PANEL_SIZE "bottom-panel-size" 127 #define XED_SETTINGS_BOTTOM_PANEL_ACTIVE_PAGE "bottom-panel-active-page" 128 #define XED_SETTINGS_ACTIVE_FILE_FILTER "filter-id" 129 130 G_END_DECLS 131 132 #endif /* __XED_SETTINGS_H__ */ 133