+2000-06-13 DJ Delorie <dj@cygnus.com>
+
+ * rcparse.y (control): ICON controls take an id as the first
+ parameter, not an optional string. Also, call new convenience
+ function that takes res_id's.
+ * resrc.c (define_control): missing text means zero-length string,
+ not zero ID.
+ (define_icon_control): New.
+ * windres.h: declare define_icon_control.
+
2000-06-13 H.J. Lu <hjl@gnu.org>
* configure: Regenerate.
rcparse_warning (_("IEDIT requires DIALOGEX"));
res_string_to_id (&$$->class, "HEDIT");
}
- | ICON optstringc numexpr cnumexpr cnumexpr opt_control_data
- {
- $$ = define_control ($2, $3, $4, $5, 0, 0, CTL_STATIC,
- SS_ICON | WS_CHILD | WS_VISIBLE, 0);
- if ($6 != NULL)
- {
- if (dialog.ex == NULL)
- rcparse_warning (_("control data requires DIALOGEX"));
- $$->data = $6;
- }
- }
- | ICON optstringc numexpr cnumexpr cnumexpr cnumexpr cnumexpr
+ | ICON id cnumexpr cnumexpr cnumexpr opt_control_data
+ {
+ $$ = define_icon_control ($2, $3, $4, $5, 0, 0, 0, $6,
+ dialog.ex);
+ }
+ | ICON id cnumexpr cnumexpr cnumexpr cnumexpr cnumexpr
+ opt_control_data
+ {
+ $$ = define_icon_control ($2, $3, $4, $5, 0, 0, 0, $8,
+ dialog.ex);
+ }
+ | ICON id cnumexpr cnumexpr cnumexpr cnumexpr cnumexpr
icon_styleexpr optcnumexpr opt_control_data
- {
- $$ = define_control ($2, $3, $4, $5, $6, $7, CTL_STATIC,
- style, $9);
- if ($10 != NULL)
- {
- if (dialog.ex == NULL)
- rcparse_warning (_("control data requires DIALOGEX"));
- $$->data = $10;
- }
- }
- | ICON optstringc numexpr cnumexpr cnumexpr cnumexpr cnumexpr
+ {
+ $$ = define_icon_control ($2, $3, $4, $5, style, $9, 0, $10,
+ dialog.ex);
+ }
+ | ICON id numexpr cnumexpr cnumexpr cnumexpr cnumexpr
icon_styleexpr cnumexpr cnumexpr opt_control_data
- {
- $$ = define_control ($2, $3, $4, $5, $6, $7, CTL_STATIC,
- style, $9);
- if (dialog.ex == NULL)
- rcparse_warning (_("help ID requires DIALOGEX"));
- $$->help = $10;
- $$->data = $11;
- }
+ {
+ $$ = define_icon_control ($2, $3, $4, $5, style, $9, $10, $11,
+ dialog.ex);
+ }
| IEDIT
{
default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
n->height = height;
n->class.named = 0;
n->class.u.id = class;
- if (text != NULL)
- res_string_to_id (&n->text, text);
- else
- {
- n->text.named = 0;
- n->text.u.id = 0;
- }
+ if (text == NULL)
+ text = "";
+ res_string_to_id (&n->text, text);
n->data = NULL;
n->help = 0;
return n;
}
+struct dialog_control *
+define_icon_control (iid, id, x, y, style, exstyle, help, data, ex)
+ struct res_id iid;
+ unsigned long id;
+ unsigned long x;
+ unsigned long y;
+ unsigned long style;
+ unsigned long exstyle;
+ unsigned long help;
+ struct rcdata_item *data;
+ struct dialog_ex *ex;
+{
+ struct dialog_control *n;
+ if (style == 0)
+ style = SS_ICON | WS_CHILD | WS_VISIBLE;
+ n = define_control (0, id, x, y, 0, 0, CTL_STATIC, style, exstyle);
+ n->text = iid;
+ if (help && !ex)
+ rcparse_warning (_("help ID requires DIALOGEX"));
+ if (data && !ex)
+ rcparse_warning (_("control data requires DIALOGEX"));
+ n->help = help;
+ n->data = data;
+
+ return n;
+}
+
/* Define a font resource. */
void
PARAMS ((const char *, unsigned long, unsigned long, unsigned long,
unsigned long, unsigned long, unsigned long, unsigned long,
unsigned long));
+extern struct dialog_control *define_icon_control
+ PARAMS ((struct res_id, unsigned long, unsigned long,
+ unsigned long, unsigned long, unsigned long, unsigned long,
+ struct rcdata_item *, struct dialog_ex *));
extern void define_font
PARAMS ((struct res_id, const struct res_res_info *, const char *));
extern void define_icon