X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fglyphs.c;h=892f02edccc280ff4c563158004a88960d039a0d;hb=884ff0e52d2c7690bcc9e165d0542a2ad983eae9;hp=e8f0d9b50f0d4b2305f9fcaced147d9a1012f5eb;hpb=2b7371e841478fd7b9bc7e4d9a515e0c26b9ed9a;p=chise%2Fxemacs-chise.git diff --git a/src/glyphs.c b/src/glyphs.c index e8f0d9b..892f02e 100644 --- a/src/glyphs.c +++ b/src/glyphs.c @@ -46,7 +46,7 @@ Boston, MA 02111-1307, USA. */ #include "specifier.h" #include "window.h" -#ifdef HAVE_XPM +#if defined (HAVE_XPM) && !defined (HAVE_GTK) #include #endif @@ -1004,7 +1004,7 @@ print_image_instance (Lisp_Object obj, Lisp_Object printcharfun, print_internal (IMAGE_INSTANCE_WIDGET_FACE (ii), printcharfun, 0); } - + /* fallthrough */ case IMAGE_SUBWINDOW: sprintf (buf, " %dx%d", IMAGE_INSTANCE_WIDTH (ii), @@ -2265,7 +2265,7 @@ query_string_geometry (Lisp_Object string, Lisp_Object face, int* width, int* height, int* descent, Lisp_Object domain) { struct font_metric_info fm; - unsigned char charsets[NUM_LEADING_BYTES]; + Charset_ID charsets[NUM_LEADING_BYTES]; struct face_cachel frame_cachel; struct face_cachel *cachel; Lisp_Object frame = DOMAIN_FRAME (domain); @@ -2317,7 +2317,7 @@ query_string_geometry (Lisp_Object string, Lisp_Object face, Lisp_Object query_string_font (Lisp_Object string, Lisp_Object face, Lisp_Object domain) { - unsigned char charsets[NUM_LEADING_BYTES]; + Charset_ID charsets[NUM_LEADING_BYTES]; struct face_cachel frame_cachel; struct face_cachel *cachel; int i; @@ -2811,6 +2811,14 @@ xface_possible_dest_types (void) * XPM * **********************************************************************/ +#ifdef HAVE_GTK +/* Gtk has to be gratuitously different, eh? */ +Lisp_Object +pixmap_to_lisp_data (Lisp_Object name, int ok_if_data_invalid) +{ + return (make_string_from_file (name)); +} +#else Lisp_Object pixmap_to_lisp_data (Lisp_Object name, int ok_if_data_invalid) { @@ -2892,6 +2900,7 @@ pixmap_to_lisp_data (Lisp_Object name, int ok_if_data_invalid) return Qnil; /* not reached */ } +#endif /* !HAVE_GTK */ static void check_valid_xpm_color_symbols (Lisp_Object data) @@ -3138,13 +3147,15 @@ image_instantiate (Lisp_Object specifier, Lisp_Object matchspec, signal_simple_error_2 ("Wrong domain for image instance", instantiator, domain); } + /* How ugly !! An image instanciator that uses a kludgy syntax to snarf in + face properties. There's a design flaw here. -- didier */ else if (VECTORP (instantiator) && EQ (INSTANTIATOR_TYPE (instantiator), Qinherit)) { assert (XVECTOR_LENGTH (instantiator) == 3); return (FACE_PROPERTY_INSTANCE (Fget_face (XVECTOR_DATA (instantiator)[2]), - Qbackground_pixmap, domain, 0, depth)); + Qbackground_pixmap, domain, 1, depth)); } else { @@ -3169,7 +3180,7 @@ image_instantiate (Lisp_Object specifier, Lisp_Object matchspec, { pointer_fg = FACE_FOREGROUND (Vpointer_face, domain); pointer_bg = FACE_BACKGROUND (Vpointer_face, domain); - hash_key = list4 (glyph, INSTANTIATOR_TYPE (instantiator), + hash_key = list4 (glyph, INSTANTIATOR_TYPE (instantiator), pointer_fg, pointer_bg); } else @@ -5169,7 +5180,7 @@ image_instantiator_format_create (void) Vimage_instantiator_format_list = Qnil; staticpro (&Vimage_instantiator_format_list); - dumpstruct (&the_image_instantiator_format_entry_dynarr, &iifed_description); + dump_add_root_struct_ptr (&the_image_instantiator_format_entry_dynarr, &iifed_description); INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (nothing, "nothing");