1 /* editor options dialog box
3 Copyright (C) 1996, 1997 the Free Software Foundation
5 Authors: 1996, 1997 Paul Sheer
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
29 #ifndef USE_INTERNAL_EDIT
30 #define USE_INTERNAL_EDIT 1
33 #include "../src/main.h" /* extern int option_this_and_that ... */
36 {N_("Intuitive"), N_("Emacs"), NULL
};
39 {N_("None"), N_("Dynamic paragraphing"), N_("Type writer wrap"), NULL
};
41 extern int option_syntax_highlighting
;
43 void i18n_translate_array (char *array
[])
47 while (*array
!=NULL
) {
53 void edit_options_dialog (void)
55 char wrap_length
[32], tab_spacing
[32], *p
, *q
;
57 int tedit_key_emulation
= edit_key_emulation
;
58 int toption_fill_tabs_with_spaces
= option_fill_tabs_with_spaces
;
59 int tedit_confirm_save
= edit_confirm_save
;
60 int tedit_syntax_highlighting
= option_syntax_highlighting
;
61 int toption_return_does_auto_indent
= option_return_does_auto_indent
;
62 int toption_backspace_through_tabs
= option_backspace_through_tabs
;
63 int toption_fake_half_tabs
= option_fake_half_tabs
;
65 QuickWidget quick_widgets
[] =
68 {quick_button
, 6, 10, OPT_DLG_H
- 3, OPT_DLG_H
, N_("&Cancel"), 0, B_CANCEL
, 0,
69 0, XV_WLAY_DONTCARE
, NULL
},
71 {quick_button
, 2, 10, OPT_DLG_H
- 3, OPT_DLG_H
, N_("&Ok"), 0, B_ENTER
, 0,
72 0, XV_WLAY_DONTCARE
, NULL
},
74 {quick_label
, OPT_DLG_W
/ 2, OPT_DLG_W
, OPT_DLG_H
- 4, OPT_DLG_H
, N_("Word wrap line length : "), 0, 0,
75 0, 0, XV_WLAY_DONTCARE
, NULL
},
77 {quick_input
, OPT_DLG_W
/ 2 + 24, OPT_DLG_W
, OPT_DLG_H
- 4, OPT_DLG_H
, "", OPT_DLG_W
/ 2 - 4 - 24, 0,
78 0, 0, XV_WLAY_DONTCARE
, "i"},
80 {quick_label
, OPT_DLG_W
/ 2, OPT_DLG_W
, OPT_DLG_H
- 5, OPT_DLG_H
, N_("Tab spacing : "), 0, 0,
81 0, 0, XV_WLAY_DONTCARE
, NULL
},
83 {quick_input
, OPT_DLG_W
/ 2 + 24, OPT_DLG_W
, OPT_DLG_H
- 5, OPT_DLG_H
, "", OPT_DLG_W
/ 2 - 4 - 24, 0,
84 0, 0, XV_WLAY_DONTCARE
, "i"},
86 #if !defined(MIDNIGHT) || defined(HAVE_SYNTAXH)
88 {quick_checkbox
, OPT_DLG_W
/ 2 + 1, OPT_DLG_W
, OPT_DLG_H
- 7, OPT_DLG_H
, N_("synta&X highlighting"), 8, 0,
89 0, 0, XV_WLAY_DONTCARE
, NULL
},
94 {quick_checkbox
, OPT_DLG_W
/ 2 + 1, OPT_DLG_W
, OPT_DLG_H
- 8, OPT_DLG_H
, N_("confir&M before saving"), 6, 0,
95 0, 0, XV_WLAY_DONTCARE
, NULL
},
97 {quick_checkbox
, OPT_DLG_W
/ 2 + 1, OPT_DLG_W
, OPT_DLG_H
- 9, OPT_DLG_H
, N_("fill tabs with &Spaces"), 0, 0,
98 0, 0, XV_WLAY_DONTCARE
, NULL
},
100 {quick_checkbox
, OPT_DLG_W
/ 2 + 1, OPT_DLG_W
, OPT_DLG_H
- 10, OPT_DLG_H
, N_("&Return does autoindent"), 0, 0,
101 0, 0, XV_WLAY_DONTCARE
, NULL
},
103 {quick_checkbox
, OPT_DLG_W
/ 2 + 1, OPT_DLG_W
, OPT_DLG_H
- 11, OPT_DLG_H
, N_("&Backspace through tabs"), 0, 0,
104 0, 0, XV_WLAY_DONTCARE
, NULL
},
106 {quick_checkbox
, OPT_DLG_W
/ 2 + 1, OPT_DLG_W
, OPT_DLG_H
- 12, OPT_DLG_H
, N_("&Fake half tabs"), 0, 0,
107 0, 0, XV_WLAY_DONTCARE
, NULL
},
109 {quick_radio
, 5, OPT_DLG_W
, OPT_DLG_H
- 6, OPT_DLG_H
, "", 3, 0,
110 0, wrap_str
, XV_WLAY_DONTCARE
, "wrapm"},
112 {quick_label
, 4, OPT_DLG_W
, OPT_DLG_H
- 7, OPT_DLG_H
, N_("Wrap mode"), 0, 0,
113 0, 0, XV_WLAY_DONTCARE
, NULL
},
115 {quick_radio
, 5, OPT_DLG_W
, OPT_DLG_H
- 11, OPT_DLG_H
, "", 2, 0,
116 0, key_emu_str
, XV_WLAY_DONTCARE
, "keyemu"},
118 {quick_label
, 4, OPT_DLG_W
, OPT_DLG_H
- 12, OPT_DLG_H
, N_("Key emulation"), 0, 0,
119 0, 0, XV_WLAY_DONTCARE
, NULL
},
122 static int i18n_flag
= 0;
125 i18n_translate_array (key_emu_str
);
126 i18n_translate_array (wrap_str
);
130 sprintf (wrap_length
, "%d", option_word_wrap_line_length
);
131 sprintf (tab_spacing
, "%d", option_tab_spacing
);
133 quick_widgets
[3].text
= wrap_length
;
134 quick_widgets
[3].str_result
= &p
;
135 quick_widgets
[5].text
= tab_spacing
;
136 quick_widgets
[5].str_result
= &q
;
137 quick_widgets
[5 + OA
].result
= &tedit_syntax_highlighting
;
138 quick_widgets
[6 + OA
].result
= &tedit_confirm_save
;
139 quick_widgets
[7 + OA
].result
= &toption_fill_tabs_with_spaces
;
140 quick_widgets
[8 + OA
].result
= &toption_return_does_auto_indent
;
141 quick_widgets
[9 + OA
].result
= &toption_backspace_through_tabs
;
142 quick_widgets
[10 + OA
].result
= &toption_fake_half_tabs
;
144 if (option_auto_para_formatting
)
146 else if (option_typewriter_wrap
)
151 quick_widgets
[11 + OA
].result
= &wrap_mode
;
152 quick_widgets
[11 + OA
].value
= wrap_mode
;
154 quick_widgets
[13 + OA
].result
= &tedit_key_emulation
;
155 quick_widgets
[13 + OA
].value
= tedit_key_emulation
;
158 QuickDialog Quick_options
=
159 {OPT_DLG_W
, OPT_DLG_H
, -1, 0, N_(" Editor options "),
160 "", "quick_input", 0};
162 Quick_options
.widgets
= quick_widgets
;
164 if (quick_dialog (&Quick_options
) != B_CANCEL
) {
166 option_word_wrap_line_length
= atoi (p
);
170 option_tab_spacing
= atoi (q
);
171 if (option_tab_spacing
< 0)
172 option_tab_spacing
= 2;
173 option_tab_spacing
+= option_tab_spacing
& 1;
176 option_syntax_highlighting
= *quick_widgets
[5 + OA
].result
;
177 edit_confirm_save
= *quick_widgets
[6 + OA
].result
;
178 option_fill_tabs_with_spaces
= *quick_widgets
[7 + OA
].result
;
179 option_return_does_auto_indent
= *quick_widgets
[8 + OA
].result
;
180 option_backspace_through_tabs
= *quick_widgets
[9 + OA
].result
;
181 option_fake_half_tabs
= *quick_widgets
[10 + OA
].result
;
183 if (*quick_widgets
[11 + OA
].result
== 1) {
184 option_auto_para_formatting
= 1;
185 option_typewriter_wrap
= 0;
186 } else if (*quick_widgets
[11 + OA
].result
== 2) {
187 option_auto_para_formatting
= 0;
188 option_typewriter_wrap
= 1;
190 option_auto_para_formatting
= 0;
191 option_typewriter_wrap
= 0;
194 edit_key_emulation
= *quick_widgets
[13 + OA
].result
;