X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fglyphs-msw.h;h=c2cba15f3cc79b5220f5fa2dd0db73c46f34e27a;hb=3f46c5336cd2a7c388b4ebba6b3e575e2b71cc86;hp=9c304a0090cd1dbbee7963e1dddf2e548a3807ce;hpb=6883ee56ec887c2c48abe5b06b5e66aa74031910;p=chise%2Fxemacs-chise.git.1 diff --git a/src/glyphs-msw.h b/src/glyphs-msw.h index 9c304a0..c2cba15 100644 --- a/src/glyphs-msw.h +++ b/src/glyphs-msw.h @@ -1,8 +1,5 @@ /* mswindows-specific glyphs and related. - Copyright (C) 1993, 1994 Free Software Foundation, Inc. - Copyright (C) 1995 Board of Trustees, University of Illinois. - Copyright (C) 1995, 1996 Ben Wing - Copyright (C) 1995 Sun Microsystems, Inc. + Copyright (C) 1998 Andy Piper This file is part of XEmacs. @@ -23,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 @@ -37,43 +34,83 @@ Boston, MA 02111-1307, USA. */ struct mswindows_image_instance_data { - HBITMAP bitmap; - HBITMAP mask; + HBITMAP* bitmaps; HICON icon; + int real_width, real_height; }; #define MSWINDOWS_IMAGE_INSTANCE_DATA(i) \ ((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 IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_WIDTH(i) \ + (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->real_width) +#define IMAGE_INSTANCE_MSWINDOWS_BITMAP_REAL_HEIGHT(i) \ + (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->real_height) #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) \ + (HWND) (IMAGE_INSTANCE_SUBWINDOW_ID (i)) + +#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_SUBWINDOW_DATA(i) \ + MSWINDOWS_SUBWINDOW_DATA (XIMAGE_INSTANCE (i)) +#define XIMAGE_INSTANCE_MSWINDOWS_CLIPWINDOW(i) \ + IMAGE_INSTANCE_MSWINDOWS_CLIPWINDOW (XIMAGE_INSTANCE (i)) + +#define DOMAIN_MSWINDOWS_HANDLE(domain) \ + ((IMAGE_INSTANCEP (domain) && \ + XIMAGE_INSTANCE_MSWINDOWS_SUBWINDOW_DATA (domain)) ? \ + XWIDGET_INSTANCE_MSWINDOWS_HANDLE (domain) : \ + FRAME_MSWINDOWS_HANDLE (DOMAIN_XFRAME (domain))) + #endif /* HAVE_MS_WINDOWS */ -#endif /* _XEMACS_GLYPHS_MSW_H_ */ + +#endif /* INCLUDED_glyphs_msw_h_ */