* 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.
This commit is contained in:
DJ Delorie 2000-06-13 21:21:43 +00:00
parent 98ecb0a78b
commit 2104a50e3e
4 changed files with 65 additions and 38 deletions

View File

@ -1,3 +1,13 @@
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.

View File

@ -636,39 +636,29 @@ control:
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;

View File

@ -847,19 +847,42 @@ define_control (text, id, x, y, width, height, class, style, exstyle)
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

View File

@ -812,6 +812,10 @@ extern struct dialog_control *define_control
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