
Fri Mar 8 19:07:18 1996 Alexandre Julliard <julliard@lrc.epfl.ch> * [configure.in] Quote '[' and ']' in the test program for the strength-reduce bug. This should work much better... * [files/file.c] Augmented DOS_FILE structure. Most internal functions now return a DOS_FILE* instead of a Unix handle. Added a local file array to replace the PDB list upon startup, to allow using file I/O functions before the first task is created. Added FILE_SetDateTime() and FILE_Sync() functions. * [loader/module.c] Use the DOS file I/O functions in MODULE_LoadExeHeader(). * [objects/bitblt.c] Use visible region instead of GC clip region to clip source area. This fixes the card drawing bug in freecell. * [objects/region.c] Fixed CombineRgn() to allow src and dest regions to be the same. Fri Mar 8 16:32:23 1996 Frans van Dorsselaer <dorssel@rulhm1.leidenuniv.nl> * [controls/EDIT.TODO] Updated so it reflects the current status. * [controls/edit.c] Implemented internal EDIT_WordBreakProc(). Implemented ES_READONLY. Implemented WM_LBUTTONDBLCLK to select whole words. Fixed a lot of types in the function definitions. Wed Mar 6 19:55:00 1996 Alex Korobka <alex@phm30.pharm.sunysb.edu> * [debugger/info.c] Added "walk window" command to walk window list. * [windows/mdi.c] Added proper(?) WM_MDISETMENU message handling. Wed Mar 6 09:27:12 1996 Martin von Loewis <loewis@informatik.hu-berlin.de> * [if1632/callback.c][if1632/relay32.c] RELAY32_CallWindowProcConvStruct: new function. * [win32/struct32.c][win32/Makefile.in][win32/param.c][win32/user32.c] struct32.c: new file. Moved all structure conversions into that file PARAM32_POINT32to16,MSG16to32,USER32_RECT32to16: renamed to STRUCT32_POINT32to16, ... WIN32_POINT,WIN32_MSG,WIN32_RECT,WIN32_PAINTSTRUCT: renamed to POINT32, ... New conversion functions for NCCALCSIZE_PARAMS, WINDOWPOS, CREATESTRUCT. * [include/windows.h][misc/exec.c] WINHELP, MULTIKEYHELP, HELPWININFO: new structures WinHelp: Reimplemented. Thanks to Peter Balch (100710.2566@compuserve.com) for his valuable research. * [win32/winprocs.c] WIN32_CallWindowProcTo16: new function, call in USER32_DefWindowProcA,... Mon Mar 4 23:22:40 1996 Jim Peterson <jspeter@birch.ee.vt.edu> * [include/wintypes.h] Added "#define __export". * [objects/bitblt.c] Put in a few hacks to make bitblt-ing work when upside-down and/or mirrored. BITBLT_StretchImage should really be checked over thoroughly. * [programs/progman/main.c] Added "#include <resource.h>" for definition of HAVE_WINE_CONSTRUCTOR. * [rc/parser.h] [rc/parser.l] [rc/parser.y] [rc/winerc.c] Eliminated shift/reduce conflict in style definition. Added crude error message support: "stdin:%d: parse error before '%s'". Implemented string table support to the best of my ability (it works with LoadString() calls). * [windows/nonclient.c] Fixed bug in NC_DoSizeMove() that made system menu pop up when title bar of non-iconized window was clicked (checked for iconization). Mon Mar 04 20:55:19 1996 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [if1632/lzexpand.spec] [if1632/relay.c] [include/lzexpand.h][misc/lzexpand.c] LZEXPAND.DLL added. Sun Mar 03 18:10:22 1996 Albrecht Kleine <kleine@ak.sax.de> * [windows/win.c] Prevent usage of invalid HWNDs in WIN_EnumChildWin(), this prevents too early termination of EnumChildWindows().
112 lines
3.3 KiB
C
112 lines
3.3 KiB
C
/*
|
|
*
|
|
* Copyright Martin von Loewis, 1994
|
|
*
|
|
*/
|
|
|
|
/* resource types */
|
|
enum rt {acc,bmp,cur,dlg,fnt,ico,men,rdt,str};
|
|
/* generic resource
|
|
Bytes can be inserted at arbitrary positions, the data field (res)
|
|
grows as required. As the dialog header contains the number of
|
|
controls, this number is generated in num_entries. If n_type if 0,
|
|
the resource name is i_name, and s_name otherwise. Top level
|
|
resources are linked via next. All gen_res objects are linked via
|
|
g_prev, g_next for debugging purposes. space is the length of res,
|
|
size is the used part of res.
|
|
As most bison rules are right recursive, new items are usually
|
|
inserted at the beginning
|
|
*/
|
|
typedef struct gen_res{
|
|
int size,space;
|
|
int num_entries;
|
|
enum rt type;
|
|
union{
|
|
int i_name;
|
|
char* s_name;
|
|
}n;
|
|
int n_type; /*0 - integer, 1 = string*/
|
|
struct gen_res *next;
|
|
struct gen_res *g_prev,*g_next;
|
|
unsigned char res[0];
|
|
} gen_res;
|
|
|
|
/* control/dialog style. or collects styles, and collects NOT styles */
|
|
typedef struct rc_style{
|
|
int and, or;
|
|
}rc_style;
|
|
|
|
/* create a new resource */
|
|
gen_res *new_res(void);
|
|
/* double the space of the resource */
|
|
gen_res* grow(gen_res*);
|
|
/* insert byte array at the beginning, increase count */
|
|
gen_res* insert_at_beginning(gen_res*,char*,int);
|
|
/* insert byte array at offset */
|
|
gen_res* insert_bytes(gen_res*,char*,int,int);
|
|
/* delete bytes at offset */
|
|
gen_res* delete_bytes(gen_res*,int,int);
|
|
/* create a new style */
|
|
rc_style* new_style(void);
|
|
/* convert \t to tab etc. */
|
|
char* parse_c_string(char*);
|
|
/* get the resources type, convert dlg to "DIALOG" and so on */
|
|
char* get_typename(gen_res*);
|
|
|
|
gen_res* add_accelerator(int,int,int,gen_res*);
|
|
gen_res* add_string_accelerator(char*,int,int,gen_res*);
|
|
gen_res* add_ascii_accelerator(int,int,int,gen_res*);
|
|
gen_res* add_vk_accelerator(int,int,int,gen_res*);
|
|
|
|
gen_res* new_dialog(void);
|
|
gen_res* dialog_style(rc_style*,gen_res*);
|
|
int dialog_get_menu(gen_res*);
|
|
int dialog_get_class(gen_res*);
|
|
int dialog_get_caption(gen_res*);
|
|
int dialog_get_fontsize(gen_res*);
|
|
gen_res* dialog_caption(char*,gen_res*);
|
|
gen_res* dialog_font(short,char*,gen_res*);
|
|
gen_res* dialog_class(char*,gen_res*);
|
|
gen_res* dialog_menu(char*,gen_res*);
|
|
gen_res* create_control_desc(int,int,int,int,int,rc_style*);
|
|
gen_res* label_control_desc(char*,gen_res*);
|
|
gen_res* create_generic_control(char*,int,char*,rc_style*,int,int,int,int);
|
|
gen_res* add_control(int,int,gen_res*,gen_res*);
|
|
gen_res* add_icon(char*,int,int,int,gen_res*,gen_res*);
|
|
gen_res* add_generic_control(gen_res*,gen_res*);
|
|
gen_res* make_dialog(gen_res*,int,int,int,int,gen_res*);
|
|
|
|
gen_res *hex_to_raw(char*,gen_res*);
|
|
gen_res *int_to_raw(int,gen_res*);
|
|
gen_res *make_font(gen_res*);
|
|
gen_res *make_raw(gen_res*);
|
|
gen_res *make_bitmap(gen_res*);
|
|
gen_res *make_icon(gen_res*);
|
|
gen_res *make_cursor(gen_res*);
|
|
gen_res *load_file(char*);
|
|
|
|
gen_res *add_menuitem(char*,int,int,gen_res*);
|
|
gen_res *add_popup(char*,short,gen_res*,gen_res*);
|
|
gen_res *make_menu(gen_res*);
|
|
|
|
gen_res *add_resource(gen_res*,gen_res*);
|
|
|
|
void add_str_tbl_elm(int,char*);
|
|
|
|
void create_output(gen_res*);
|
|
void set_out_file(char*);
|
|
|
|
#define CT_BUTTON 0x80
|
|
#define CT_EDIT 0x81
|
|
#define CT_STATIC 0x82
|
|
#define CT_LISTBOX 0x83
|
|
#define CT_SCROLLBAR 0x84
|
|
#define CT_COMBOBOX 0x85
|
|
|
|
extern int verbose;
|
|
|
|
#ifdef __sun__
|
|
#define strtoul strtol
|
|
#endif
|
|
|