1 /* Changes to this file shall be overwritten upon execution of configure
2  * script, as primary-environment.h.in file is processed on package construction.
3  * You have been given fair warning. */
4 
5 #ifndef PRIMARY_ENVIRONMENT_H
6 #define PRIMARY_ENVIRONMENT_H
7 
8 // These defines are set by configuration script when librfm is installed.
9 #define GNU_LS 1
10 #define GNU_CP 1
11 #define GNU_MV 1
12 #define GNU_LN 1
13 #define GNU_RM 1
14 #define GNU_SHRED 1
15 
16 typedef struct environ_t {
17     gchar *env_var;
18     gchar *env_string;
19     gchar *env_text;
20     gchar **env_options;
21 } environ_t;
22 
23 /* increment version number for MCS_SHM_PLUGIN_FILE on configuration changes
24  * (i.e. adding or removing configuration environment variables) */
25 // MCS_SHM_PLUGIN_FILE depends on CONFIG_BUILD, so that CONFIG_BUILD id
26 // should be incremented with each modification to rfm environment variables.
27 // For rodent Gamma: build is 5190 (see files.h)
28 // For rodent Delta-unstable: build is 5858 (see files.h)
29 // For rodent Core-unstable: build is 6203 (see files.h)
30 // For rodent Core-rc1: build is 6214a (see files.h)
31 // For rodent Core-rc3: build is 6335i (see files.h)
32 //
33 //
34 enum {
35     RFM_DOUBLE_CLICK_NAVIGATION,/* toggle */
36     RFM_VERTICAL_TOOLBAR,       // boolean
37     RFM_USE_GTK_ICON_THEME,     // fallback to default system gtk icon theme
38     RFM_DRAG_DOES_MOVE,         /* toggle */
39     RFM_CONTENT_FOLDER_ICONS,
40     RFM_ENABLE_TIPS,           /* toggle */
41     RFM_ENABLE_LABEL_TIPS,           /* toggle */
42     RFM_PREVIEW_IMAGE_SIZE,     // integer
43     RFM_FIXED_FONT_SIZE,      /* size selector */
44     RFM_VARIABLE_FONT_SIZE,      /* size selector */
45     RFM_FIXED_FONT_FAMILY,      /* family selector */
46     RFM_VARIABLE_FONT_FAMILY,      /* family selector */
47     RFM_DEFAULT_ICON_SIZE,      /* size selector */
48     TERMINAL_CMD,               /* path selector */
49     EDITOR,                 /* path selector */
50     RFM_MAXIMUM_COMPLETION_OPTIONS,
51     RFM_MAXIMUM_DIAGNOSTIC_LINES,
52     RFM_LOAD_TIMEOUT,
53     /* desktop:: */
54     RFM_ENABLE_DESKTOP,         /* toggle */
55     RFM_ENABLE_DESKTOP_DIAGNOSTICS,    /* toggle */
56     RFM_NAVIGATE_DESKTOP,       /* toggle */
57     RFM_DESKTOP_TOP_MARGIN,     /* spin button*/
58     RFM_DESKTOP_BOTTOM_MARGIN,  /* spin button*/
59     RFM_DESKTOP_RIGHT_MARGIN,   /* spin button*/
60     RFM_DESKTOP_LEFT_MARGIN,    /* spin button*/
61     RFM_DESKTOP_DIR,            /* path selector */
62     RFM_DESKTOP_IMAGE,          /* path selector */
63     RFM_DESKTOP_COLOR,          /* color selector desktop */
64     RFM_ICONVIEW_COLOR,         /* color selector iconview */
65     RFM_TRANSPARENCY,           /* opacity selector, iconview */
66 
67     RFM_PLUGIN_FLAGS,                   /*  */
68     RFM_MODULE_FLAGS,                   /*  */
69 
70     RFM_TOOLBAR,
71     RFM_PASTEBOARD_SERIAL,
72     RFM_BOOKMARK_SERIAL,
73 
74     ///// core options ///////////////////////////////////////////////////////
75     RFM_SHRED_FLAGS,                   /*  */
76     RFM_LS_FLAGS,                   /*  */
77     RFM_CP_FLAGS,                   /*  */
78     RFM_MV_FLAGS,                   /*  */
79     RFM_LN_FLAGS,                   /*  */
80     RFM_RM_FLAGS,                   /*  */
81 
82     // core option parameters
83     RFM_SHRED_iterations,	// combo type
84     RFM_SHRED_size,         	// combo type
85 
86 #ifdef GNU_LS
87     RFM_LS_ignore,  		// entry type
88     RFM_LS_tabsize,  		// entry type
89     RFM_LS_blocksize,  		// entry type
90     RFM_LS_hide,  		// entry type
91     RFM_LS_width,  		// entry type
92     RFM_LS_format, 		// combo type
93     RFM_LS_istyle,		// combo type
94     RFM_LS_qstyle,		// combo type
95     RFM_LS_sort,		// combo type
96     RFM_LS_time,		// combo type
97     RFM_LS_tstyle,		// combo type
98 #endif
99 #ifdef GNU_CP
100     RFM_CP_backup, 		// combo type
101     RFM_CP_suffix,		// combo type
102     RFM_CP_preserve,		// combo type
103     RFM_CP_no_preserve,		// combo type
104     RFM_CP_reflink, 		// combo type
105     RFM_CP_sparse,		// combo type
106 #endif
107 #ifdef GNU_MV
108     RFM_MV_backup,  		// combo type
109     RFM_MV_suffix,  		// combo type
110 #endif
111 #ifdef GNU_LN
112     RFM_LN_backup, 		// combo type
113     RFM_LN_suffix, 		// combo type
114 #endif
115 #ifdef GNU_RM
116     RFM_RM_interactive,  	// combo type
117 #endif
118 
119     SMB_USER,                   /* input text */
120     SUDO_ASKPASS,
121     SSH_ASKPASS,
122 
123     VERSION_CONTROL,
124     PWD,
125     RFM_OPTIONS
126 };
127 
128 environ_t  *rfm_get_environ(void);
129 rfm_global_t *rfm_global_new(void);
130 rfm_global_t *rfm_global(void);
131 
132 void rfm_set_gtk_thread(GThread *thread);
133 GThread *rfm_get_gtk_thread(void);
134 void rfm_init(void);
135 #endif
136