#include "specifier.h"
#include "window.h"
-#ifdef HAVE_XPM
+#if defined (HAVE_XPM) && !defined (HAVE_GTK)
#include <X11/xpm.h>
#endif
signal_simple_error ("Invalid mapping form", mapping);
else
{
- Lisp_Object exp = XCAR (mapping);
+ Lisp_Object mapexp = XCAR (mapping);
Lisp_Object typevec = XCAR (XCDR (mapping));
Lisp_Object pos = Qnil;
Lisp_Object newvec;
struct gcpro gcpro1;
- CHECK_STRING (exp);
+ CHECK_STRING (mapexp);
CHECK_VECTOR (typevec);
if (!NILP (XCDR (XCDR (mapping))))
{
newvec = Fcopy_sequence (typevec);
if (INTP (pos))
- XVECTOR_DATA (newvec)[XINT (pos)] = exp;
+ XVECTOR_DATA (newvec)[XINT (pos)] = mapexp;
GCPRO1 (newvec);
image_validate (newvec);
UNGCPRO;
LIST_LOOP (tail, *get_image_conversion_list (console_type))
{
Lisp_Object mapping = XCAR (tail);
- Lisp_Object exp = XCAR (mapping);
+ Lisp_Object mapexp = XCAR (mapping);
Lisp_Object typevec = XCAR (XCDR (mapping));
/* if the result is of a type that can't be instantiated
(INSTANTIATOR_TYPE (typevec), ERROR_ME),
possible_dest_types, ())))
continue;
- if (fast_string_match (exp, 0, data, 0, -1, 0, ERROR_ME, 0) >= 0)
+ if (fast_string_match (mapexp, 0, data, 0, -1, 0, ERROR_ME, 0) >= 0)
{
if (!NILP (XCDR (XCDR (mapping))))
{
else if (governing_domain == GOVERNING_DOMAIN_DEVICE)
domain = DOMAIN_DEVICE (domain);
else
- abort ();
+ ABORT ();
return domain;
}
print_internal
(IMAGE_INSTANCE_WIDGET_FACE (ii), printcharfun, 0);
}
-
+ /* fallthrough */
case IMAGE_SUBWINDOW:
sprintf (buf, " %dx%d", IMAGE_INSTANCE_WIDTH (ii),
break;
default:
- abort ();
+ ABORT ();
}
MAYBE_DEVMETH (DOMAIN_XDEVICE (ii->domain), print_image_instance,
break;
default:
- abort ();
+ ABORT ();
}
return DEVMETH_OR_GIVEN (DOMAIN_XDEVICE (i1->domain),
break;
default:
- abort ();
+ ABORT ();
}
return HASH2 (hash, DEVMETH_OR_GIVEN
case IMAGE_SUBWINDOW: return Qsubwindow;
case IMAGE_WIDGET: return Qwidget;
default:
- abort ();
+ ABORT ();
}
return Qnil; /* not reached */
signal_simple_error ("Image instances not allowed here", data);
image_validate (data);
domain = decode_domain (domain);
- /* instantiate_image_instantiator() will abort if given an
+ /* instantiate_image_instantiator() will ABORT if given an
image instance ... */
dest_mask = decode_image_instance_type_list (dest_types);
data = normalize_image_instantiator (data,
if (yoffset != IMAGE_UNCHANGED_GEOMETRY)
XIMAGE_INSTANCE_YOFFSET (image_instance) = yoffset;
- assert (XIMAGE_INSTANCE_YOFFSET (image_instance) >= 0
- && XIMAGE_INSTANCE_XOFFSET (image_instance) >= 0);
-
/* If geometry is unspecified then get some reasonable values for it. */
if (width == IMAGE_UNSPECIFIED_GEOMETRY
||
int dest_mask, Lisp_Object domain)
{
/* handled specially in image_instantiate */
- abort ();
+ ABORT ();
}
\f
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);
+ CHECK_STRING (string);
+
/* Compute height */
if (height)
{
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;
* 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)
{
return Qnil; /* not reached */
}
+#endif /* !HAVE_GTK */
static void
check_valid_xpm_color_symbols (Lisp_Object data)
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
{
{
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
Qunbound);
}
else
- abort (); /* We're not allowed anything else currently. */
+ ABORT (); /* We're not allowed anything else currently. */
/* If we don't have an instance at this point then create
one. */
RETURN_UNGCPRO (instance);
}
- abort ();
+ ABORT ();
return Qnil; /* not reached */
}
| IMAGE_COLOR_PIXMAP_MASK;
break;
default:
- abort ();
+ ABORT ();
}
/* I think Fmake_specifier can GC. I think set_specifier_fallback can GC. */
CHECK_GLYPH (glyph);
switch (XGLYPH_TYPE (glyph))
{
- default: abort ();
+ default: ABORT ();
case GLYPH_BUFFER: return Qbuffer;
case GLYPH_POINTER: return Qpointer;
case GLYPH_ICON: return Qicon;
we have to check for overlaps. Being conservative, we will
check for exposures wholly contained by the subwindow - this
might give us what we want.*/
- if (ei->x <= x && ei->y <= y
- && ei->x + ei->width >= x + width
- && ei->y + ei->height >= y + height)
+ if (ei->x <= (unsigned) x && ei->y <= (unsigned) y
+ && ei->x + ei->width >= (unsigned) (x + width)
+ && ei->y + ei->height >= (unsigned) (y + height))
{
#ifdef DEBUG_WIDGETS
stderr_out ("ignored %d+%d, %dx%d for exposure %d+%d, %dx%d\n",
if (IMAGE_INSTANCE_SUBWINDOW_DISPLAYEDP (ii)
&&
- IMAGE_INSTANCE_DISPLAY_X (ii) <= x
+ IMAGE_INSTANCE_DISPLAY_X (ii) <= (unsigned) x
&&
- IMAGE_INSTANCE_DISPLAY_Y (ii) <= y
+ IMAGE_INSTANCE_DISPLAY_Y (ii) <= (unsigned) y
&&
IMAGE_INSTANCE_DISPLAY_X (ii)
- + IMAGE_INSTANCE_DISPLAY_WIDTH (ii) >= x + width
+ + IMAGE_INSTANCE_DISPLAY_WIDTH (ii) >= (unsigned) (x + width)
&&
IMAGE_INSTANCE_DISPLAY_Y (ii)
- + IMAGE_INSTANCE_DISPLAY_HEIGHT (ii) >= y + height)
+ + IMAGE_INSTANCE_DISPLAY_HEIGHT (ii) >= (unsigned) (y + height))
{
return 1;
}
/* The update method is allowed to call eval. Since it is quite
common for this function to get called from somewhere in
redisplay we need to make sure that quits are ignored. Otherwise
- Fsignal will abort. */
+ Fsignal will ABORT. */
specbind (Qinhibit_quit, Qt);
ERROR_CHECK_IMAGE_INSTANCE (subwindow);
ERROR_CHECK_IMAGE_INSTANCE (subwindow);
- if (!image_instance_type_to_mask (IMAGE_INSTANCE_TYPE (ii))
- & (IMAGE_WIDGET_MASK | IMAGE_SUBWINDOW_MASK)
+ if (!(image_instance_type_to_mask (IMAGE_INSTANCE_TYPE (ii))
+ & (IMAGE_WIDGET_MASK | IMAGE_SUBWINDOW_MASK))
||
!IMAGE_INSTANCE_SUBWINDOW_DISPLAYEDP (ii))
return;
ERROR_CHECK_IMAGE_INSTANCE (subwindow);
- if (!image_instance_type_to_mask (IMAGE_INSTANCE_TYPE (ii))
- & (IMAGE_WIDGET_MASK | IMAGE_SUBWINDOW_MASK))
+ if (!(image_instance_type_to_mask (IMAGE_INSTANCE_TYPE (ii))
+ & (IMAGE_WIDGET_MASK | IMAGE_SUBWINDOW_MASK)))
return;
#ifdef DEBUG_WIDGETS
continue;
}
else
- abort ();
+ ABORT ();
}
}
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");