annotate src/glyphs-msw.h @ 771:943eaba38521

[xemacs-hg @ 2002-03-13 08:51:24 by ben] The big ben-mule-21-5 check-in! Various files were added and deleted. See CHANGES-ben-mule. There are still some test suite failures. No crashes, though. Many of the failures have to do with problems in the test suite itself rather than in the actual code. I'll be addressing these in the next day or so -- none of the test suite failures are at all critical. Meanwhile I'll be trying to address the biggest issues -- i.e. build or run failures, which will almost certainly happen on various platforms. All comments should be sent to ben@xemacs.org -- use a Cc: if necessary when sending to mailing lists. There will be pre- and post- tags, something like pre-ben-mule-21-5-merge-in, and post-ben-mule-21-5-merge-in.
author ben
date Wed, 13 Mar 2002 08:54:06 +0000
parents abe6d1db359e
children 6728e641994e
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 glyphs and related.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 Copyright (C) 1998 Andy Piper
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 XEmacs is free software; you can redistribute it and/or modify it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 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
8 Free Software Foundation; either version 2, or (at your option) any
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 later version.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 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
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 for more details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 along with XEmacs; see the file COPYING. If not, write to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 Boston, MA 02111-1307, USA. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 /* Synched up with: Not in FSF. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
23 #ifndef INCLUDED_glyphs_msw_h_
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
24 #define INCLUDED_glyphs_msw_h_
428
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 #ifdef HAVE_MS_WINDOWS
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 442
diff changeset
28 #include "syswindows.h"
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29 #include "glyphs.h"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30
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 * Image-Instance Object *
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 ****************************************************************************/
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 struct mswindows_image_instance_data
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 {
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 442
diff changeset
37 HBITMAP *bitmaps;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 HICON icon;
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
39 int real_width, real_height;
428
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
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 #define MSWINDOWS_IMAGE_INSTANCE_DATA(i) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 ((struct mswindows_image_instance_data *) (i)->data)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 #define IMAGE_INSTANCE_MSWINDOWS_BITMAP(i) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46 (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->bitmaps[0])
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 #define IMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICE(i,slice) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->bitmaps[slice])
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49 #define IMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICES(i) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50 (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->bitmaps)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 #define IMAGE_INSTANCE_MSWINDOWS_MASK(i) \
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 442
diff changeset
52 (* (HBITMAP *) &(IMAGE_INSTANCE_PIXMAP_MASK (i))) /* Make it lvalue */
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
53 #define IMAGE_INSTANCE_MSWINDOWS_ICON(i) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54 (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->icon)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
55 #define IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_WIDTH(i) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
56 (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->real_width)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
57 #define IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_HEIGHT(i) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
58 (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->real_height)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60 #define XIMAGE_INSTANCE_MSWINDOWS_BITMAP(i) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 IMAGE_INSTANCE_MSWINDOWS_BITMAP (XIMAGE_INSTANCE (i))
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 442
diff changeset
62 #define XIMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICE(i, slice) \
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 442
diff changeset
63 IMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICE (XIMAGE_INSTANCE (i, slice))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64 #define XIMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICES(i) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65 IMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICES (XIMAGE_INSTANCE (i))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 #define XIMAGE_INSTANCE_MSWINDOWS_MASK(i) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 IMAGE_INSTANCE_MSWINDOWS_MASK (XIMAGE_INSTANCE (i))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68 #define XIMAGE_INSTANCE_MSWINDOWS_ICON(i) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69 IMAGE_INSTANCE_MSWINDOWS_ICON (XIMAGE_INSTANCE (i))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 int
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 442
diff changeset
72 mswindows_resize_dibitmap_instance (Lisp_Image_Instance *ii,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 442
diff changeset
73 struct frame *f,
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 int newx, int newy);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 HBITMAP
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 442
diff changeset
76 mswindows_create_resized_bitmap (Lisp_Image_Instance *ii,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 442
diff changeset
77 struct frame *f,
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78 int newx, int newy);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79 HBITMAP
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 442
diff changeset
80 mswindows_create_resized_mask (Lisp_Image_Instance *ii,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 442
diff changeset
81 struct frame *f,
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82 int newx, int newy);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83 void
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 442
diff changeset
84 mswindows_initialize_image_instance_icon (Lisp_Image_Instance *image,
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
85 int cursor);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
87 #define WIDGET_INSTANCE_MSWINDOWS_HANDLE(i) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
88 (HWND) (IMAGE_INSTANCE_SUBWINDOW_ID (i))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90 #define XWIDGET_INSTANCE_MSWINDOWS_HANDLE(i) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91 WIDGET_INSTANCE_MSWINDOWS_HANDLE (XIMAGE_INSTANCE (i))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93 struct mswindows_subwindow_data
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
94 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95 HWND clip_window;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
96 };
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
98 #define MSWINDOWS_SUBWINDOW_DATA(i) \
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
99 ((struct mswindows_subwindow_data *) (i)->data)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
100 #define IMAGE_INSTANCE_MSWINDOWS_CLIPWINDOW(i) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
101 (MSWINDOWS_SUBWINDOW_DATA (i)->clip_window)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
102
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
103 #define XIMAGE_INSTANCE_MSWINDOWS_SUBWINDOW_DATA(i) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
104 MSWINDOWS_SUBWINDOW_DATA (XIMAGE_INSTANCE (i))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
105 #define XIMAGE_INSTANCE_MSWINDOWS_CLIPWINDOW(i) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
106 IMAGE_INSTANCE_MSWINDOWS_CLIPWINDOW (XIMAGE_INSTANCE (i))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
107
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
108 #define DOMAIN_MSWINDOWS_HANDLE(domain) \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
109 ((IMAGE_INSTANCEP (domain) && \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
110 XIMAGE_INSTANCE_MSWINDOWS_SUBWINDOW_DATA (domain)) ? \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
111 XWIDGET_INSTANCE_MSWINDOWS_HANDLE (domain) : \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
112 FRAME_MSWINDOWS_HANDLE (DOMAIN_XFRAME (domain)))
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
113
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
114 #endif /* HAVE_MS_WINDOWS */
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
115
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
116 #endif /* INCLUDED_glyphs_msw_h_ */