annotate src/objects-msw.h @ 589:37fe04af1590

[xemacs-hg @ 2001-05-31 02:00:29 by wmperry] Regenerated some .c files from their lisp equivalents for GTK bindings. Fix buttons as modifiers code so that text selection works in GTK event loop.
author wmperry
date Thu, 31 May 2001 02:00:31 +0000
parents abe6d1db359e
children 943eaba38521
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 /* mswindows-specific Lisp objects.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 Copyright (C) 1993, 1994 Free Software Foundation, Inc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 Copyright (C) 1995 Board of Trustees, University of Illinois.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 Copyright (C) 1995, 1996 Ben Wing.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 Copyright (C) 1997, Jonathan Harris.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 XEmacs is free software; you can redistribute it and/or modify it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 under the terms of the GNU General Public License as published by the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 Free Software Foundation; either version 2, or (at your option) any
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 later version.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 XEmacs is distributed in the hope that it will be useful, but WITHOUT
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 for more details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 You should have received a copy of the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 along with XEmacs; see the file COPYING. If not, write to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 Boston, MA 02111-1307, USA. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 /* Synched up with: Not in FSF. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 /* Authorship:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 Ultimately based on FSF.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29 Rewritten by Ben Wing.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 Rewritten for mswindows by Jonathan Harris, November 1997 for 21.0.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
34 #ifndef INCLUDED_objects_msw_h_
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
35 #define INCLUDED_objects_msw_h_
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 #include "objects.h"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 struct mswindows_color_instance_data
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 COLORREF color;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 };
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 #define MSWINDOWS_COLOR_INSTANCE_DATA(c) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 ((struct mswindows_color_instance_data *) (c)->data)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46 #define COLOR_INSTANCE_MSWINDOWS_COLOR(c) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 (MSWINDOWS_COLOR_INSTANCE_DATA (c)->color)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
49 /* The four HFONTS are for the 4 (underlined, strikethrough)
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
50 combinations. Only the one at index 0, neither underlined nor
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
51 struk through is created with the font instance. Other fonts are
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
52 created as necessary during redisplay, using the one at index 0
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
53 as prototype */
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
54 #define MSWINDOWS_NUM_FONT_VARIANTS 4
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
55 struct mswindows_font_instance_data
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
56 {
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
57 HFONT hfont [MSWINDOWS_NUM_FONT_VARIANTS];
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
58 };
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
59
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
60 #define MSWINDOWS_FONT_INSTANCE_DATA(c) \
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
61 ((struct mswindows_font_instance_data *) (c)->data)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
63 #define FONT_INSTANCE_MSWINDOWS_HFONT_I(c,i) \
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
64 (MSWINDOWS_FONT_INSTANCE_DATA(c)->hfont[(i)])
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
65
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
66 #define FONT_INSTANCE_MSWINDOWS_HFONT_VARIANT(c,under,strike) \
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
67 FONT_INSTANCE_MSWINDOWS_HFONT_I (c, (!!(strike)<<1)|!!(under))
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
68
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
69 /* If font creation during redisplay fails, then the following
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
70 value is used to prevent future attempts to create this font.
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
71 Redisplay uses the "main" font when encounters this value */
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
72 #define MSWINDOWS_BAD_HFONT ((HFONT)INVALID_HANDLE_VALUE)
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
73
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
74 HFONT mswindows_get_hfont (Lisp_Font_Instance* f, int under, int strike);
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
75
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
76 Lisp_Object mswindows_color_to_string (COLORREF color);
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
77
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
78 #endif /* INCLUDED_objects_msw_h_ */