XEmacs 21.2.30 "Hygeia".
[chise/xemacs-chise.git.1] / src / glyphs-msw.h
index 8371d0a..dbfd85e 100644 (file)
@@ -20,8 +20,8 @@ Boston, MA 02111-1307, USA.  */
 
 /* Synched up with:  Not in FSF. */
 
-#ifndef _XEMACS_GLYPHS_MSW_H_
-#define _XEMACS_GLYPHS_MSW_H_
+#ifndef INCLUDED_glyphs_msw_h_
+#define INCLUDED_glyphs_msw_h_
 
 #ifdef HAVE_MS_WINDOWS
 
@@ -34,8 +34,7 @@ Boston, MA 02111-1307, USA.  */
 
 struct mswindows_image_instance_data
 {
-  HBITMAP bitmap;
-  HBITMAP mask;
+  HBITMAP* bitmaps;
   HICON icon;
 };
 
@@ -43,33 +42,41 @@ struct mswindows_image_instance_data
 ((struct mswindows_image_instance_data *) (i)->data)
 
 #define IMAGE_INSTANCE_MSWINDOWS_BITMAP(i) \
-     (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->bitmap)
+     (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->bitmaps[0])
+#define IMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICE(i,slice) \
+     (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->bitmaps[slice])
+#define IMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICES(i) \
+     (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->bitmaps)
 #define IMAGE_INSTANCE_MSWINDOWS_MASK(i) \
-     (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->mask)
+     (*(HBITMAP*)&(IMAGE_INSTANCE_PIXMAP_MASK (i)))            /* Make it lvalue */
 #define IMAGE_INSTANCE_MSWINDOWS_ICON(i) \
      (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->icon)
 
 #define XIMAGE_INSTANCE_MSWINDOWS_BITMAP(i) \
   IMAGE_INSTANCE_MSWINDOWS_BITMAP (XIMAGE_INSTANCE (i))
+#define XIMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICE(i,slice) \
+  IMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICE (XIMAGE_INSTANCE (i,slice))
+#define XIMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICES(i) \
+  IMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICES (XIMAGE_INSTANCE (i))
 #define XIMAGE_INSTANCE_MSWINDOWS_MASK(i) \
   IMAGE_INSTANCE_MSWINDOWS_MASK (XIMAGE_INSTANCE (i))
 #define XIMAGE_INSTANCE_MSWINDOWS_ICON(i) \
   IMAGE_INSTANCE_MSWINDOWS_ICON (XIMAGE_INSTANCE (i))
 
 int
-mswindows_resize_dibitmap_instance (struct Lisp_Image_Instance* ii,
+mswindows_resize_dibitmap_instance (Lisp_Image_Instance* ii,
                                    struct frame* f,
                                    int newx, int newy);
 HBITMAP
-mswindows_create_resized_bitmap (struct Lisp_Image_Instance* ii,
+mswindows_create_resized_bitmap (Lisp_Image_Instance* ii,
                                 struct frame* f,
                                 int newx, int newy);
 HBITMAP
-mswindows_create_resized_mask (struct Lisp_Image_Instance* ii,
+mswindows_create_resized_mask (Lisp_Image_Instance* ii,
                               struct frame* f,
                               int newx, int newy);
 void
-mswindows_initialize_image_instance_icon (struct Lisp_Image_Instance* image,
+mswindows_initialize_image_instance_icon (Lisp_Image_Instance* image,
                                          int cursor);
 
 #define WIDGET_INSTANCE_MSWINDOWS_HANDLE(i) \
@@ -78,5 +85,20 @@ mswindows_initialize_image_instance_icon (struct Lisp_Image_Instance* image,
 #define XWIDGET_INSTANCE_MSWINDOWS_HANDLE(i) \
   WIDGET_INSTANCE_MSWINDOWS_HANDLE (XIMAGE_INSTANCE (i))
 
+struct mswindows_subwindow_data
+{
+  HWND clip_window;
+};
+
+#define MSWINDOWS_SUBWINDOW_DATA(i) \
+((struct mswindows_subwindow_data *) (i)->data)
+
+#define IMAGE_INSTANCE_MSWINDOWS_CLIPWINDOW(i) \
+     (MSWINDOWS_SUBWINDOW_DATA (i)->clip_window)
+
+#define XIMAGE_INSTANCE_MSWINDOWS_CLIPWINDOW(i) \
+  IMAGE_INSTANCE_MSWINDOWS_CLIPWINDOW (XIMAGE_INSTANCE (i))
+
 #endif /* HAVE_MS_WINDOWS */
-#endif /* _XEMACS_GLYPHS_MSW_H_ */
+
+#endif /* INCLUDED_glyphs_msw_h_ */