X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=src%2Fglyphs.h;h=a0ff30a60c1aa043a5e119f3bcd53fa8d49ad0c2;hp=97d825edcf54981ccae2152933ce0628df961c56;hb=44e716ef11bd794a51f8c5b56c4f3f10a7dbf217;hpb=cb9f6f4eadc44f1becb32cbbd1db26449e347755 diff --git a/src/glyphs.h b/src/glyphs.h index 97d825e..a0ff30a 100644 --- a/src/glyphs.h +++ b/src/glyphs.h @@ -127,23 +127,23 @@ struct image_instantiator_methods /***** Calling an image-instantiator method *****/ -#define HAS_IIFORMAT_METH_P(mstruc, m) ((mstruc)->m##_method) +#define HAS_IIFORMAT_METH_P(mstruc, m) (((mstruc)->m##_method) != 0) #define IIFORMAT_METH(mstruc, m, args) (((mstruc)->m##_method) args) /* Call a void-returning specifier method, if it exists */ -#define MAYBE_IIFORMAT_METH(mstruc, m, args) \ -if (mstruc) \ -do { \ - struct image_instantiator_methods *maybe_iiformat_meth_mstruc = (mstruc); \ - if (HAS_IIFORMAT_METH_P (maybe_iiformat_meth_mstruc, m)) \ - IIFORMAT_METH (maybe_iiformat_meth_mstruc, m, args); \ +#define MAYBE_IIFORMAT_METH(mstruc, m, args) \ +do { \ + struct image_instantiator_methods *MIM_mstruc = (mstruc); \ + if (MIM_mstruc && HAS_IIFORMAT_METH_P (MIM_mstruc, m)) \ + IIFORMAT_METH (MIM_mstruc, m, args); \ } while (0) -#define MAYBE_IIFORMAT_DEVMETH(device, mstruc, m, args) \ -do { \ - struct image_instantiator_methods *_mstruc = decode_ii_device (device, mstruc); \ - if (_mstruc) \ - MAYBE_IIFORMAT_METH(_mstruc, m, args); \ +#define MAYBE_IIFORMAT_DEVMETH(device, mstruc, m, args) \ +do { \ + struct image_instantiator_methods *MID_mstruc = \ + decode_ii_device (device, mstruc); \ + if (MID_mstruc) \ + MAYBE_IIFORMAT_METH(MID_mstruc, m, args); \ } while (0) @@ -432,7 +432,7 @@ struct Lisp_Image_Instance Lisp_Object face; /* foreground and background colors */ Lisp_Object type; Lisp_Object props; /* properties */ - struct gui_item gui_item; + Lisp_Object gui_item; /* a list of gui_items */ } widget; /* widgets are subwindows */ } subwindow; } u; @@ -472,13 +472,15 @@ struct Lisp_Image_Instance IMAGE_INSTANCE_SUBWINDOW_WIDTH(i) #define IMAGE_INSTANCE_WIDGET_HEIGHT(i) \ IMAGE_INSTANCE_SUBWINDOW_HEIGHT(i) -#define IMAGE_INSTANCE_WIDGET_CALLBACK(i) \ - ((i)->u.subwindow.widget.gui_item.callback) #define IMAGE_INSTANCE_WIDGET_TYPE(i) ((i)->u.subwindow.widget.type) #define IMAGE_INSTANCE_WIDGET_PROPS(i) ((i)->u.subwindow.widget.props) #define IMAGE_INSTANCE_WIDGET_FACE(i) ((i)->u.subwindow.widget.face) -#define IMAGE_INSTANCE_WIDGET_TEXT(i) ((i)->u.subwindow.widget.gui_item.name) #define IMAGE_INSTANCE_WIDGET_ITEM(i) ((i)->u.subwindow.widget.gui_item) +#define IMAGE_INSTANCE_WIDGET_SINGLE_ITEM(i) \ +(CONSP (IMAGE_INSTANCE_WIDGET_ITEM (i)) ? \ +XCAR (IMAGE_INSTANCE_WIDGET_ITEM (i)) : \ + IMAGE_INSTANCE_WIDGET_ITEM (i)) +#define IMAGE_INSTANCE_WIDGET_TEXT(i) XGUI_ITEM (IMAGE_INSTANCE_WIDGET_ITEM (i))->name #define XIMAGE_INSTANCE_DEVICE(i) \ IMAGE_INSTANCE_DEVICE (XIMAGE_INSTANCE (i)) @@ -513,18 +515,18 @@ struct Lisp_Image_Instance IMAGE_INSTANCE_WIDGET_WIDTH (XIMAGE_INSTANCE (i)) #define XIMAGE_INSTANCE_WIDGET_HEIGHT(i) \ IMAGE_INSTANCE_WIDGET_HEIGHT (XIMAGE_INSTANCE (i)) -#define XIMAGE_INSTANCE_WIDGET_CALLBACK(i) \ - IMAGE_INSTANCE_WIDGET_CALLBACK (XIMAGE_INSTANCE (i)) #define XIMAGE_INSTANCE_WIDGET_TYPE(i) \ IMAGE_INSTANCE_WIDGET_TYPE (XIMAGE_INSTANCE (i)) #define XIMAGE_INSTANCE_WIDGET_PROPS(i) \ IMAGE_INSTANCE_WIDGET_PROPS (XIMAGE_INSTANCE (i)) #define XIMAGE_INSTANCE_WIDGET_FACE(i) \ IMAGE_INSTANCE_WIDGET_FACE (XIMAGE_INSTANCE (i)) -#define XIMAGE_INSTANCE_WIDGET_TEXT(i) \ - IMAGE_INSTANCE_WIDGET_TEXT (XIMAGE_INSTANCE (i)) #define XIMAGE_INSTANCE_WIDGET_ITEM(i) \ IMAGE_INSTANCE_WIDGET_ITEM (XIMAGE_INSTANCE (i)) +#define XIMAGE_INSTANCE_WIDGET_SINGLE_ITEM(i) \ + IMAGE_INSTANCE_WIDGET_SINGLE_ITEM (XIMAGE_INSTANCE (i)) +#define XIMAGE_INSTANCE_WIDGET_TEXT(i) \ + IMAGE_INSTANCE_WIDGET_TEXT (XIMAGE_INSTANCE (i)) #define XIMAGE_INSTANCE_SUBWINDOW_WIDTH(i) \ IMAGE_INSTANCE_SUBWINDOW_WIDTH (XIMAGE_INSTANCE (i)) @@ -620,13 +622,14 @@ DECLARE_LRECORD (glyph, struct Lisp_Glyph); #define XGLYPH_BASELINE(g) GLYPH_BASELINE (XGLYPH (g)) #define XGLYPH_FACE(g) GLYPH_FACE (XGLYPH (g)) -extern Lisp_Object Qxpm; +extern Lisp_Object Qxpm, Qxface; extern Lisp_Object Q_data, Q_file, Q_color_symbols, Qconst_glyph_variable; -extern Lisp_Object Qxbm, Qedit, Qgroup, Qlabel, Qcombo, Qscrollbar; +extern Lisp_Object Qxbm, Qedit, Qgroup, Qlabel, Qcombo, Qscrollbar, Qprogress; +extern Lisp_Object Qtree, Qtab; extern Lisp_Object Q_mask_file, Q_mask_data, Q_hotspot_x, Q_hotspot_y; extern Lisp_Object Q_foreground, Q_background, Q_face, Q_descriptor, Q_group; -extern Lisp_Object Q_width, Q_height, Q_pixel_width, Q_pixel_height; -extern Lisp_Object Q_items, Q_properties, Qimage_conversion_error; +extern Lisp_Object Q_width, Q_height, Q_pixel_width, Q_pixel_height, Q_text; +extern Lisp_Object Q_items, Q_properties, Q_image, Q_percent, Qimage_conversion_error; extern Lisp_Object Vcontinuation_glyph, Vcontrol_arrow_glyph, Vhscroll_glyph; extern Lisp_Object Vinvisible_text_glyph, Voctal_escape_glyph, Vtruncation_glyph; extern Lisp_Object Vxemacs_logo;