mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-15 00:25:23 +00:00
234bc24db1
Wed Dec 7 14:52:25 1994 Alexandre Julliard (julliard@lamisun.epfl.ch) * [controls/listbox.c] Fixed problems due to new scroll-bar code. * [loader/signal.c] [miscemu/ioports.c] Handle I/O opcodes that use an absolute address. * [objects/text.c] Implemented TabbedTextOut(). Sat Dec 3 18:53:08 1994 Kenneth MacDonald <K.MacDonald@ed.ac.uk> * [objects/metafile.c] Implemented GetMetafile(). Fixed bug in PlayMetaFile() when reading disc based metafile records. Added META_POLYPOLYGON, META_DELETEOBJECT and META_EOF to PlayMetaFileRecord(). Wed Nov 30 06:32:25 1994 Martin von Loewis (martin@cs.csufresno.edu) * [Imakefile] wine.sym: Remove gcc2_compiled and friends * [controls/listbox.c][if1632/relay.c][if1632/relay.c] [loader/resource.c][memory/heap.c][objects/dib.c][windows/dialog.c] Replace #ifdef DEBUG_XXX with if(debugging_xxx){ * [if1632/call.S] CallToLibMain: New function * [if1632/relay.c][include/options.h][misc/main.c] [miscemu/int1a.c][miscemu/int21.c][miscemu/kernel.c] removed Options.relay_debug * [include/heap.h] HEAP_OWNER: Use ds instead of cs:ip * [loader/ne_image.c] LoadNEImage: Remember current exe, handle nodata dlls InitNEDLL: handle nodata dlls, call CallToLibMain * [loader/selector.c] CreateSelectors: Initialize auto_data_sel with 0 * [memory/heap.c] HEAP_CheckHeap: Check prev HEAP_CheckLocalHeaps: new function * [misc/profile] Remember and dump only changed profiles * [tools/makedebug] Introduce debugging_xxx flags Sun Nov 27 23:13:22 MET 1994 <erik@xs4all.nl> * [clipboard.h color.h dc.h dos_fs.h event.h font.h graphics.h if1632.h kernel.h library.h miscemu.h ne_image.h nonclient.h pe_image.h selectors.h wintypes.h] Added. * [*/*] - Commented all 'static char copyright statements', see misc/main.c - moved prototypes to headers files, fixed wrong prototypes. - *please* add a header file for each .c if you need to export things. * [misc/main.c] Added one static string which list the names of the contributors. Fri Nov 25 16:24:27 MET 1994 Dag Asheim (dash@ifi.uio.no) * [Configure] Made the support for multiple languages more automatic. Added a [fonts] section to the wine.conf file. Made the defaults better. Generally cleaned it up. * [rc/sysres_No.rc] [rc/sysres_De.rc] [rc/sysres.c] Norwegian resources and small fixes to the german resources. Wed Nov 23 20:28:59 1994 Martin von Loewis (martin@cs.csufresno.edu) * [debugger/break.c] bark(), toggle_next(), should_continue(): New functions insert_break(): Fixed, adds write access to page before writing wine_bp.next_addr: new structure field * [debugger/dbg.y] Changed symbol's value to be it's value instead of the value pointed to by the symbol. Changed SIGTRAP handling to allow continuation after break point * [misc/shell.c] ShellAbout(): Load resource from memory
211 lines
7.4 KiB
Plaintext
211 lines
7.4 KiB
Plaintext
%{
|
|
/*
|
|
*
|
|
* Copyright Martin von Loewis, 1994
|
|
*/
|
|
|
|
static char Copyright[] = "Copyright Martin von Loewis, 1994";
|
|
|
|
#include <stdio.h>
|
|
#include "rc.h"
|
|
#include "windows.h"
|
|
%}
|
|
%union{
|
|
gen_res *res;
|
|
char *str;
|
|
int num;
|
|
struct rc_style *style;
|
|
}
|
|
%token <num> NUMBER
|
|
%token <str> STRING SINGLE_QUOTED IDENT
|
|
%token ACCELERATORS ALT ASCII tBEGIN tBITMAP CAPTION CHECKBOX CHECKED
|
|
%token CLASS COMBOBOX CONTROL CTEXT CURSOR DEFPUSHBUTTON DIALOG
|
|
%token DISCARDABLE EDITTEXT tEND FIXED FONT GRAYED GROUPBOX HELP ICON
|
|
%token IDENT INACTIVE LISTBOX LTEXT MENU MENUBARBREAK MENUBREAK MENUITEM
|
|
%token MOVEABLE LOADONCALL NOINVERT NOT NOT_SUPPORTED POPUP PRELOAD
|
|
%token PURE PUSHBUTTON RADIOBUTTON RCDATA RTEXT SCROLLBAR SHIFT SEPARATOR
|
|
%token SINGLE_QUOTED STRING STRINGTABLE STYLE VERSIONINFO VIRTKEY
|
|
%type <res> resource_file resource resources resource_definition accelerators
|
|
%type <res> events bitmap cursor dialog dlg_attributes controls
|
|
%type <res> generic_control labeled_control control_desc font icon
|
|
%type <res> iconinfo menu menu_body item_definitions rcdata raw_data raw_elements
|
|
%type <res> stringtable strings versioninfo
|
|
%type <num> acc_options item_options
|
|
%type <style> style optional_style
|
|
%%
|
|
|
|
resource_file: resources {create_output($1);}
|
|
|
|
/*resources are put into a linked list*/
|
|
resources: {$$=0;}
|
|
|resource resources {$$=add_resource($1,$2);}
|
|
;
|
|
|
|
/* get the name for a single resource*/
|
|
resource: NUMBER resource_definition
|
|
{$$=$2;$$->n.i_name=$1;$$->n_type=0;
|
|
if(verbose)fprintf(stderr,"Got %s %d\n",get_typename($2),$1);
|
|
}
|
|
| IDENT resource_definition
|
|
{$$=$2;$$->n.s_name=$1;$$->n_type=1;
|
|
if(verbose)fprintf(stderr,"Got %s %s\n",get_typename($2),$1);
|
|
}
|
|
|
|
/* get the value for a single resource*/
|
|
resource_definition: accelerators {$$=$1;}
|
|
| bitmap {$$=$1;}
|
|
| cursor {$$=$1;}
|
|
| dialog {$$=$1;}
|
|
| font {$$=$1;}
|
|
| icon {$$=$1;}
|
|
| menu {$$=$1;}
|
|
| rcdata {$$=$1;}
|
|
| stringtable {$$=$1;}
|
|
| versioninfo {$$=$1;}
|
|
|
|
/* have to use tBEGIN because BEGIN is predefined */
|
|
accelerators: ACCELERATORS tBEGIN events tEND {$$=$3;$$->type=acc;}
|
|
/* the events are collected in a gen_res, as the accelerator resource is just
|
|
an array of events */
|
|
events: {$$=new_res();}
|
|
| STRING ',' NUMBER acc_options events
|
|
{$$=add_string_accelerator($1,$3,$4,$5);}
|
|
| NUMBER ',' NUMBER ',' ASCII acc_options events
|
|
{$$=add_ascii_accelerator($1,$3,$6,$7);}
|
|
| NUMBER ',' NUMBER ',' VIRTKEY acc_options events
|
|
{$$=add_vk_accelerator($1,$3,$6,$7);}
|
|
acc_options: {$$=0;}
|
|
| ',' NOINVERT acc_options {$$=$3|2;}
|
|
| ',' ALT acc_options {$$=$3|16;}
|
|
| ',' SHIFT acc_options {$$=$3|4;}
|
|
| ',' CONTROL acc_options {$$=$3|8;}
|
|
|
|
bitmap: tBITMAP load_and_memoption STRING {$$=make_bitmap(load_file($3));}
|
|
| tBITMAP load_and_memoption raw_data {$$=make_bitmap($3);}
|
|
|
|
/* load and memory options are ignored */
|
|
load_and_memoption: | lamo load_and_memoption
|
|
lamo: PRELOAD | LOADONCALL | FIXED | MOVEABLE | DISCARDABLE | PURE
|
|
|
|
cursor: CURSOR load_and_memoption STRING {$$=make_cursor(load_file($3));}
|
|
|CURSOR load_and_memoption raw_data {$$=make_cursor($3);}
|
|
|
|
dialog: DIALOG load_and_memoption NUMBER ',' NUMBER ',' NUMBER ',' NUMBER
|
|
dlg_attributes
|
|
tBEGIN controls tEND
|
|
{$$=make_dialog($10,$3,$5,$7,$9,$12);}
|
|
|
|
dlg_attributes: {$$=new_dialog();}
|
|
| STYLE style dlg_attributes
|
|
{$$=dialog_style($2,$3);}
|
|
| CAPTION STRING dlg_attributes
|
|
{$$=dialog_caption($2,$3);}
|
|
| FONT NUMBER ',' STRING dlg_attributes
|
|
{$$=dialog_font($2,$4,$5);}
|
|
| CLASS STRING dlg_attributes
|
|
{$$=dialog_class($2,$3);}
|
|
| MENU STRING dlg_attributes
|
|
{$$=dialog_menu($2,$3);}
|
|
|
|
/* the controls are collected into a gen_res, and finally the dialog header
|
|
is put at the beginning */
|
|
controls: {$$=new_res();}
|
|
| CHECKBOX labeled_control controls
|
|
{$$=add_control(CT_BUTTON, BS_CHECKBOX, $2, $3);}
|
|
| COMBOBOX control_desc controls
|
|
{$$=add_control(CT_COMBOBOX, 0, $2, $3);}
|
|
| CONTROL generic_control controls
|
|
{$$=add_generic_control($2, $3);}
|
|
| CTEXT labeled_control controls
|
|
{$$=add_control(CT_STATIC, SS_CENTER, $2, $3);}
|
|
| DEFPUSHBUTTON labeled_control controls
|
|
{$$=add_control(CT_BUTTON, BS_DEFPUSHBUTTON, $2, $3);}
|
|
| EDITTEXT control_desc controls
|
|
{$$=add_control(CT_EDIT, 0, $2, $3);}
|
|
| GROUPBOX labeled_control controls
|
|
{$$=add_control(CT_BUTTON, BS_GROUPBOX, $2, $3);}
|
|
/*special treatment for icons, as the extent is optional*/
|
|
| ICON STRING ',' NUMBER ',' NUMBER ',' NUMBER iconinfo controls
|
|
{$$=add_icon($2, $4, $6, $8, $9, $10);}
|
|
| LISTBOX control_desc controls
|
|
{$$=add_control(CT_LISTBOX, 0, $2, $3);}
|
|
| LTEXT labeled_control controls
|
|
{$$=add_control(CT_STATIC, SS_LEFT, $2, $3);}
|
|
| PUSHBUTTON labeled_control controls
|
|
{$$=add_control(CT_BUTTON, BS_PUSHBUTTON, $2, $3);}
|
|
| RADIOBUTTON labeled_control controls
|
|
{$$=add_control(CT_BUTTON, BS_RADIOBUTTON, $2, $3);}
|
|
| RTEXT labeled_control controls
|
|
{$$=add_control(CT_STATIC, SS_RIGHT, $2, $3);}
|
|
| SCROLLBAR control_desc controls
|
|
{$$=add_control(CT_SCROLLBAR, 0, $2, $3);}
|
|
|
|
|
|
labeled_control: STRING ',' control_desc {$$=label_control_desc($1,$3);}
|
|
control_desc: NUMBER ',' NUMBER ',' NUMBER ',' NUMBER ',' NUMBER optional_style
|
|
{$$=create_control_desc($1,$3,$5,$7,$9,$10);}
|
|
|
|
optional_style: {$$=0;}|
|
|
',' style {$$=$2;}
|
|
|
|
iconinfo: /*set extent and style to 0 if they are not provided */
|
|
{$$=create_control_desc(0,0,0,0,0,0);}
|
|
/* x and y are overwritten later */
|
|
| ',' NUMBER ',' NUMBER optional_style
|
|
{$$=create_control_desc(0,0,0,$2,$4,$5);}
|
|
|
|
generic_control: STRING ',' NUMBER ',' STRING ',' style ',' NUMBER
|
|
',' NUMBER ',' NUMBER ',' NUMBER
|
|
{$$=create_generic_control($1,$3,$5,$7,$9,$11,$13,$15);}
|
|
|
|
font: FONT load_and_memoption STRING {$$=make_font(load_file($3));}
|
|
|
|
icon: ICON load_and_memoption STRING {$$=make_icon(load_file($3));}
|
|
| ICON load_and_memoption raw_data {$$=make_icon($3);}
|
|
|
|
menu: MENU load_and_memoption menu_body {$$=make_menu($3);}
|
|
/* menu items are collected in a gen_res and prefixed with the menu header*/
|
|
menu_body: tBEGIN item_definitions tEND {$$=$2;}
|
|
item_definitions: {$$=new_res();}
|
|
| MENUITEM STRING ',' NUMBER item_options item_definitions
|
|
{$$=add_menuitem($2,$4,$5,$6);}
|
|
| MENUITEM SEPARATOR item_definitions
|
|
{$$=add_menuitem("",0,0,$3);}
|
|
| POPUP STRING item_options menu_body item_definitions
|
|
{$$=add_popup($2,$3,$4,$5);}
|
|
item_options: {$$=0;}
|
|
| ',' CHECKED item_options {$$=$3|MF_CHECKED;}
|
|
| ',' GRAYED item_options {$$=$3|MF_GRAYED;}
|
|
| ',' HELP item_options {$$=$3|MF_HELP;}
|
|
| ',' INACTIVE item_options {$$=$3|MF_DISABLED;}
|
|
| ',' MENUBARBREAK item_options {$$=$3|MF_MENUBARBREAK;}
|
|
| ',' MENUBREAK item_options {$$=$3|MF_MENUBREAK;}
|
|
|
|
rcdata: RCDATA load_and_memoption raw_data {$$=make_raw($3);}
|
|
|
|
raw_data: tBEGIN raw_elements tEND {$$=$2;}
|
|
raw_elements: SINGLE_QUOTED {$$=hex_to_raw($1,new_res());}
|
|
| NUMBER {$$=int_to_raw($1,new_res());}
|
|
| SINGLE_QUOTED raw_elements {$$=hex_to_raw($1,$2);}
|
|
| NUMBER ',' raw_elements {$$=int_to_raw($1,$3);}
|
|
|
|
stringtable: STRINGTABLE load_and_memoption tBEGIN strings tEND
|
|
{$$=$4;}
|
|
strings: {$$=0;}|
|
|
NUMBER STRING strings {$$=0;}
|
|
|
|
versioninfo: VERSIONINFO NOT_SUPPORTED {$$=0;}
|
|
|
|
/* NOT x | NOT y | a | b means (a|b)& ~x & ~y
|
|
NOT is used to disable default styles */
|
|
style: NUMBER {$$=new_style();$$->or=$1;}
|
|
| NOT NUMBER {$$=new_style();$$->and=~($2);}
|
|
| '(' style ')' {$$=$2;}
|
|
| style '|' style {$$=$1;$$->or|=$3->or;$$->and&=$3->and;}
|
|
%%
|
|
int yyerror(char *s)
|
|
{
|
|
puts(s);
|
|
}
|
|
|