diff lwlib/xlwmenu.c @ 4522:fc7067b7f407

Backout last patch; forgot to specify file.
author Stephen J. Turnbull <stephen@xemacs.org>
date Wed, 29 Oct 2008 03:37:16 +0900
parents 383ab474a241
children 726060ee587c
line wrap: on
line diff
--- a/lwlib/xlwmenu.c	Tue Oct 28 10:38:26 2008 +0900
+++ b/lwlib/xlwmenu.c	Wed Oct 29 03:37:16 2008 +0900
@@ -70,112 +70,100 @@
 
 extern Widget lw_menubar_widget;
 
+#define offset(field) XtOffset(XlwMenuWidget, field)
 static XtResource
 xlwMenuResources[] =
 {
-/* The offset macro is a standard trick.  The remaining macros are an
-   experiment to compress redundancies in resource descriptions, and shut
-   up GCC 4.3 (the String casts, which keep G++ from complaining about
-   implicit conversions from const char *). */
-#define offset(field) XtOffset(XlwMenuWidget, menu.field)
-#define fontres(name,_class,repr,type,member,value) \
-  Xt_RESOURCE (name, _class, repr, type, offset(member), XtRString, value)
-#define mflres(name,cls,member,repr,value) \
-  Xt_RESOURCE (name, cls, XmRFontList, XmFontList, offset(member), repr, value)
-#define dimres(name,cls,repr,member,value) \
-  Xt_RESOURCE (name, cls, repr, Dimension, offset(member), XtRImmediate, value)
-#define boolres(nm,cls,member,val) \
-  Xt_RESOURCE (nm, cls, XtRBoolean, Boolean, offset(member), XtRImmediate, val)
-#define cbres(name,member,value)					  \
-  Xt_RESOURCE (name, XtCCallback, XtRCallback, XtPointer, offset(member), \
-	       XtRCallback, value)
-#define pixres(name,_class,member,repr,value) \
-  Xt_RESOURCE (name, _class, XtRPixel, Pixel, offset(member), repr, value)
-#define fgpixres(name,_class,member) \
-  pixres (name, _class, member, XtRString, "XtDefaultForeground")
-#define nullpixres(name,_class,member) \
-  pixres (name, _class, member, XtRImmediate, -1)
-#define pmres(name,cls,member) \
-  Xt_RESOURCE (name, cls, XtRPixmap, Pixmap, offset(member), XtRImmediate, None)
-
 #if defined(NEED_MOTIF) && !defined(USE_XFT_MENUBARS)
   /* There are three font list resources, so that we can accept either of
      the resources *fontList: or *font:, and so that we can tell the
      difference between them being specified, and being defaulted to a
      font from the XtRString specified here. */
-  mflres (XmNfontList,  XmCFontList, font_list,	  XtRImmediate, 0),
-  mflres (XtNfont,      XtCFont,     font_list_2, XtRImmediate, 0),
-  mflres (XmNfontList,  XmCFontList, fallback_font_list,
+  {XmNfontList,  XmCFontList, XmRFontList, sizeof(XmFontList),
+     offset(menu.font_list),  XtRImmediate, (XtPointer)0},
+  {XtNfont,      XtCFont,     XmRFontList, sizeof(XmFontList),
+     offset(menu.font_list_2),XtRImmediate, (XtPointer)0},
+  {XmNfontList,  XmCFontList, XmRFontList, sizeof(XmFontList),
+     offset(menu.fallback_font_list),
      /* We must use an iso8859-1 font here, or people without $LANG set lose.
 	It's fair to assume that those who do have $LANG set also have the
 	*fontList resource set, or at least know how to deal with this. */
-     XtRString, (XtPointer) "-*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-1"),
+     XtRString, (XtPointer) "-*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-1"},
 #else
-  fontres (XtNfont, XtCFont, XtRFontStruct, XFontStruct *, font,
-	   "XtDefaultFont"),
+  {XtNfont,  XtCFont, XtRFontStruct, sizeof(XFontStruct *),
+     offset(menu.font), XtRString, (XtPointer) "XtDefaultFont"},
 #ifdef USE_XFT_MENUBARS
-  fontres (XtNfcFontName, XtCFcFontName, XtRString, String, fcFontName,
-	   "sans-serif-12:bold"),
+  {XtNfcFontName,  XtCFcFontName, XtRString, sizeof (String),
+   offset(menu.fcFontName), 
+   XtRString, (XtPointer) NULL},
   /* #### This needs to be fixed to give a proper type and converter for
      XftFonts.  See also xlwtabs.c. */
-  fontres (XtNxftFont, XtCXftFont, XtRString, XtPointer, xftFontName,
-	   "Helvetica-12:bold"),
+  {XtNxftFont, XtCXftFont, XtRString, sizeof(XtPointer),
+	offset(menu.xftFontName), XtRString, (XtPointer) "Helvetica-12:bold" },
 #endif
 # ifdef USE_XFONTSET
   /* #### Consider using the same method as for Motif; see the comment in
      XlwMenuInitialize(). */
-  fontres (XtNfontSet, XtCFontSet, XtRFontSet, XFontSet, font_set,
-	   "XtDefaultFontSet"),
+  {XtNfontSet,  XtCFontSet, XtRFontSet, sizeof(XFontSet),
+     offset(menu.font_set), XtRString, (XtPointer) "XtDefaultFontSet"},
 # endif
 #endif
-  fgpixres (XtNforeground, XtCForeground, foreground),
-  fgpixres (XtNbuttonForeground, XtCButtonForeground, button_foreground),
-  fgpixres (XtNhighlightForeground, XtCHighlightForeground,
-	    highlight_foreground),
-  fgpixres (XtNtitleForeground, XtCTitleForeground, title_foreground),
-  dimres (XtNmargin, XtCMargin, XtRDimension, margin, 2),
-  dimres (XmNmarginWidth, XmCMarginWidth, XmRHorizontalDimension,
-	  horizontal_margin, 2),
-  dimres (XmNmarginHeight, XmCMarginHeight, XmRVerticalDimension,
-	  vertical_margin, 1),
-  dimres (XmNspacing, XmCSpacing, XmRHorizontalDimension, column_spacing, 4),
-  dimres (XmNindicatorSize, XmCIndicatorSize, XtRDimension, indicator_size, 0),
+  {XtNforeground, XtCForeground, XtRPixel, sizeof(Pixel),
+     offset(menu.foreground), XtRString, (XtPointer) "XtDefaultForeground"},
+  {XtNbuttonForeground, XtCButtonForeground, XtRPixel, sizeof(Pixel),
+     offset(menu.button_foreground), XtRString, (XtPointer) "XtDefaultForeground"},
+  {XtNhighlightForeground, XtCHighlightForeground, XtRPixel, sizeof(Pixel),
+     offset(menu.highlight_foreground), XtRString, (XtPointer) "XtDefaultForeground"},
+  {XtNtitleForeground, XtCTitleForeground, XtRPixel, sizeof(Pixel),
+     offset(menu.title_foreground), XtRString, (XtPointer) "XtDefaultForeground"},
+  {XtNmargin, XtCMargin, XtRDimension,  sizeof(Dimension),
+     offset(menu.margin), XtRImmediate, (XtPointer)2},
+  {XmNmarginWidth, XmCMarginWidth, XmRHorizontalDimension, sizeof(Dimension),
+     offset(menu.horizontal_margin), XtRImmediate, (XtPointer)2},
+  {XmNmarginHeight, XmCMarginHeight, XmRVerticalDimension, sizeof(Dimension),
+     offset(menu.vertical_margin), XtRImmediate, (XtPointer)1},
+  {XmNspacing, XmCSpacing, XmRHorizontalDimension,  sizeof(Dimension),
+     offset(menu.column_spacing), XtRImmediate, (XtPointer)4},
+  {XmNindicatorSize, XmCIndicatorSize, XtRDimension,  sizeof(Dimension),
+     offset(menu.indicator_size), XtRImmediate, (XtPointer)0},
 #if 0
-  dimres (XmNshadowThickness, XmCShadowThickness, XmRHorizontalDimension,
-	  shadow_thickness, 2),
+  {XmNshadowThickness, XmCShadowThickness, XmRHorizontalDimension,
+     sizeof (Dimension), offset (menu.shadow_thickness),
+     XtRImmediate, (XtPointer) 2},
 #else
-  dimres (XmNshadowThickness, XmCShadowThickness, XtRDimension,
-	  shadow_thickness, 2),
+  {XmNshadowThickness, XmCShadowThickness, XtRDimension,
+     sizeof (Dimension), offset (menu.shadow_thickness),
+     XtRImmediate, (XtPointer) 2},
 #endif
-  nullpixres (XmNselectColor, XmCSelectColor, select_color),
-  nullpixres (XmNtopShadowColor, XmCTopShadowColor, top_shadow_color),
-  nullpixres (XmNbottomShadowColor, XmCBottomShadowColor, bottom_shadow_color),
-  pmres (XmNtopShadowPixmap, XmCTopShadowPixmap, top_shadow_pixmap),
-  pmres (XmNbottomShadowPixmap, XmCBottomShadowPixmap, bottom_shadow_pixmap),
-
-  cbres (XtNopen, open, NULL),
-  cbres (XtNselect, select, NULL),
-  Xt_RESOURCE (XtNmenu, XtCMenu, XtRPointer, XtPointer, offset(contents),
-	       XtRImmediate, NULL),
-  Xt_RESOURCE (XtNcursor, XtCCursor, XtRCursor, Cursor, offset(cursor_shape),
-	       XtRString, "right_ptr"),
-  Xt_RESOURCE (XtNhorizontal, XtCHorizontal, XtRInt, int, offset(horizontal),
-	       XtRImmediate, True),
-  boolres (XtNuseBackingStore, XtCUseBackingStore, use_backing_store, False),
-  boolres (XtNbounceDown,      XtCBounceDown,      bounce_down,       True),
-  boolres (XtNresourceLabels,  XtCResourceLabels,  lookup_labels,     False),
-
+  {XmNselectColor, XmCSelectColor, XtRPixel, sizeof (Pixel),
+     offset (menu.select_color), XtRImmediate, (XtPointer)-1},
+  {XmNtopShadowColor, XmCTopShadowColor, XtRPixel, sizeof (Pixel),
+     offset (menu.top_shadow_color), XtRImmediate, (XtPointer)-1},
+  {XmNbottomShadowColor, XmCBottomShadowColor, XtRPixel, sizeof (Pixel),
+     offset (menu.bottom_shadow_color), XtRImmediate, (XtPointer)-1},
+  {XmNtopShadowPixmap, XmCTopShadowPixmap, XtRPixmap, sizeof (Pixmap),
+     offset (menu.top_shadow_pixmap), XtRImmediate, (XtPointer)None},
+  {XmNbottomShadowPixmap, XmCBottomShadowPixmap, XtRPixmap, sizeof (Pixmap),
+     offset (menu.bottom_shadow_pixmap), XtRImmediate, (XtPointer)None},
+
+  {XtNopen, XtCCallback, XtRCallback, sizeof(XtPointer),
+     offset(menu.open), XtRCallback, (XtPointer)NULL},
+  {XtNselect, XtCCallback, XtRCallback, sizeof(XtPointer),
+     offset(menu.select), XtRCallback, (XtPointer)NULL},
+  {XtNmenu, XtCMenu, XtRPointer, sizeof(XtPointer),
+     offset(menu.contents), XtRImmediate, (XtPointer)NULL},
+  {XtNcursor, XtCCursor, XtRCursor, sizeof(Cursor),
+     offset(menu.cursor_shape), XtRString, (XtPointer) "right_ptr"},
+  {XtNhorizontal, XtCHorizontal, XtRInt, sizeof(int),
+     offset(menu.horizontal), XtRImmediate, (XtPointer)True},
+  {XtNuseBackingStore, XtCUseBackingStore, XtRBoolean, sizeof (Boolean),
+     offset (menu.use_backing_store), XtRImmediate, (XtPointer)False},
+  {XtNbounceDown, XtCBounceDown, XtRBoolean, sizeof (Boolean),
+     offset (menu.bounce_down), XtRImmediate, (XtPointer)True},
+  {XtNresourceLabels, XtCResourceLabels, XtRBoolean, sizeof (Boolean),
+     offset (menu.lookup_labels), XtRImmediate, (XtPointer)False},
+};
 #undef offset
-#undef mflres
-#undef fontres
-#undef dimres
-#undef boolres
-#undef cbres
-#undef pixres
-#undef fgpixres
-#undef nullpixres
-#undef pmres
-};
 
 static Boolean XlwMenuSetValues (Widget current, Widget request, Widget new_,
 				 ArgList args, Cardinal *num_args);
@@ -198,9 +186,9 @@
 static XtActionsRec
 xlwMenuActionsList [] =
 {
-  { (String) "start",	Start},
-  { (String) "drag",	Drag},
-  { (String) "select",	Select},
+  {"start",	Start},
+  {"drag",	Drag},
+  {"select",	Select},
 };
 
 #define SuperClass ((CoreWidgetClass)&coreClassRec)
@@ -209,7 +197,7 @@
 {
   {  /* CoreClass fields initialization */
     (WidgetClass) SuperClass,		/* superclass		  */
-    (String) "XlwMenu",			/* class_name		  */
+    "XlwMenu",				/* class_name		  */
     sizeof(XlwMenuRec),			/* size			  */
     XlwMenuClassInitialize,		/* class_initialize	  */
     NULL,				/* class_part_initialize  */
@@ -507,7 +495,7 @@
 static XtResource
 nameResource[] =
 {
-  { (String) "labelString", (String) "LabelString", XtRString, sizeof(String),
+  { "labelString", "LabelString", XtRString, sizeof(String),
     0, XtRImmediate, 0 }
 };