1 /*- 2 * Copyright (c) 2004-2008 os-cillation e.K. 3 * 4 * Written by Benedikt Meurer <benny@xfce.org>. 5 * 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU General Public License as published by the Free 8 * Software Foundation; either version 2 of the License, or (at your option) 9 * any later version. 10 * 11 * This program is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 14 * more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 #ifndef TERMINAL_OPTIONS_H 21 #define TERMINAL_OPTIONS_H 22 23 #include <glib.h> 24 #include <terminal/terminal-preferences.h> 25 26 G_BEGIN_DECLS 27 28 typedef enum 29 { 30 TERMINAL_VISIBILITY_DEFAULT, 31 TERMINAL_VISIBILITY_SHOW, 32 TERMINAL_VISIBILITY_HIDE 33 } TerminalVisibility; 34 35 typedef enum 36 { 37 TERMINAL_ZOOM_LEVEL_MINIMUM = -7, 38 TERMINAL_ZOOM_LEVEL_XXXXX_SMALL = -6, 39 TERMINAL_ZOOM_LEVEL_XXXX_SMALL = -5, 40 TERMINAL_ZOOM_LEVEL_XXX_SMALL = -4, 41 TERMINAL_ZOOM_LEVEL_XX_SMALL = -3, 42 TERMINAL_ZOOM_LEVEL_X_SMALL = -2, 43 TERMINAL_ZOOM_LEVEL_SMALL = -1, 44 TERMINAL_ZOOM_LEVEL_MEDIUM = 0, 45 TERMINAL_ZOOM_LEVEL_LARGE = +1, 46 TERMINAL_ZOOM_LEVEL_X_LARGE = +2, 47 TERMINAL_ZOOM_LEVEL_XX_LARGE = +3, 48 TERMINAL_ZOOM_LEVEL_XXX_LARGE = +4, 49 TERMINAL_ZOOM_LEVEL_XXXX_LARGE = +5, 50 TERMINAL_ZOOM_LEVEL_XXXXX_LARGE = +6, 51 TERMINAL_ZOOM_LEVEL_MAXIMUM = +7, 52 TERMINAL_ZOOM_LEVEL_DEFAULT = TERMINAL_ZOOM_LEVEL_MEDIUM 53 } TerminalZoomLevel; 54 55 typedef struct 56 { 57 gchar **command; 58 gchar *directory; 59 gchar *title; 60 gchar *initial_title; 61 gchar *color_text; 62 gchar *color_bg; 63 gchar *color_title; 64 TerminalTitle dynamic_title_mode; 65 gint position; 66 guint hold : 1; 67 guint active : 1; 68 } TerminalTabAttr; 69 70 typedef struct 71 { 72 GSList *tabs; 73 gchar *display; 74 gchar *geometry; 75 gchar *role; 76 gchar *startup_id; 77 gchar *sm_client_id; 78 gchar *icon; 79 gchar *font; 80 guint drop_down : 1; 81 guint fullscreen : 1; 82 guint maximize : 1; 83 guint minimize : 1; 84 guint reuse_last_window : 1; 85 TerminalVisibility menubar; 86 TerminalVisibility borders; 87 TerminalVisibility toolbar; 88 TerminalVisibility scrollbar; 89 TerminalZoomLevel zoom; 90 } TerminalWindowAttr; 91 92 typedef struct 93 { 94 guint show_help : 1; 95 guint show_version : 1; 96 guint show_colors : 1; 97 guint show_preferences : 1; 98 guint disable_server : 1; 99 } TerminalOptions; 100 101 void terminal_options_parse (gint argc, 102 gchar **argv, 103 TerminalOptions *options); 104 105 GSList *terminal_window_attr_parse (gint argc, 106 gchar **argv, 107 gboolean can_reuse_tab, 108 GError **error); 109 110 TerminalWindowAttr *terminal_window_attr_new (void); 111 112 TerminalTabAttr *terminal_tab_attr_new (void); 113 114 void terminal_tab_attr_free (TerminalTabAttr *attr); 115 116 void terminal_window_attr_free (TerminalWindowAttr *attr); 117 118 G_END_DECLS 119 120 #endif /* !TERMINAL_OPTIONS_H */ 121