* rcparse.y (res_text_field): New res_id variable.
(res_null_text): New static const struct res_id object, with empty unicode name field. (control): Pop parsing of optresidc up one level. Set res_text_field to $2 except for controls which do not accept a text field. Set res_text_field to res_null_text for the special cases (viz. COMBOBOX, EDITTEXT, LISTBOX, SCROLLBAR). (control_params): Adjust to use res_text_field rather than optresidc. (COMBOBOX): Add comment about discrepency between documented vs. observed default style. * resrc.c (define_control): Make first param const. * windres.h (define_control): Adjust prototype. testsuite: * binutils-all/windres/checkbox.rc: New file. * binutils-all/windres/checkbox.rsd: New file. * binutils-all/windres/combobox.rc: New file. * binutils-all/windres/combobox.rsd: New file. * binutils-all/windres/edittext.rc: New file. * binutils-all/windres/edittext.rsd: New file. * binutils-all/windres/listbox.rc: New file. * binutils-all/windres/listbox.rsd: New file. * binutils-all/windres/scrollbar.rc: New file. * binutils-all/windres/scrollbar.rsd: New file.
This commit is contained in:
parent
0b2828595e
commit
b9ae04920a
@ -1,3 +1,19 @@
|
||||
2003-06-28 Danny Smith <dannysmith@users.sourceforge.net>
|
||||
|
||||
* rcparse.y (res_text_field): New res_id variable.
|
||||
(res_null_text): New static const struct res_id object,
|
||||
with empty unicode name field.
|
||||
(control): Pop parsing of optresidc up one level. Set
|
||||
res_text_field to $2 except for controls which do not accept
|
||||
a text field. Set res_text_field to res_null_text for the
|
||||
special cases (viz. COMBOBOX, EDITTEXT, LISTBOX, SCROLLBAR).
|
||||
(control_params): Adjust to use res_text_field rather
|
||||
than optresidc.
|
||||
(COMBOBOX): Add comment about discrepency between documented
|
||||
vs. observed default style.
|
||||
* resrc.c (define_control): Make first param const.
|
||||
* windres.h (define_control): Adjust prototype.
|
||||
|
||||
2003-06-27 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* objcopy.c (copy_object): Replace call to
|
||||
|
@ -52,6 +52,11 @@ static unsigned long style;
|
||||
static unsigned long base_style;
|
||||
static unsigned long default_style;
|
||||
static unsigned long class;
|
||||
static struct res_id res_text_field;
|
||||
|
||||
/* This is used for COMBOBOX, LISTBOX and EDITTEXT which
|
||||
do not allow resource 'text' field in control definition. */
|
||||
static const struct res_id res_null_text = { 1, {{0, L""}}};
|
||||
|
||||
%}
|
||||
|
||||
@ -533,64 +538,72 @@ controls:
|
||||
;
|
||||
|
||||
control:
|
||||
AUTO3STATE
|
||||
AUTO3STATE optresidc
|
||||
{
|
||||
default_style = BS_AUTO3STATE | WS_TABSTOP;
|
||||
base_style = BS_AUTO3STATE;
|
||||
class = CTL_BUTTON;
|
||||
res_text_field = $2;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
$$ = $4;
|
||||
}
|
||||
| AUTOCHECKBOX
|
||||
| AUTOCHECKBOX optresidc
|
||||
{
|
||||
default_style = BS_AUTOCHECKBOX | WS_TABSTOP;
|
||||
base_style = BS_AUTOCHECKBOX;
|
||||
class = CTL_BUTTON;
|
||||
res_text_field = $2;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
$$ = $4;
|
||||
}
|
||||
| AUTORADIOBUTTON
|
||||
| AUTORADIOBUTTON optresidc
|
||||
{
|
||||
default_style = BS_AUTORADIOBUTTON | WS_TABSTOP;
|
||||
base_style = BS_AUTORADIOBUTTON;
|
||||
class = CTL_BUTTON;
|
||||
res_text_field = $2;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
$$ = $4;
|
||||
}
|
||||
| BEDIT
|
||||
| BEDIT optresidc
|
||||
{
|
||||
default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
|
||||
base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
|
||||
class = CTL_EDIT;
|
||||
res_text_field = $2;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
$$ = $4;
|
||||
if (dialog.ex == NULL)
|
||||
rcparse_warning (_("BEDIT requires DIALOGEX"));
|
||||
res_string_to_id (&$$->class, "BEDIT");
|
||||
}
|
||||
| CHECKBOX
|
||||
| CHECKBOX optresidc
|
||||
{
|
||||
default_style = BS_CHECKBOX | WS_TABSTOP;
|
||||
base_style = BS_CHECKBOX | WS_TABSTOP;
|
||||
class = CTL_BUTTON;
|
||||
res_text_field = $2;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
$$ = $4;
|
||||
}
|
||||
| COMBOBOX
|
||||
{
|
||||
/* This is as per MSDN documentation. With some (???)
|
||||
versions of MS rc.exe their is no default style. */
|
||||
default_style = CBS_SIMPLE | WS_TABSTOP;
|
||||
base_style = 0;
|
||||
class = CTL_COMBOBOX;
|
||||
res_text_field = res_null_text;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
@ -640,55 +653,60 @@ control:
|
||||
$$->class.named = 1;
|
||||
unicode_from_ascii (&$$->class.u.n.length, &$$->class.u.n.name, $5);
|
||||
}
|
||||
| CTEXT
|
||||
| CTEXT optresidc
|
||||
{
|
||||
default_style = SS_CENTER | WS_GROUP;
|
||||
base_style = SS_CENTER;
|
||||
class = CTL_STATIC;
|
||||
res_text_field = $2;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
$$ = $4;
|
||||
}
|
||||
| DEFPUSHBUTTON
|
||||
| DEFPUSHBUTTON optresidc
|
||||
{
|
||||
default_style = BS_DEFPUSHBUTTON | WS_TABSTOP;
|
||||
base_style = BS_DEFPUSHBUTTON | WS_TABSTOP;
|
||||
class = CTL_BUTTON;
|
||||
res_text_field = $2;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
$$ = $4;
|
||||
}
|
||||
| EDITTEXT
|
||||
{
|
||||
default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
|
||||
base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
|
||||
class = CTL_EDIT;
|
||||
res_text_field = res_null_text;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
}
|
||||
| GROUPBOX
|
||||
| GROUPBOX optresidc
|
||||
{
|
||||
default_style = BS_GROUPBOX;
|
||||
base_style = BS_GROUPBOX;
|
||||
class = CTL_BUTTON;
|
||||
res_text_field = $2;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
$$ = $4;
|
||||
}
|
||||
| HEDIT
|
||||
| HEDIT optresidc
|
||||
{
|
||||
default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
|
||||
base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
|
||||
class = CTL_EDIT;
|
||||
res_text_field = $2;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
$$ = $4;
|
||||
if (dialog.ex == NULL)
|
||||
rcparse_warning (_("IEDIT requires DIALOGEX"));
|
||||
res_string_to_id (&$$->class, "HEDIT");
|
||||
@ -716,15 +734,16 @@ control:
|
||||
$$ = define_icon_control ($2, $3, $4, $5, style, $9, $10, $11,
|
||||
dialog.ex);
|
||||
}
|
||||
| IEDIT
|
||||
| IEDIT optresidc
|
||||
{
|
||||
default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
|
||||
base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
|
||||
class = CTL_EDIT;
|
||||
res_text_field = $2;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
$$ = $4;
|
||||
if (dialog.ex == NULL)
|
||||
rcparse_warning (_("IEDIT requires DIALOGEX"));
|
||||
res_string_to_id (&$$->class, "IEDIT");
|
||||
@ -734,22 +753,24 @@ control:
|
||||
default_style = LBS_NOTIFY | WS_BORDER;
|
||||
base_style = LBS_NOTIFY | WS_BORDER;
|
||||
class = CTL_LISTBOX;
|
||||
res_text_field = res_null_text;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
}
|
||||
| LTEXT
|
||||
| LTEXT optresidc
|
||||
{
|
||||
default_style = SS_LEFT | WS_GROUP;
|
||||
base_style = SS_LEFT;
|
||||
class = CTL_STATIC;
|
||||
res_text_field = $2;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
$$ = $4;
|
||||
}
|
||||
| PUSHBOX
|
||||
| PUSHBOX optresidc
|
||||
{
|
||||
default_style = BS_PUSHBOX | WS_TABSTOP;
|
||||
base_style = BS_PUSHBOX;
|
||||
@ -757,57 +778,62 @@ control:
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
$$ = $4;
|
||||
}
|
||||
| PUSHBUTTON
|
||||
| PUSHBUTTON optresidc
|
||||
{
|
||||
default_style = BS_PUSHBUTTON | WS_TABSTOP;
|
||||
base_style = BS_PUSHBUTTON | WS_TABSTOP;
|
||||
class = CTL_BUTTON;
|
||||
res_text_field = $2;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
$$ = $4;
|
||||
}
|
||||
| RADIOBUTTON
|
||||
| RADIOBUTTON optresidc
|
||||
{
|
||||
default_style = BS_RADIOBUTTON | WS_TABSTOP;
|
||||
base_style = BS_RADIOBUTTON;
|
||||
class = CTL_BUTTON;
|
||||
res_text_field = $2;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
$$ = $4;
|
||||
}
|
||||
| RTEXT
|
||||
| RTEXT optresidc
|
||||
{
|
||||
default_style = SS_RIGHT | WS_GROUP;
|
||||
base_style = SS_RIGHT;
|
||||
class = CTL_STATIC;
|
||||
res_text_field = $2;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
$$ = $4;
|
||||
}
|
||||
| SCROLLBAR
|
||||
{
|
||||
default_style = SBS_HORZ;
|
||||
base_style = 0;
|
||||
class = CTL_SCROLLBAR;
|
||||
res_text_field = res_null_text;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
}
|
||||
| STATE3
|
||||
| STATE3 optresidc
|
||||
{
|
||||
default_style = BS_3STATE | WS_TABSTOP;
|
||||
base_style = BS_3STATE;
|
||||
class = CTL_BUTTON;
|
||||
res_text_field = $2;
|
||||
}
|
||||
control_params
|
||||
{
|
||||
$$ = $3;
|
||||
$$ = $4;
|
||||
}
|
||||
| USERBUTTON resref numexpr ',' numexpr ',' numexpr ','
|
||||
numexpr ',' numexpr ','
|
||||
@ -827,37 +853,36 @@ control:
|
||||
style. CLASS is the class of the control. */
|
||||
|
||||
control_params:
|
||||
optresidc numexpr cnumexpr cnumexpr cnumexpr cnumexpr
|
||||
opt_control_data
|
||||
numexpr cnumexpr cnumexpr cnumexpr cnumexpr opt_control_data
|
||||
{
|
||||
$$ = define_control ($1, $2, $3, $4, $5, $6, class,
|
||||
$$ = define_control (res_text_field, $1, $2, $3, $4, $5, class,
|
||||
default_style | WS_CHILD | WS_VISIBLE, 0);
|
||||
if ($7 != NULL)
|
||||
if ($6 != NULL)
|
||||
{
|
||||
if (dialog.ex == NULL)
|
||||
rcparse_warning (_("control data requires DIALOGEX"));
|
||||
$$->data = $7;
|
||||
$$->data = $6;
|
||||
}
|
||||
}
|
||||
| optresidc numexpr cnumexpr cnumexpr cnumexpr cnumexpr
|
||||
| numexpr cnumexpr cnumexpr cnumexpr cnumexpr
|
||||
control_params_styleexpr optcnumexpr opt_control_data
|
||||
{
|
||||
$$ = define_control ($1, $2, $3, $4, $5, $6, class, style, $8);
|
||||
if ($9 != NULL)
|
||||
$$ = define_control (res_text_field, $1, $2, $3, $4, $5, class, style, $7);
|
||||
if ($8 != NULL)
|
||||
{
|
||||
if (dialog.ex == NULL)
|
||||
rcparse_warning (_("control data requires DIALOGEX"));
|
||||
$$->data = $9;
|
||||
$$->data = $8;
|
||||
}
|
||||
}
|
||||
| optresidc numexpr cnumexpr cnumexpr cnumexpr cnumexpr
|
||||
| numexpr cnumexpr cnumexpr cnumexpr cnumexpr
|
||||
control_params_styleexpr cnumexpr cnumexpr opt_control_data
|
||||
{
|
||||
$$ = define_control ($1, $2, $3, $4, $5, $6, class, style, $8);
|
||||
$$ = define_control (res_text_field, $1, $2, $3, $4, $5, class, style, $7);
|
||||
if (dialog.ex == NULL)
|
||||
rcparse_warning (_("help ID requires DIALOGEX"));
|
||||
$$->help = $9;
|
||||
$$->data = $10;
|
||||
$$->help = $8;
|
||||
$$->data = $9;
|
||||
}
|
||||
;
|
||||
|
||||
|
@ -819,7 +819,7 @@ define_dialog (id, resinfo, dialog)
|
||||
|
||||
struct dialog_control *
|
||||
define_control (iid, id, x, y, width, height, class, style, exstyle)
|
||||
struct res_id iid;
|
||||
const struct res_id iid;
|
||||
unsigned long id;
|
||||
unsigned long x;
|
||||
unsigned long y;
|
||||
|
@ -1,3 +1,16 @@
|
||||
2003-06-28 Danny Smith <dannysmith@users.sourceforge.net>
|
||||
|
||||
* binutils-all/windres/checkbox.rc: New file.
|
||||
* binutils-all/windres/checkbox.rsd: New file.
|
||||
* binutils-all/windres/combobox.rc: New file.
|
||||
* binutils-all/windres/combobox.rsd: New file.
|
||||
* binutils-all/windres/edittext.rc: New file.
|
||||
* binutils-all/windres/edittext.rsd: New file.
|
||||
* binutils-all/windres/listbox.rc: New file.
|
||||
* binutils-all/windres/listbox.rsd: New file.
|
||||
* binutils-all/windres/scrollbar.rc: New file.
|
||||
* binutils-all/windres/scrollbar.rsd: New file.
|
||||
|
||||
2003-06-27 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
||||
|
||||
* binutils-all/readelf.ss-tmips: Adjust symbol indices.
|
||||
|
5
binutils/testsuite/binutils-all/windres/checkbox.rc
Normal file
5
binutils/testsuite/binutils-all/windres/checkbox.rc
Normal file
@ -0,0 +1,5 @@
|
||||
501 DIALOGEX DISCARDABLE 0, 0, 168, 137
|
||||
BEGIN
|
||||
CHECKBOX 108, 1002, 12, 76, 123, 41
|
||||
CHECKBOX "tick me", 1001, 12, 15, 123, 41
|
||||
END
|
12
binutils/testsuite/binutils-all/windres/checkbox.rsd
Normal file
12
binutils/testsuite/binutils-all/windres/checkbox.rsd
Normal file
@ -0,0 +1,12 @@
|
||||
0000 00000000 20000000 ffff0000 ffff0000 .... ...........
|
||||
0010 00000000 00000000 00000000 00000000 ................
|
||||
0020 72000000 20000000 ffff0500 fffff501 r... ...........
|
||||
0030 00000000 30100904 00000000 00000000 ....0...........
|
||||
0040 0100ffff 00000000 00000000 00008880 ................
|
||||
0050 02000000 0000a800 89000000 00000000 ................
|
||||
0060 00000000 00000000 02000150 0c004c00 ...........P..L.
|
||||
0070 7b002900 ea030000 ffff8000 ffff6c00 {.)...........l.
|
||||
0080 00000000 00000000 00000000 02000150 ...............P
|
||||
0090 0c000f00 7b002900 e9030000 ffff8000 ....{.).........
|
||||
00a0 74006900 63006b00 20006d00 65000000 t.i.c.k. .m.e...
|
||||
00b0 00000000 ....
|
8
binutils/testsuite/binutils-all/windres/combobox.rc
Normal file
8
binutils/testsuite/binutils-all/windres/combobox.rc
Normal file
@ -0,0 +1,8 @@
|
||||
#define CBS_SIMPLE 0x1
|
||||
#define WS_TABSTOP 0x10000
|
||||
|
||||
501 DIALOG DISCARDABLE 0, 0, 168, 137
|
||||
BEGIN
|
||||
COMBOBOX 1001,10,10,50,54, CBS_SIMPLE | WS_TABSTOP
|
||||
END
|
||||
|
8
binutils/testsuite/binutils-all/windres/combobox.rsd
Normal file
8
binutils/testsuite/binutils-all/windres/combobox.rsd
Normal file
@ -0,0 +1,8 @@
|
||||
0000 00000000 20000000 ffff0000 ffff0000 .... ...........
|
||||
0010 00000000 00000000 00000000 00000000 ................
|
||||
0020 32000000 20000000 ffff0500 fffff501 2... ...........
|
||||
0030 00000000 30100904 00000000 00000000 ....0...........
|
||||
0040 00008880 00000000 01000000 0000a800 ................
|
||||
0050 89000000 00000000 01000150 00000000 ...........P....
|
||||
0060 0a000a00 32003600 e903ffff 85000000 ....2.6.........
|
||||
0070 00000000 ....
|
4
binutils/testsuite/binutils-all/windres/edittext.rc
Normal file
4
binutils/testsuite/binutils-all/windres/edittext.rc
Normal file
@ -0,0 +1,4 @@
|
||||
501 DIALOG DISCARDABLE 0, 0, 168, 137
|
||||
BEGIN
|
||||
EDITTEXT 1001, 28, 63, 137, 52
|
||||
END
|
8
binutils/testsuite/binutils-all/windres/edittext.rsd
Normal file
8
binutils/testsuite/binutils-all/windres/edittext.rsd
Normal file
@ -0,0 +1,8 @@
|
||||
0000 00000000 20000000 ffff0000 ffff0000 .... ...........
|
||||
0010 00000000 00000000 00000000 00000000 ................
|
||||
0020 32000000 20000000 ffff0500 fffff501 2... ...........
|
||||
0030 00000000 30100904 00000000 00000000 ....0...........
|
||||
0040 00008880 00000000 01000000 0000a800 ................
|
||||
0050 89000000 00000000 00008150 00000000 ...........P....
|
||||
0060 1c003f00 89003400 e903ffff 81000000 ..?...4.........
|
||||
0070 00000000 ....
|
4
binutils/testsuite/binutils-all/windres/listbox.rc
Normal file
4
binutils/testsuite/binutils-all/windres/listbox.rc
Normal file
@ -0,0 +1,4 @@
|
||||
501 DIALOG DISCARDABLE 0, 0, 168, 137
|
||||
BEGIN
|
||||
LISTBOX 1001, 28, 63, 137, 52
|
||||
END
|
8
binutils/testsuite/binutils-all/windres/listbox.rsd
Normal file
8
binutils/testsuite/binutils-all/windres/listbox.rsd
Normal file
@ -0,0 +1,8 @@
|
||||
0000 00000000 20000000 ffff0000 ffff0000 .... ...........
|
||||
0010 00000000 00000000 00000000 00000000 ................
|
||||
0020 32000000 20000000 ffff0500 fffff501 2... ...........
|
||||
0030 00000000 30100904 00000000 00000000 ....0...........
|
||||
0040 00008880 00000000 01000000 0000a800 ................
|
||||
0050 89000000 00000000 01008050 00000000 ...........P....
|
||||
0060 1c003f00 89003400 e903ffff 83000000 ..?...4.........
|
||||
0070 00000000 ....
|
4
binutils/testsuite/binutils-all/windres/scrollbar.rc
Normal file
4
binutils/testsuite/binutils-all/windres/scrollbar.rc
Normal file
@ -0,0 +1,4 @@
|
||||
501 DIALOGEX 0, 0, 168, 137
|
||||
BEGIN
|
||||
SCROLLBAR 1001,43,68,105,10,0,0,0x81f503e9
|
||||
END
|
8
binutils/testsuite/binutils-all/windres/scrollbar.rsd
Normal file
8
binutils/testsuite/binutils-all/windres/scrollbar.rsd
Normal file
@ -0,0 +1,8 @@
|
||||
0000 00000000 20000000 ffff0000 ffff0000 .... ...........
|
||||
0010 00000000 00000000 00000000 00000000 ................
|
||||
0020 40000000 20000000 ffff0500 fffff501 @... ...........
|
||||
0030 00000000 30100904 00000000 00000000 ....0...........
|
||||
0040 0100ffff 00000000 00000000 00008880 ................
|
||||
0050 01000000 0000a800 89000000 00000000 ................
|
||||
0060 e903f581 00000000 00000050 2b004400 ...........P+.D.
|
||||
0070 69000a00 e9030000 ffff8400 00000000 i...............
|
@ -814,7 +814,7 @@ extern void define_cursor
|
||||
extern void define_dialog
|
||||
PARAMS ((struct res_id, const struct res_res_info *, const struct dialog *));
|
||||
extern struct dialog_control *define_control
|
||||
PARAMS ((struct res_id, unsigned long, unsigned long, unsigned long,
|
||||
PARAMS ((const struct res_id, unsigned long, unsigned long, unsigned long,
|
||||
unsigned long, unsigned long, unsigned long, unsigned long,
|
||||
unsigned long));
|
||||
extern struct dialog_control *define_icon_control
|
||||
|
Loading…
Reference in New Issue
Block a user