/* 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, "-*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-1"},
+ XtRString, (XtPointer) "-*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-1"},
#else
{XtNfont, XtCFont, XtRFontStruct, sizeof(XFontStruct *),
- offset(menu.font), XtRString, "XtDefaultFont"},
+ offset(menu.font), XtRString, (XtPointer) "XtDefaultFont"},
# ifdef USE_XFONTSET
{XtNfontSet, XtCFontSet, XtRFontSet, sizeof(XFontSet),
- offset(menu.font_set), XtRString, "XtDefaultFontSet"},
+ offset(menu.font_set), XtRString, (XtPointer) "XtDefaultFontSet"},
# endif
#endif
{XtNforeground, XtCForeground, XtRPixel, sizeof(Pixel),
- offset(menu.foreground), XtRString, "XtDefaultForeground"},
+ offset(menu.foreground), XtRString, (XtPointer) "XtDefaultForeground"},
{XtNbuttonForeground, XtCButtonForeground, XtRPixel, sizeof(Pixel),
- offset(menu.button_foreground), XtRString, "XtDefaultForeground"},
+ offset(menu.button_foreground), XtRString, (XtPointer) "XtDefaultForeground"},
{XtNhighlightForeground, XtCHighlightForeground, XtRPixel, sizeof(Pixel),
- offset(menu.highlight_foreground), XtRString, "XtDefaultForeground"},
+ offset(menu.highlight_foreground), XtRString, (XtPointer) "XtDefaultForeground"},
{XtNtitleForeground, XtCTitleForeground, XtRPixel, sizeof(Pixel),
- offset(menu.title_foreground), XtRString, "XtDefaultForeground"},
+ offset(menu.title_foreground), XtRString, (XtPointer) "XtDefaultForeground"},
{XtNmargin, XtCMargin, XtRDimension, sizeof(Dimension),
offset(menu.margin), XtRImmediate, (XtPointer)2},
{XmNmarginWidth, XmCMarginWidth, XmRHorizontalDimension, sizeof(Dimension),
int i, j;
#ifdef NEED_MOTIF
+ chars = "";
if (!XmStringGetLtoR (string, XmFONTLIST_DEFAULT_TAG, &chars))
- {
- chars = "";
- }
+ chars = "";
#else
chars = string;
#endif
}
static void
-massage_resource_name (CONST char *in, char *out)
+massage_resource_name (const char *in, char *out)
{
/* Turn a random string into something suitable for using as a resource.
For example:
Boolean firstp = True;
while (*in)
{
- char ch = massaged_resource_char[(unsigned char) *in++];
- if (ch)
+ if (*in == '%' && *(in + 1) == '_')
+ in += 2;
+ else
{
- *out++ = firstp ? tolower (ch) : toupper (ch);
- firstp = False;
- while ((ch = massaged_resource_char[(unsigned char) *in++]) != '\0')
- *out++ = ch;
- if (!*(in-1)) /* Overshot the NULL byte? */
- break;
+ char ch;
+
+ if (*in == '%' && *(in + 1) == '%')
+ in++;
+ ch = massaged_resource_char[(unsigned char) *in++];
+ if (ch)
+ {
+ int int_ch = (int) (unsigned char) ch;
+ *out++ = firstp ? tolower (int_ch) : toupper (int_ch);
+ firstp = False;
+ while ((ch = massaged_resource_char[(unsigned char) *in++])
+ != '\0')
+ *out++ = ch;
+ if (!*(in-1)) /* Overshot the NULL byte? */
+ break;
+ }
}
}
*out = 0;
0, XtRImmediate, 0 }
};
-/*
- * This function looks through string searching for parameter
- * inserts of the form:
- * %[padding]1
- * padding is space (' ') or dash ('-') characters meaning
- * padding to the left or right of the inserted parameter.
- * In essence all %1 strings are replaced by value in the return
- * value (which the caller is expected to free).
- * %% means insert one % (like printf).
- * %1 means insert value.
- * %-1 means insert value followed by one space. The latter is
- * not inserted if value is a zero length string.
- */
+/* This function searches STRING for parameter inserts of the form:
+ %[padding]1
+ padding is either space (' ') or dash ('-') meaning
+ padding to the left or right of the inserted parameter.
+ In essence, all %1 strings are replaced by VALUE in the return value.
+ The caller is expected to free the return value using XtFree().
+ %% means insert one % (like printf).
+ %1 means insert VALUE.
+ %-1 means insert VALUE followed by one space. The latter is
+ not inserted if VALUE is a zero length string.
+*/
static char*
-parameterize_string (CONST char *string, CONST char *value)
+parameterize_string (const char *string, const char *value)
{
- char *percent;
+ const char *percent;
char *result;
unsigned int done = 0;
unsigned int ntimes;
{
result = XtMalloc(1);
result[0] = '\0';
- return (result);
+ return result;
}
if (!value)
value = "";
- for (ntimes = 1, result = (char *) string; (percent = strchr(result, '%'));
+ for (ntimes = 1, percent = string;
+ (percent = strchr (percent, '%'));
ntimes++)
- result = &percent[1];
+ percent++;
result = XtMalloc ((ntimes * strlen(value)) + strlen(string) + 4);
result[0] = '\0';
- while ((percent = strchr(string, '%')))
+ while ((percent = strchr (string, '%')))
{
unsigned int left_pad;
unsigned int right_pad;
- char *p;
+ const char *p;
if (percent[1] == '%')
{ /* it's a real % */
#endif
)
{
-int i,s=0;
-char *chars;
+ int i, s = 0;
+ char *chars;
#ifdef NEED_MOTIF
- XmStringGetLtoR (string, XmFONTLIST_DEFAULT_TAG, &chars);
+ chars = "";
+ if (!XmStringGetLtoR (string, XmFONTLIST_DEFAULT_TAG, &chars))
+ chars = "";
#else
chars = string;
#endif
- for (i=0;chars[i];++i) {
- if (chars[i]=='%'&&chars[i+1]=='_') {
+ for (i=0; chars[i]; ++i) {
+ if (chars[i] == '%' && chars[i+1] == '_') {
int w;
x += string_draw_range (mw, window, x, y, gc, chars, s, i);
print_widget_value (wv->next, 0, depth);
}
}
-#endif
+#endif /* SLOPPY_TYPES < 2 */
static Boolean
all_dashes_p (char *s)
return True;
return False;
}
-#endif
+#endif /* SLOPPY_TYPES */
static widget_value_type
menu_item_type (widget_value *val)
{
if (val->type != UNSPECIFIED_TYPE)
return val->type;
- else
- {
#if SLOPPY_TYPES
- if (all_dashes_p (val->name))
- return SEPARATOR_TYPE;
- else if (val->name && val->name[0] == '\0') /* push right */
- return PUSHRIGHT_TYPE;
- else if (val->contents) /* cascade */
- return CASCADE_TYPE;
- else if (val->call_data) /* push button */
- return BUTTON_TYPE;
- else
- return TEXT_TYPE;
+ else if (all_dashes_p (val->name))
+ return SEPARATOR_TYPE;
+ else if (val->name && val->name[0] == '\0') /* push right */
+ return PUSHRIGHT_TYPE;
+ else if (val->contents) /* cascade */
+ return CASCADE_TYPE;
+ else if (val->call_data) /* push button */
+ return BUTTON_TYPE;
+ else
+ return TEXT_TYPE;
#else
+ else
abort();
+ return UNSPECIFIED_TYPE; /* Not reached */
#endif
- }
}
static void
2 * mw->menu.vertical_margin +
2 * mw->menu.shadow_thickness);
/* no left column decoration */
- *toggle_width = mw->menu.horizontal_margin + mw->menu.shadow_thickness;;
+ *toggle_width = mw->menu.horizontal_margin + mw->menu.shadow_thickness;
*label_width = string_width_u (mw, resource_widget_value (mw, val));
*bindings_width = mw->menu.horizontal_margin + mw->menu.shadow_thickness;
static struct _shadow_names
{
- CONST char * name;
+ const char * name;
shadow_type type;
} shadow_names[] =
{
xgcv.foreground = mw->menu.top_shadow_color;
xgcv.background = mw->core.background_pixel;
/* xgcv.stipple = mw->menu.top_shadow_pixmap; gtb */
-#ifdef NEED_MOTIF
if (mw->menu.top_shadow_pixmap &&
mw->menu.top_shadow_pixmap != XmUNSPECIFIED_PIXMAP)
xgcv.stipple = mw->menu.top_shadow_pixmap;
else
xgcv.stipple = 0;
-#else
- xgcv.stipple = mw->menu.top_shadow_pixmap;
-#endif /* NEED_MOTIF */
pm = (xgcv.stipple ? GCStipple|GCFillStyle : 0);
mw->menu.shadow_top_gc =
XtGetGC((Widget)mw, GCForeground|GCBackground|pm, &xgcv);
xgcv.foreground = mw->menu.bottom_shadow_color;
/* xgcv.stipple = mw->menu.bottom_shadow_pixmap; gtb */
-#ifdef NEED_MOTIF
- if (mw->menu.top_shadow_pixmap &&
- mw->menu.top_shadow_pixmap != XmUNSPECIFIED_PIXMAP)
+ if (mw->menu.bottom_shadow_pixmap &&
+ mw->menu.bottom_shadow_pixmap != XmUNSPECIFIED_PIXMAP)
xgcv.stipple = mw->menu.bottom_shadow_pixmap;
else
xgcv.stipple = 0;
-#else
- xgcv.stipple = mw->menu.bottom_shadow_pixmap;
-#endif /* NEED_MOTIF */
pm = (xgcv.stipple ? GCStipple|GCFillStyle : 0);
mw->menu.shadow_bottom_gc =
XtGetGC ((Widget)mw, GCForeground|GCBackground|pm, &xgcv);