Mercurial > hg > xemacs-beta
comparison src/menubar-msw.c @ 867:804517e16990
[xemacs-hg @ 2002-06-05 09:54:39 by ben]
Textual renaming: text/char names
abbrev.c, alloc.c, buffer.c, buffer.h, bytecode.c, callint.c, casefiddle.c, casetab.c, charset.h, chartab.c, chartab.h, cmds.c, console-gtk.h, console-msw.c, console-msw.h, console-stream.c, console-tty.c, console-x.c, console-x.h, console.h, data.c, device-msw.c, device-x.c, dialog-msw.c, dired-msw.c, dired.c, doc.c, doprnt.c, editfns.c, eldap.c, emodules.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, event-unixoid.c, events.c, events.h, file-coding.c, file-coding.h, fileio.c, filelock.c, fns.c, font-lock.c, frame-gtk.c, frame-msw.c, frame-x.c, frame.c, glyphs-eimage.c, glyphs-msw.c, glyphs-x.c, glyphs.c, glyphs.h, gpmevent.c, gui-x.c, gui-x.h, gui.c, gui.h, hpplay.c, indent.c, insdel.c, insdel.h, intl-win32.c, keymap.c, line-number.c, line-number.h, lisp-disunion.h, lisp-union.h, lisp.h, lread.c, lrecord.h, lstream.c, lstream.h, md5.c, menubar-msw.c, menubar-x.c, menubar.c, minibuf.c, mule-ccl.c, mule-charset.c, mule-coding.c, mule-wnnfns.c, ndir.h, nt.c, objects-gtk.c, objects-gtk.h, objects-msw.c, objects-tty.c, objects-x.c, objects.c, objects.h, postgresql.c, print.c, process-nt.c, process-unix.c, process.c, procimpl.h, realpath.c, redisplay-gtk.c, redisplay-msw.c, redisplay-output.c, redisplay-tty.c, redisplay-x.c, redisplay.c, redisplay.h, regex.c, search.c, select-common.h, select-gtk.c, select-x.c, sound.h, symbols.c, syntax.c, syntax.h, sysdep.c, sysdep.h, sysdir.h, sysfile.h, sysproc.h, syspwd.h, systime.h, syswindows.h, termcap.c, tests.c, text.c, text.h, toolbar-common.c, tooltalk.c, ui-gtk.c, unexnt.c, unicode.c, win32.c: Text/char naming rationalization.
[a] distinguish between "charptr" when it refers to operations on
the pointer itself and when it refers to operations on text; and
[b] use consistent naming for everything referring to internal
format, i.e.
Itext == text in internal format
Ibyte == a byte in such text
Ichar == a char as represented in internal character format
thus e.g.
set_charptr_emchar -> set_itext_ichar
The pre and post tags on either side of this change are:
pre-internal-format-textual-renaming
post-internal-format-textual-renaming
See the Internals Manual for details of exactly how this was done,
how to handle the change in your workspace, etc.
author | ben |
---|---|
date | Wed, 05 Jun 2002 09:58:45 +0000 |
parents | 2b6fa2618f76 |
children | 79c6ff3eef26 |
comparison
equal
deleted
inserted
replaced
866:613552a02607 | 867:804517e16990 |
---|---|
119 #define MENU_ITEM_ID_BITS(x) (((x) & 0x7FFF) | 0x8000) | 119 #define MENU_ITEM_ID_BITS(x) (((x) & 0x7FFF) | 0x8000) |
120 static HMENU top_level_menu; | 120 static HMENU top_level_menu; |
121 | 121 |
122 /* | 122 /* |
123 * Translate X accelerator syntax to win32 accelerator syntax. | 123 * Translate X accelerator syntax to win32 accelerator syntax. |
124 * accel = (Emchar*) to receive the accelerator character | 124 * accel = (Ichar*) to receive the accelerator character |
125 * or NULL to suppress accelerators in the menu or dialog item. | 125 * or NULL to suppress accelerators in the menu or dialog item. |
126 * | 126 * |
127 * %% is replaced with % | 127 * %% is replaced with % |
128 * if accel is NULL: | 128 * if accel is NULL: |
129 * %_ is removed. | 129 * %_ is removed. |
133 * (If there is no accelerator, it will be added on the first character.) | 133 * (If there is no accelerator, it will be added on the first character.) |
134 * | 134 * |
135 */ | 135 */ |
136 | 136 |
137 Lisp_Object | 137 Lisp_Object |
138 mswindows_translate_menu_or_dialog_item (Lisp_Object item, Emchar *accel) | 138 mswindows_translate_menu_or_dialog_item (Lisp_Object item, Ichar *accel) |
139 { | 139 { |
140 Bytecount len = XSTRING_LENGTH (item); | 140 Bytecount len = XSTRING_LENGTH (item); |
141 Intbyte *it = (Intbyte *) ALLOCA (2 * len + 42), *ptr = it; | 141 Ibyte *it = (Ibyte *) ALLOCA (2 * len + 42), *ptr = it; |
142 | 142 |
143 memcpy (ptr, XSTRING_DATA (item), len + 1); | 143 memcpy (ptr, XSTRING_DATA (item), len + 1); |
144 if (accel) | 144 if (accel) |
145 *accel = '\0'; | 145 *accel = '\0'; |
146 | 146 |
147 /* Escape '&' as '&&' */ | 147 /* Escape '&' as '&&' */ |
148 | 148 |
149 while ((ptr = (Intbyte *) memchr (ptr, '&', len - (ptr - it))) != NULL) | 149 while ((ptr = (Ibyte *) memchr (ptr, '&', len - (ptr - it))) != NULL) |
150 { | 150 { |
151 memmove (ptr + 1, ptr, (len - (ptr - it)) + 1); | 151 memmove (ptr + 1, ptr, (len - (ptr - it)) + 1); |
152 len++; | 152 len++; |
153 ptr += 2; | 153 ptr += 2; |
154 } | 154 } |
155 | 155 |
156 /* Replace XEmacs accelerator '%_' with Windows accelerator '&' | 156 /* Replace XEmacs accelerator '%_' with Windows accelerator '&' |
157 and `%%' with `%'. */ | 157 and `%%' with `%'. */ |
158 ptr = it; | 158 ptr = it; |
159 while ((ptr = (Intbyte *) memchr (ptr, '%', len - (ptr - it))) != NULL) | 159 while ((ptr = (Ibyte *) memchr (ptr, '%', len - (ptr - it))) != NULL) |
160 { | 160 { |
161 if (*(ptr + 1) == '_') | 161 if (*(ptr + 1) == '_') |
162 { | 162 { |
163 if (accel) | 163 if (accel) |
164 { | 164 { |
165 *ptr = '&'; | 165 *ptr = '&'; |
166 if (!*accel) | 166 if (!*accel) |
167 *accel = DOWNCASE (0, charptr_emchar (ptr + 2)); | 167 *accel = DOWNCASE (0, itext_ichar (ptr + 2)); |
168 memmove (ptr + 1, ptr + 2, len - (ptr - it + 2) + 1); | 168 memmove (ptr + 1, ptr + 2, len - (ptr - it + 2) + 1); |
169 len--; | 169 len--; |
170 } | 170 } |
171 else /* Skip accelerator */ | 171 else /* Skip accelerator */ |
172 { | 172 { |
187 if (accel && !*accel) | 187 if (accel && !*accel) |
188 { | 188 { |
189 /* Force a default accelerator */ | 189 /* Force a default accelerator */ |
190 ptr = it; | 190 ptr = it; |
191 memmove (ptr + 1, ptr, len + 1); | 191 memmove (ptr + 1, ptr, len + 1); |
192 *accel = DOWNCASE (0, charptr_emchar (ptr + 1)); | 192 *accel = DOWNCASE (0, itext_ichar (ptr + 1)); |
193 *ptr = '&'; | 193 *ptr = '&'; |
194 | 194 |
195 len++; | 195 len++; |
196 } | 196 } |
197 | 197 |
202 * This returns Windows-style menu item string: | 202 * This returns Windows-style menu item string: |
203 * "Left Flush\tRight Flush" | 203 * "Left Flush\tRight Flush" |
204 */ | 204 */ |
205 | 205 |
206 static Lisp_Object | 206 static Lisp_Object |
207 displayable_menu_item (Lisp_Object gui_item, int bar_p, Emchar *accel) | 207 displayable_menu_item (Lisp_Object gui_item, int bar_p, Ichar *accel) |
208 { | 208 { |
209 Lisp_Object left, right = Qnil; | 209 Lisp_Object left, right = Qnil; |
210 | 210 |
211 /* Left flush part of the string */ | 211 /* Left flush part of the string */ |
212 left = gui_item_display_flush_left (gui_item); | 212 left = gui_item_display_flush_left (gui_item); |
334 /* Submenu */ | 334 /* Submenu */ |
335 HMENU submenu; | 335 HMENU submenu; |
336 Lisp_Object gui_item = allocate_gui_item (); | 336 Lisp_Object gui_item = allocate_gui_item (); |
337 Lisp_Gui_Item *pgui_item = XGUI_ITEM (gui_item); | 337 Lisp_Gui_Item *pgui_item = XGUI_ITEM (gui_item); |
338 struct gcpro gcpro1, gcpro2, gcpro3; | 338 struct gcpro gcpro1, gcpro2, gcpro3; |
339 Emchar accel; | 339 Ichar accel; |
340 Extbyte *itemext; | 340 Extbyte *itemext; |
341 | 341 |
342 GCPRO3 (gui_item, path, *accel_list); | 342 GCPRO3 (gui_item, path, *accel_list); |
343 | 343 |
344 menu_parse_submenu_keywords (item, gui_item); | 344 menu_parse_submenu_keywords (item, gui_item); |
392 /* An ordinary item */ | 392 /* An ordinary item */ |
393 Lisp_Object style, id; | 393 Lisp_Object style, id; |
394 Lisp_Object gui_item = gui_parse_item_keywords (item); | 394 Lisp_Object gui_item = gui_parse_item_keywords (item); |
395 Lisp_Gui_Item *pgui_item = XGUI_ITEM (gui_item); | 395 Lisp_Gui_Item *pgui_item = XGUI_ITEM (gui_item); |
396 struct gcpro gcpro1, gcpro2; | 396 struct gcpro gcpro1, gcpro2; |
397 Emchar accel; | 397 Ichar accel; |
398 Extbyte *itemext; | 398 Extbyte *itemext; |
399 | 399 |
400 GCPRO2 (gui_item, *accel_list); | 400 GCPRO2 (gui_item, *accel_list); |
401 | 401 |
402 if (!gui_item_included_p (gui_item, Vmenubar_configuration)) | 402 if (!gui_item_included_p (gui_item, Vmenubar_configuration)) |
670 current_hash_table = Qnil; | 670 current_hash_table = Qnil; |
671 prune_menubar (f); | 671 prune_menubar (f); |
672 } | 672 } |
673 | 673 |
674 int | 674 int |
675 mswindows_char_is_accelerator (struct frame *f, Emchar ch) | 675 mswindows_char_is_accelerator (struct frame *f, Ichar ch) |
676 { | 676 { |
677 Lisp_Object hash = FRAME_MSWINDOWS_MENU_HASH_TABLE (f); | 677 Lisp_Object hash = FRAME_MSWINDOWS_MENU_HASH_TABLE (f); |
678 | 678 |
679 if (NILP (hash)) | 679 if (NILP (hash)) |
680 return 0; | 680 return 0; |