annotate lisp/mule/mule-msw-init-late.el @ 5047:07dcc7000bbf

put width before height consistently, fix a real bug found in the process -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2010-02-20 Ben Wing <ben@xemacs.org> * EmacsFrame.c (EmacsFrameRecomputeCellSize): * faces.c (default_face_font_info): * faces.c (default_face_width_and_height): * faces.c (Fface_list): * faces.h: * frame-gtk.c (gtk_set_initial_frame_size): * frame-gtk.c (gtk_set_frame_size): * frame-gtk.c (gtk_recompute_cell_sizes): * frame.c: * frame.c (frame_conversion_internal_1): * frame.c (change_frame_size_1): * frame.c (change_frame_size): * glyphs-msw.c (mswindows_combo_box_instantiate): * glyphs-widget.c (widget_instantiate): * glyphs-widget.c (tree_view_query_geometry): * glyphs-widget.c (Fwidget_logical_to_character_width): * glyphs-widget.c (Fwidget_logical_to_character_height): * indent.c (vmotion_pixels): * redisplay-output.c (get_cursor_size_and_location): * redisplay-xlike-inc.c (XLIKE_output_eol_cursor): * redisplay-xlike-inc.c (XLIKE_flash): * redisplay.c (calculate_baseline): * redisplay.c (start_with_point_on_display_line): * redisplay.c (glyph_to_pixel_translation): * redisplay.c (pixel_to_glyph_translation): * window.c (margin_width_internal): * window.c (frame_size_valid_p): * window.c (frame_pixsize_valid_p): * window.c (check_frame_size): * window.c (set_window_pixsize): * window.c (window_pixel_height_to_char_height): * window.c (window_char_height_to_pixel_height): * window.c (window_displayed_height): * window.c (window_pixel_width_to_char_width): * window.c (window_char_width_to_pixel_width): * window.c (change_window_height): * window.c (window_scroll): * window.h: IMPORTANT: Aidan and Carbon Repo, please pay attention and fix appropriately! Rename: default_face_height_and_width -> default_face_width_and_height and reverse width/height arguments. Reverse width/height arguments to the following functions: -- default_face_font_info -- default_face_height_and_width (see above) -- check_frame_size -- frame_size_valid_p (made into a static function) Fix a redisplay bug where args to default_face_height_and_width were in the wrong order.
author Ben Wing <ben@xemacs.org>
date Sat, 20 Feb 2010 18:56:01 -0600
parents 980575c76541
children 308d34e9f07d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
780
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
1 ;;; mule-msw-init-late.el --- initialization code for MS Windows under MULE
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
2 ;;; Copyright (C) 2001, 2002 Ben Wing.
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
3
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
4 ;; This file is part of XEmacs.
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
5
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
6 ;; XEmacs is free software; you can redistribute it and/or modify it
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
7 ;; under the terms of the GNU General Public License as published by
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
8 ;; the Free Software Foundation; either version 2, or (at your option)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
9 ;; any later version.
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
10
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
11 ;; XEmacs is distributed in the hope that it will be useful, but
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
12 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
13 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
14 ;; General Public License for more details.
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
15
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
16 ;; You should have received a copy of the GNU General Public License
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
17 ;; along with XEmacs; see the file COPYING. If not, write to the
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
18 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
19 ;; Boston, MA 02111-1307, USA.
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
20
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
21 ;; mapping between XEmacs charsets and code pages. something like this
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
22 ;; will might around once all the Unicode code is written, so we know how
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
23 ;; to choose the right font. (perhaps "code pages" will become "Unicode
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
24 ;; subranges"; they're more or less equivalent under Windows from a font
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
25 ;; perspective.) But ... in reality, we can just query the charset for its
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
26 ;; Unicode ranges, and the "charset ID" is not a good indicator of what a
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
27 ;; particular font supports; e.g. there's no charset ID at all for Indian
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
28 ;; fonts, but Windows clearly supports them. (The docs say that Indian
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
29 ;; support is "all Unicode"; i.e. charset ID's are on their way out. I
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
30 ;; guess we're supposed to query the font for what ranges it supports, and
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
31 ;; what its preferred range is.)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
32
872
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
33 (let ((l '((ascii . "Western")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
34 (latin-iso8859-2 . "Central European")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
35 (cyrillic-iso8859-5 . "Cyrillic")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
36 (latin-iso8859-1 . "Western")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
37 (greek-iso8859-7 . "Greek")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
38 (latin-iso8859-9 . "Turkish")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
39 (hebrew-iso8859-8 . "Hebrew")
4805
980575c76541 Move the arabic-iso8859-6 character set back to C, otherwise X11 lookup fails.
Aidan Kehoe <kehoea@parhasard.net>
parents: 4491
diff changeset
40 (arabic-iso8859-6 . "Arabic")
872
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
41 (latin-iso8859-4 . "Baltic")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
42 (vietnamese-viscii-lower . "Viet Nam")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
43 (vietnamese-viscii-upper . "Viet Nam")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
44 (thai-tis620 . "Thai")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
45 (latin-jisx0201 . "Japanese")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
46 (katakana-jisx0201 . "Japanese")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
47 ;; (japanese-jisx0208-1978 . "Japanese")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
48 (japanese-jisx0208 . "Japanese")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
49 (japanese-jisx0212 . "Japanese")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
50 (chinese-gb2312 . "Simplified Chinese")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
51 (korean-ksc5601 . "Korean")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
52 (chinese-big5-1 . "Traditional Chinese")
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
53 (chinese-big5-2 . "Traditional Chinese"))))
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
54 (while l
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
55 (let ((charset (car (car l)))
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
56 (registry (cdr (car l))))
4103
b4f4e0cc90f1 [xemacs-hg @ 2007-08-07 23:08:47 by aidan]
aidan
parents: 872
diff changeset
57 (declare-fboundp (mswindows-set-charset-registry charset registry))
872
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
58 (setq l (cdr l)))))
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 780
diff changeset
59
780
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
60 (let ((l '((ascii . 1252)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
61 (latin-iso8859-2 . 1250)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
62 (cyrillic-iso8859-5 . 1251)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
63 (latin-iso8859-1 . 1252)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
64 (greek-iso8859-7 . 1253)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
65 (latin-iso8859-9 . 1254)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
66 (hebrew-iso8859-8 . 1255)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
67 ;; (arabic-iso8859-6 . 1256)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
68 (latin-iso8859-4 . 1257)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
69 (vietnamese-viscii-lower . 1258)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
70 (vietnamese-viscii-upper . 1258)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
71 ;; (thai-tis620 . 874)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
72 (latin-jisx0201 . 932)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
73 (katakana-jisx0201 . 932)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
74 ;; (japanese-jisx0208-1978 . 932)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
75 (japanese-jisx0208 . 932)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
76 (japanese-jisx0212 . 932)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
77 (chinese-gb2312 . 936)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
78 (korean-ksc5601 . 949)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
79 (chinese-big5-1 . 950)
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
80 (chinese-big5-2 . 950))))
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
81 (while l
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
82 (let ((charset (car (car l)))
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
83 (code-page (cdr (car l))))
4103
b4f4e0cc90f1 [xemacs-hg @ 2007-08-07 23:08:47 by aidan]
aidan
parents: 872
diff changeset
84 (declare-fboundp (mswindows-set-charset-code-page charset code-page))
780
578cb2932d72 [xemacs-hg @ 2002-03-18 10:07:30 by ben]
ben
parents:
diff changeset
85 (setq l (cdr l)))))