ru.po: Heavily updated translation
[midnight-commander.git] / gtkedit / editoptions.c
blob143c7c03d706960df741f69b00736382bba42f81
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
20 02111-1307, USA.
23 #include <config.h>
24 #include "edit.h"
26 #define OPT_DLG_H 15
27 #define OPT_DLG_W 72
29 #ifndef USE_INTERNAL_EDIT
30 #define USE_INTERNAL_EDIT 1
31 #endif
33 #include "../src/main.h" /* extern int option_this_and_that ... */
35 char *key_emu_str[] =
36 {N_("Intuitive"), N_("Emacs"), NULL};
38 char *wrap_str[] =
39 {N_("None"), N_("Dynamic paragraphing"), N_("Type writer wrap"), NULL};
41 extern int option_syntax_highlighting;
43 void i18n_translate_array (char *array[])
45 size_t maxlen = 0;
47 while (*array!=NULL) {
48 *array = _(*array);
49 array++;
53 void edit_options_dialog (void)
55 char wrap_length[32], tab_spacing[32], *p, *q;
56 int wrap_mode = 0;
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[] =
67 /*0 */
68 {quick_button, 6, 10, OPT_DLG_H - 3, OPT_DLG_H, N_("&Cancel"), 0, B_CANCEL, 0,
69 0, XV_WLAY_DONTCARE, NULL},
70 /*1 */
71 {quick_button, 2, 10, OPT_DLG_H - 3, OPT_DLG_H, N_("&Ok"), 0, B_ENTER, 0,
72 0, XV_WLAY_DONTCARE, NULL},
73 /*2 */
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},
76 /*3 */
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"},
79 /*4 */
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},
82 /*5 */
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"},
85 /*6 */
86 #if !defined(MIDNIGHT) || defined(HAVE_SYNTAXH)
87 #define OA 1
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},
90 #else
91 #define OA 0
92 #endif
93 /*7 */
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},
96 /*8 */
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},
99 /*9 */
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},
102 /*10 */
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},
105 /*11 */
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},
108 /*12 */
109 {quick_radio, 5, OPT_DLG_W, OPT_DLG_H - 6, OPT_DLG_H, "", 3, 0,
110 0, wrap_str, XV_WLAY_DONTCARE, "wrapm"},
111 /*13 */
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},
114 /*14 */
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"},
117 /*15 */
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},
120 {0}};
122 static int i18n_flag = 0;
124 if (!i18n_flag) {
125 i18n_translate_array (key_emu_str);
126 i18n_translate_array (wrap_str);
127 i18n_flag = 1;
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)
145 wrap_mode = 1;
146 else if (option_typewriter_wrap)
147 wrap_mode = 2;
148 else
149 wrap_mode = 0;
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) {
165 if (p) {
166 option_word_wrap_line_length = atoi (p);
167 free (p);
169 if (q) {
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;
174 free (q);
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;
189 } else {
190 option_auto_para_formatting = 0;
191 option_typewriter_wrap = 0;
194 edit_key_emulation = *quick_widgets[13 + OA].result;
196 return;
197 } else {
198 return;