Release 941107
Sun Nov 6 18:52:04 1994 Alexandre Julliard (julliard@lamisun.epfl.ch) * [objects/oembitmap.c] (New file) Added possibility to use .xpm files for OEM bitmaps. * [include/bitmaps/obm*] (New files) Redrawn all OEM bitmaps in xpm format. * [objects/font.c] Add space for internal leading when using a negative font height. Stubs for AddFontResource() and RemoveFontResource(). Fix in FONT_Init() for uninitialised default font. * [windows/dialog.c] Make font height negative as it is really a point size and not a pixel size; dialogs using 8-point fonts look better now. * [windows/graphics.c] Fixed the fix :-) for Pie() to make it work for Arc() and Chord() also. * [windows/nonclient.c] A few changes for new OEM bitmaps. Sun Nov 6 18:22:18 1994 Michael Patra <micky@marie.physik.tu-berlin.de> * [windows/class.c] The names of local classes have to be stored using GlobalAtom*. Otherwise they couldn't be accessed from other modules (e.g. BWCC) * [if1632/call.S] CallTo16(cx): It's possible to set the contents of the cx-register. * [loader/ne_image.c] InitNEDLL(): The size of the local heap is now passed in the cx- register when initializing a DLL. * [memory/heap.c] LocalInit(): The case start==0 is now handled in the way it should. * [windows/win.c] GetWindowLong(): If the adress of the windows function is requested it's no longer returned if it's within the Wine code (and therefore unreachable by a windows program). This makes Borland's OWL happy. * [controls/edit.c] EDIT_GetStr(): Added handling for off<0. Sun Nov 6 17:37:14 1994 Chris Jones <chrisj@ichips.intel.com> * [loader/library.c] Fixed infinite loop bug when two DLLs refer to each other (fixes hangup of Quicken during loading). Thu Nov 04 12:00:00 1994 Jan Willamowius (jan@janhh.sh.sub.de) * [misc/dos_fs.c] Bug fix: The size of a disk an the available space is now returned in bytes instead of (incorrectly) KBytes. Thu Nov 03 12:00:00 1994 Jan Willamowius (jan@janhh.sh.sub.de) * [windows/graphics.c] Bug fix: Pie segments are now filled with correct brush. Thu Nov 3 10:40:09 1994 Martin von Loewis (martin@cs.csufresno.edu) * [Imakefile] generate rc.o before loader.o * [controls/menu.c] CopySysMenu: generate SYSMENU on the fly, eliminate hSysMenu * [include/resource.h] Add struct ResourceTable * [loader/bitmap.h] Load system bitmaps from sysresbmTable * [misc/clipboard.c] [windows/event.c] IsClipboardFormatAvailable,EVENT_SelectionRequest: bug fixes * [rc/Imakefile] generate rc.o from sysres.o and sysresbm.o. Added -lfl * [rc/rc.y] change style handling to allow ( S1 | S2 ) | S3 * [rc/sysres.rc] [rc/sysresbm.rc] Put bitmaps and icons to sysresbm, everything else to sysres * [rc/winerc.c] [rc/winerc.h] Added -o, -c flags. New function set_out_file. Output to files. * [windows/dialog.c] DialogBoxIndirectPtr, DialogBoxIndirectParamPtr: New functions * [windows/nonclient.c] Create AboutWine dialog from template pointer
This commit is contained in:
parent
3a405baf38
commit
3ed37e0869
93 changed files with 3745 additions and 1894 deletions
108
ChangeLog
108
ChangeLog
|
@ -1,3 +1,106 @@
|
||||||
|
Sun Nov 6 18:52:04 1994 Alexandre Julliard (julliard@lamisun.epfl.ch)
|
||||||
|
|
||||||
|
* [objects/oembitmap.c] (New file)
|
||||||
|
Added possibility to use .xpm files for OEM bitmaps.
|
||||||
|
|
||||||
|
* [include/bitmaps/obm*] (New files)
|
||||||
|
Redrawn all OEM bitmaps in xpm format.
|
||||||
|
|
||||||
|
* [objects/font.c]
|
||||||
|
Add space for internal leading when using a negative font height.
|
||||||
|
Stubs for AddFontResource() and RemoveFontResource().
|
||||||
|
Fix in FONT_Init() for uninitialised default font.
|
||||||
|
|
||||||
|
* [windows/dialog.c]
|
||||||
|
Make font height negative as it is really a point size and not a
|
||||||
|
pixel size; dialogs using 8-point fonts look better now.
|
||||||
|
|
||||||
|
* [windows/graphics.c]
|
||||||
|
Fixed the fix :-) for Pie() to make it work for Arc() and Chord() also.
|
||||||
|
|
||||||
|
* [windows/nonclient.c]
|
||||||
|
A few changes for new OEM bitmaps.
|
||||||
|
|
||||||
|
Sun Nov 6 18:22:18 1994 Michael Patra <micky@marie.physik.tu-berlin.de>
|
||||||
|
|
||||||
|
* [windows/class.c]
|
||||||
|
The names of local classes have to be stored using GlobalAtom*.
|
||||||
|
Otherwise they couldn't be accessed from other modules (e.g. BWCC)
|
||||||
|
|
||||||
|
* [if1632/call.S]
|
||||||
|
CallTo16(cx): It's possible to set the contents of the cx-register.
|
||||||
|
|
||||||
|
* [loader/ne_image.c]
|
||||||
|
InitNEDLL(): The size of the local heap is now passed in the cx-
|
||||||
|
register when initializing a DLL.
|
||||||
|
|
||||||
|
* [memory/heap.c]
|
||||||
|
LocalInit(): The case start==0 is now handled in the way it should.
|
||||||
|
|
||||||
|
* [windows/win.c]
|
||||||
|
GetWindowLong(): If the adress of the windows function is requested
|
||||||
|
it's no longer returned if it's within the Wine code (and therefore
|
||||||
|
unreachable by a windows program). This makes Borland's OWL happy.
|
||||||
|
|
||||||
|
* [controls/edit.c]
|
||||||
|
EDIT_GetStr(): Added handling for off<0.
|
||||||
|
|
||||||
|
Sun Nov 6 17:37:14 1994 Chris Jones <chrisj@ichips.intel.com>
|
||||||
|
|
||||||
|
* [loader/library.c]
|
||||||
|
Fixed infinite loop bug when two DLLs refer to each other (fixes
|
||||||
|
hangup of Quicken during loading).
|
||||||
|
|
||||||
|
Thu Nov 04 12:00:00 1994 Jan Willamowius (jan@janhh.sh.sub.de)
|
||||||
|
|
||||||
|
* [misc/dos_fs.c]
|
||||||
|
Bug fix: The size of a disk an the available space
|
||||||
|
is now returned in bytes instead of (incorrectly)
|
||||||
|
KBytes.
|
||||||
|
|
||||||
|
Thu Nov 03 12:00:00 1994 Jan Willamowius (jan@janhh.sh.sub.de)
|
||||||
|
|
||||||
|
* [windows/graphics.c]
|
||||||
|
Bug fix: Pie segments are now filled with correct brush.
|
||||||
|
|
||||||
|
Thu Nov 3 10:40:09 1994 Martin von Loewis (martin@cs.csufresno.edu)
|
||||||
|
|
||||||
|
* [Imakefile]
|
||||||
|
generate rc.o before loader.o
|
||||||
|
|
||||||
|
* [controls/menu.c]
|
||||||
|
CopySysMenu: generate SYSMENU on the fly, eliminate hSysMenu
|
||||||
|
|
||||||
|
* [include/resource.h]
|
||||||
|
Add struct ResourceTable
|
||||||
|
|
||||||
|
* [loader/bitmap.h]
|
||||||
|
Load system bitmaps from sysresbmTable
|
||||||
|
|
||||||
|
* [misc/clipboard.c]
|
||||||
|
[windows/event.c]
|
||||||
|
IsClipboardFormatAvailable,EVENT_SelectionRequest: bug fixes
|
||||||
|
|
||||||
|
* [rc/Imakefile]
|
||||||
|
generate rc.o from sysres.o and sysresbm.o. Added -lfl
|
||||||
|
|
||||||
|
* [rc/rc.y]
|
||||||
|
change style handling to allow ( S1 | S2 ) | S3
|
||||||
|
|
||||||
|
* [rc/sysres.rc]
|
||||||
|
[rc/sysresbm.rc]
|
||||||
|
Put bitmaps and icons to sysresbm, everything else to sysres
|
||||||
|
|
||||||
|
* [rc/winerc.c]
|
||||||
|
[rc/winerc.h]
|
||||||
|
Added -o, -c flags. New function set_out_file. Output to files.
|
||||||
|
|
||||||
|
* [windows/dialog.c]
|
||||||
|
DialogBoxIndirectPtr, DialogBoxIndirectParamPtr: New functions
|
||||||
|
|
||||||
|
* [windows/nonclient.c]
|
||||||
|
Create AboutWine dialog from template pointer
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
Sun Oct 30 13:01:18 1994 Alexandre Julliard (julliard@lamisun.epfl.ch)
|
Sun Oct 30 13:01:18 1994 Alexandre Julliard (julliard@lamisun.epfl.ch)
|
||||||
|
|
||||||
|
@ -346,6 +449,11 @@ Sat Oct 15 17:35:00 PDT 1994 <martin@cs.csufresno.edu>
|
||||||
* [debugger/info.c]
|
* [debugger/info.c]
|
||||||
symbolic backtrace for 32-bit stack. Breaks 16-bit bt.
|
symbolic backtrace for 32-bit stack. Breaks 16-bit bt.
|
||||||
|
|
||||||
|
Sun Sep 25 12:00:00 PDT 1994 <martin@osiris.cs.csufresno.edu>
|
||||||
|
|
||||||
|
* [rc/rc.y] [rc/rc.h] [rc/rc.l] [rc/winerc.c]
|
||||||
|
Files created
|
||||||
|
|
||||||
Sun Sep 18 11:04:45 MET DST 1994 Dag Asheim (dash@ifi.uio.no)
|
Sun Sep 18 11:04:45 MET DST 1994 Dag Asheim (dash@ifi.uio.no)
|
||||||
|
|
||||||
* [misc/spy.c]
|
* [misc/spy.c]
|
||||||
|
|
16
Configure
16
Configure
|
@ -41,6 +41,7 @@ else
|
||||||
# if [ "$input" = 'y' -o "$input" = 'Y' ]
|
# if [ "$input" = 'y' -o "$input" = 'Y' ]
|
||||||
# then
|
# then
|
||||||
# PROCEMU='#define PROCEMU'
|
# PROCEMU='#define PROCEMU'
|
||||||
|
# ALLDEFINES="$ALLDEFINES -DPROCEMU"
|
||||||
# echo
|
# echo
|
||||||
# echo -n 'bochs directory [/usr/src/bochs]? '
|
# echo -n 'bochs directory [/usr/src/bochs]? '
|
||||||
# read input
|
# read input
|
||||||
|
@ -65,6 +66,17 @@ else
|
||||||
SHORTNAMES=''
|
SHORTNAMES=''
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -n 'Use the XPM library (Y/N) [N]? '
|
||||||
|
read input
|
||||||
|
if [ "$input" = 'y' -o "$input" = 'Y' ]
|
||||||
|
then
|
||||||
|
XPM='#define USE_XPM'
|
||||||
|
ALLDEFINES="$ALLDEFINES -DUSE_XPM"
|
||||||
|
else
|
||||||
|
XPM=''
|
||||||
|
fi
|
||||||
|
|
||||||
prompt "Global configfile name" WINE_CONFIGFILE /usr/local/etc/wine.conf
|
prompt "Global configfile name" WINE_CONFIGFILE /usr/local/etc/wine.conf
|
||||||
|
|
||||||
WINE_INI_GLOBAL='#define WINE_INI_GLOBAL "'$WINE_CONFIGFILE'"'
|
WINE_INI_GLOBAL='#define WINE_INI_GLOBAL "'$WINE_CONFIGFILE'"'
|
||||||
|
@ -179,16 +191,16 @@ fi
|
||||||
NEWLINUXLDT=''
|
NEWLINUXLDT=''
|
||||||
if grep -s seg_not_present /usr/include/linux/ldt.h 2> /dev/null
|
if grep -s seg_not_present /usr/include/linux/ldt.h 2> /dev/null
|
||||||
then
|
then
|
||||||
NEWLINUXLDT='#define NEW_LDT_STRUCT'
|
ALLDEFINES="$ALLDEFINES -DNEW_LDT_STRUCT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat > autoconf.h << EOF
|
cat > autoconf.h << EOF
|
||||||
/* autoconf.h generated automatically. Run Configure. */
|
/* autoconf.h generated automatically. Run Configure. */
|
||||||
$WINELIB
|
$WINELIB
|
||||||
$SHORTNAMES
|
$SHORTNAMES
|
||||||
|
$XPM
|
||||||
$NEWBUILD
|
$NEWBUILD
|
||||||
$WINE_INI_GLOBAL
|
$WINE_INI_GLOBAL
|
||||||
$NEWLINUXLDT
|
|
||||||
$ENDIAN
|
$ENDIAN
|
||||||
$PROCEMUDIR
|
$PROCEMUDIR
|
||||||
#define AutoDefines $ALLDEFINES
|
#define AutoDefines $ALLDEFINES
|
||||||
|
|
11
Imakefile
11
Imakefile
|
@ -27,10 +27,10 @@ COMMONSUBDIRS = \
|
||||||
controls \
|
controls \
|
||||||
etc \
|
etc \
|
||||||
include \
|
include \
|
||||||
|
rc \
|
||||||
loader \
|
loader \
|
||||||
misc \
|
misc \
|
||||||
objects \
|
objects \
|
||||||
rc \
|
|
||||||
test \
|
test \
|
||||||
windows
|
windows
|
||||||
|
|
||||||
|
@ -51,6 +51,7 @@ COMMONOBJS = \
|
||||||
loader.o \
|
loader.o \
|
||||||
misc.o \
|
misc.o \
|
||||||
objects.o \
|
objects.o \
|
||||||
|
rc.o \
|
||||||
windows.o
|
windows.o
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -86,12 +87,18 @@ SYSLIBS = -ll -lm -lgnumalloc
|
||||||
SYSLIBS = -lm -lg
|
SYSLIBS = -lm -lg
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef USE_XPM
|
||||||
|
XPM_LIB = -lXpm
|
||||||
|
#else
|
||||||
|
XPM_LIB =
|
||||||
|
#endif
|
||||||
|
|
||||||
MakeSubdirs($(SUBDIRS))
|
MakeSubdirs($(SUBDIRS))
|
||||||
DependSubdirs($(SUBDIRS))
|
DependSubdirs($(SUBDIRS))
|
||||||
AllTarget(wine.sym)
|
AllTarget(wine.sym)
|
||||||
|
|
||||||
#ifndef WINELIB
|
#ifndef WINELIB
|
||||||
NormalProgramTarget(wine,$(EMUOBJS) $(COMMONOBJS),$(DEPXLIB),$(XLIB),$(SYSLIBS))
|
NormalProgramTarget(wine,$(EMUOBJS) $(COMMONOBJS),$(DEPXLIB),$(XPM_LIB) $(XLIB),$(SYSLIBS))
|
||||||
#else
|
#else
|
||||||
NormalLibraryTarget(wine,$(LIBOBJS) $(COMMONOBJS))
|
NormalLibraryTarget(wine,$(LIBOBJS) $(COMMONOBJS))
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,2 +1,9 @@
|
||||||
/* autoconf.h generated automatically. Run Configure. */
|
/* autoconf.h generated automatically. Run Configure. */
|
||||||
#error You must run Configure before you can build the makefiles.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define WINE_INI_GLOBAL "/home/alex/wine/wine.conf"
|
||||||
|
|
||||||
|
|
||||||
|
#define AutoDefines -DNEW_LDT_STRUCT
|
||||||
|
|
|
@ -57,7 +57,7 @@ LONG ComboBoxWndProc( HWND hwnd, WORD message, WORD wParam, LONG lParam )
|
||||||
case WM_CREATE:
|
case WM_CREATE:
|
||||||
wndPtr = WIN_FindWndPtr(hwnd);
|
wndPtr = WIN_FindWndPtr(hwnd);
|
||||||
if (wndPtr == NULL) return 0;
|
if (wndPtr == NULL) return 0;
|
||||||
dprintf_combo(stddeb,"Combo WM_CREATE %p !\n", lphc);
|
dprintf_combo(stddeb,"Combo WM_CREATE %d !\n", hwnd);
|
||||||
if (hComboBit == (HBITMAP)NULL)
|
if (hComboBit == (HBITMAP)NULL)
|
||||||
hComboBit = LoadBitmap((HINSTANCE)NULL, MAKEINTRESOURCE(OBM_COMBO));
|
hComboBit = LoadBitmap((HINSTANCE)NULL, MAKEINTRESOURCE(OBM_COMBO));
|
||||||
GetObject(hComboBit, sizeof(BITMAP), (LPSTR)&bm);
|
GetObject(hComboBit, sizeof(BITMAP), (LPSTR)&bm);
|
||||||
|
@ -388,6 +388,7 @@ LONG ComboBoxWndProc( HWND hwnd, WORD message, WORD wParam, LONG lParam )
|
||||||
dprintf_combo(stddeb,"ComboBox CB_SHOWDROPDOWN !\n");
|
dprintf_combo(stddeb,"ComboBox CB_SHOWDROPDOWN !\n");
|
||||||
lphc = ComboGetStorageHeader(hwnd);
|
lphc = ComboGetStorageHeader(hwnd);
|
||||||
if (lphc == NULL) return 0;
|
if (lphc == NULL) return 0;
|
||||||
|
wndPtr = WIN_FindWndPtr(hwnd);
|
||||||
lphc->dwState = lphc->dwState | CB_SHOWDROPDOWN;
|
lphc->dwState = lphc->dwState | CB_SHOWDROPDOWN;
|
||||||
if (wParam != 0) {
|
if (wParam != 0) {
|
||||||
GetWindowRect(hwnd, &rect);
|
GetWindowRect(hwnd, &rect);
|
||||||
|
@ -481,6 +482,7 @@ void ComboBoxStaticOwnerDraw(HWND hWnd, LPHEADCOMBO lphc)
|
||||||
SendMessage(lphc->hWndLBox, LB_GETTEXT, y, (LPARAM)str);
|
SendMessage(lphc->hWndLBox, LB_GETTEXT, y, (LPARAM)str);
|
||||||
ptr = (LPSTR)SendMessage(lphc->hWndLBox, LB_GETITEMDATA, y, 0L);
|
ptr = (LPSTR)SendMessage(lphc->hWndLBox, LB_GETITEMDATA, y, 0L);
|
||||||
}
|
}
|
||||||
|
hDC = GetDC(hWnd);
|
||||||
hBrush = SendMessage(GetParent(hWnd), WM_CTLCOLOR, (WORD)hDC,
|
hBrush = SendMessage(GetParent(hWnd), WM_CTLCOLOR, (WORD)hDC,
|
||||||
MAKELONG(hWnd, CTLCOLOR_STATIC));
|
MAKELONG(hWnd, CTLCOLOR_STATIC));
|
||||||
if (hBrush == (HBRUSH)NULL) hBrush = GetStockObject(WHITE_BRUSH);
|
if (hBrush == (HBRUSH)NULL) hBrush = GetStockObject(WHITE_BRUSH);
|
||||||
|
@ -490,9 +492,9 @@ void ComboBoxStaticOwnerDraw(HWND hWnd, LPHEADCOMBO lphc)
|
||||||
lpdis = (LPDRAWITEMSTRUCT) USER_HEAP_ADDR(hTemp);
|
lpdis = (LPDRAWITEMSTRUCT) USER_HEAP_ADDR(hTemp);
|
||||||
if (lpdis == NULL) {
|
if (lpdis == NULL) {
|
||||||
printf("ComboBox Ownerdraw // Error allocating DRAWITEMSTRUCT !\n");
|
printf("ComboBox Ownerdraw // Error allocating DRAWITEMSTRUCT !\n");
|
||||||
|
ReleaseDC( hWnd, hDC );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
hDC = GetDC(hWnd);
|
|
||||||
FillRect(hDC, &lphc->RectEdit, hBrush);
|
FillRect(hDC, &lphc->RectEdit, hBrush);
|
||||||
lpdis->hDC = hDC;
|
lpdis->hDC = hDC;
|
||||||
if (y != LB_ERR) lpdis->itemID = y - 1;
|
if (y != LB_ERR) lpdis->itemID = y - 1;
|
||||||
|
|
|
@ -16,7 +16,6 @@ static char Copyright[] = "Copyright David W. Metcalfe, 1994";
|
||||||
#include "win.h"
|
#include "win.h"
|
||||||
#include "class.h"
|
#include "class.h"
|
||||||
#include "user.h"
|
#include "user.h"
|
||||||
#include "scroll.h"
|
|
||||||
#include "stddebug.h"
|
#include "stddebug.h"
|
||||||
/* #define DEBUG_EDIT */
|
/* #define DEBUG_EDIT */
|
||||||
/* #undef DEBUG_EDIT */
|
/* #undef DEBUG_EDIT */
|
||||||
|
@ -583,7 +582,7 @@ long EDIT_CreateMsg(HWND hwnd, LONG lParam)
|
||||||
memset(text, ' ', (ClientWidth(wndPtr) / charWidths[32]) + 2);
|
memset(text, ' ', (ClientWidth(wndPtr) / charWidths[32]) + 2);
|
||||||
|
|
||||||
/* set up text cursor for edit class */
|
/* set up text cursor for edit class */
|
||||||
CLASS_FindClassByName("EDIT", &classPtr);
|
CLASS_FindClassByName("EDIT", 0, &classPtr);
|
||||||
classPtr->wc.hCursor = LoadCursor(0, IDC_IBEAM);
|
classPtr->wc.hCursor = LoadCursor(0, IDC_IBEAM);
|
||||||
|
|
||||||
/* paint background on first WM_PAINT */
|
/* paint background on first WM_PAINT */
|
||||||
|
@ -1093,18 +1092,18 @@ HANDLE EDIT_GetStr(HWND hwnd, char *lp, int off, int len, int *diff)
|
||||||
{
|
{
|
||||||
HANDLE hStr;
|
HANDLE hStr;
|
||||||
char *str;
|
char *str;
|
||||||
int ch = 0, i = 0, j, s_i;
|
int ch = 0, i = 0, j, s_i=0;
|
||||||
int ch1;
|
int ch1;
|
||||||
|
|
||||||
dprintf_edit(stddeb,"EDIT_GetStr %s %d %d\n", lp, off, len);
|
dprintf_edit(stddeb,"EDIT_GetStr lp='%s' off=%d len=%d\n", lp, off, len);
|
||||||
|
|
||||||
|
if (off<0) off=0;
|
||||||
while (i < off)
|
while (i < off)
|
||||||
{
|
{
|
||||||
s_i = i;
|
s_i = i;
|
||||||
i += EDIT_CharWidth(hwnd, (BYTE)(*(lp + ch)), i);
|
i += EDIT_CharWidth(hwnd, (BYTE)(*(lp + ch)), i);
|
||||||
ch++;
|
ch++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if stepped past _off_, go back a character */
|
/* if stepped past _off_, go back a character */
|
||||||
if (i - off)
|
if (i - off)
|
||||||
{
|
{
|
||||||
|
@ -1113,7 +1112,6 @@ HANDLE EDIT_GetStr(HWND hwnd, char *lp, int off, int len, int *diff)
|
||||||
}
|
}
|
||||||
*diff = off - i;
|
*diff = off - i;
|
||||||
ch1 = ch;
|
ch1 = ch;
|
||||||
|
|
||||||
while (i < len + off)
|
while (i < len + off)
|
||||||
{
|
{
|
||||||
i += EDIT_CharWidth(hwnd, (BYTE)(*(lp + ch)), i);
|
i += EDIT_CharWidth(hwnd, (BYTE)(*(lp + ch)), i);
|
||||||
|
@ -2176,7 +2174,7 @@ void EDIT_MouseMoveMsg(HWND hwnd, WORD wParam, LONG lParam)
|
||||||
|
|
||||||
int EDIT_PixelToChar(HWND hwnd, int row, int *pixel)
|
int EDIT_PixelToChar(HWND hwnd, int row, int *pixel)
|
||||||
{
|
{
|
||||||
int ch = 0, i = 0, s_i;
|
int ch = 0, i = 0, s_i = 0;
|
||||||
char *text;
|
char *text;
|
||||||
|
|
||||||
dprintf_edit(stddeb,"EDIT_PixelToChar: row=%d, pixel=%d\n", row, *pixel);
|
dprintf_edit(stddeb,"EDIT_PixelToChar: row=%d, pixel=%d\n", row, *pixel);
|
||||||
|
@ -2214,12 +2212,14 @@ LONG EDIT_SetTextMsg(HWND hwnd, LONG lParam)
|
||||||
|
|
||||||
if (strlen((char *)lParam) <= es->MaxTextLen)
|
if (strlen((char *)lParam) <= es->MaxTextLen)
|
||||||
{
|
{
|
||||||
len = strlen((char *)lParam);
|
len = ( lParam? strlen((char *)lParam) : 0 );
|
||||||
EDIT_ClearText(hwnd);
|
EDIT_ClearText(hwnd);
|
||||||
es->textlen = len;
|
es->textlen = len;
|
||||||
es->hText = EDIT_HeapReAlloc(hwnd, es->hText, len + 3);
|
es->hText = EDIT_HeapReAlloc(hwnd, es->hText, len + 3);
|
||||||
text = EDIT_HeapAddr(hwnd, es->hText);
|
text = EDIT_HeapAddr(hwnd, es->hText);
|
||||||
strcpy(text, (char *)lParam);
|
if (lParam)
|
||||||
|
strcpy(text, (char *)lParam);
|
||||||
|
text[len] = '\0';
|
||||||
text[len + 1] = '\0';
|
text[len + 1] = '\0';
|
||||||
text[len + 2] = '\0';
|
text[len + 2] = '\0';
|
||||||
EDIT_BuildTextPointers(hwnd);
|
EDIT_BuildTextPointers(hwnd);
|
||||||
|
|
|
@ -19,7 +19,6 @@ static char Copyright[] = "Copyright Martin Ayotte, 1993";
|
||||||
#include "msdos.h"
|
#include "msdos.h"
|
||||||
#include "wine.h"
|
#include "wine.h"
|
||||||
#include "listbox.h"
|
#include "listbox.h"
|
||||||
#include "scroll.h"
|
|
||||||
#include "prototypes.h"
|
#include "prototypes.h"
|
||||||
#include "stddebug.h"
|
#include "stddebug.h"
|
||||||
/* #define DEBUG_LISTBOX */
|
/* #define DEBUG_LISTBOX */
|
||||||
|
@ -58,11 +57,6 @@ int ListBoxFindNextMatch(HWND hwnd, WORD wChar);
|
||||||
((wndPtr->dwStyle & LBS_OWNERDRAWVARIABLE) != LBS_OWNERDRAWVARIABLE) ) || \
|
((wndPtr->dwStyle & LBS_OWNERDRAWVARIABLE) != LBS_OWNERDRAWVARIABLE) ) || \
|
||||||
((wndPtr->dwStyle & LBS_HASSTRINGS) == LBS_HASSTRINGS) )
|
((wndPtr->dwStyle & LBS_HASSTRINGS) == LBS_HASSTRINGS) )
|
||||||
|
|
||||||
#define HasStrings(wndPtr) ( \
|
|
||||||
( ((wndPtr->dwStyle & LBS_OWNERDRAWFIXED) != LBS_OWNERDRAWFIXED) && \
|
|
||||||
((wndPtr->dwStyle & LBS_OWNERDRAWVARIABLE) != LBS_OWNERDRAWVARIABLE) ) || \
|
|
||||||
((wndPtr->dwStyle & LBS_HASSTRINGS) == LBS_HASSTRINGS) )
|
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* ListBoxWndProc
|
* ListBoxWndProc
|
||||||
|
@ -399,6 +393,7 @@ LONG ListBoxWndProc( HWND hwnd, WORD message, WORD wParam, LONG lParam )
|
||||||
wRet = ListBoxAddString(hwnd, (LPSTR)lParam);
|
wRet = ListBoxAddString(hwnd, (LPSTR)lParam);
|
||||||
return wRet;
|
return wRet;
|
||||||
case LB_GETTEXT:
|
case LB_GETTEXT:
|
||||||
|
dprintf_listbox(stddeb, "LB_GETTEXT wParam=%d\n",wParam);
|
||||||
wRet = ListBoxGetText(hwnd, wParam, (LPSTR)lParam, FALSE);
|
wRet = ListBoxGetText(hwnd, wParam, (LPSTR)lParam, FALSE);
|
||||||
return wRet;
|
return wRet;
|
||||||
case LB_INSERTSTRING:
|
case LB_INSERTSTRING:
|
||||||
|
@ -423,7 +418,8 @@ LONG ListBoxWndProc( HWND hwnd, WORD message, WORD wParam, LONG lParam )
|
||||||
case LB_GETHORIZONTALEXTENT:
|
case LB_GETHORIZONTALEXTENT:
|
||||||
return wRet;
|
return wRet;
|
||||||
case LB_GETITEMDATA:
|
case LB_GETITEMDATA:
|
||||||
lRet = ListBoxGetText(hwnd, wParam, (LPSTR)lParam, HasStrings(wndPtr));
|
dprintf_listbox(stddeb, "LB_GETITEMDATA wParam=%x\n", wParam);
|
||||||
|
lRet = ListBoxGetText(hwnd, wParam, (LPSTR)lParam, TRUE);
|
||||||
return lRet;
|
return lRet;
|
||||||
case LB_GETITEMHEIGHT:
|
case LB_GETITEMHEIGHT:
|
||||||
ListBoxGetItemRect(hwnd, wParam, &rect);
|
ListBoxGetItemRect(hwnd, wParam, &rect);
|
||||||
|
@ -460,6 +456,7 @@ LONG ListBoxWndProc( HWND hwnd, WORD message, WORD wParam, LONG lParam )
|
||||||
case LB_SETHORIZONTALEXTENT:
|
case LB_SETHORIZONTALEXTENT:
|
||||||
return wRet;
|
return wRet;
|
||||||
case LB_SETITEMDATA:
|
case LB_SETITEMDATA:
|
||||||
|
dprintf_listbox(stddeb, "LB_SETITEMDATA wParam=%x lParam=%lx\n", wParam, lParam);
|
||||||
wRet = ListBoxSetItemData(hwnd, wParam, lParam);
|
wRet = ListBoxSetItemData(hwnd, wParam, lParam);
|
||||||
return wRet;
|
return wRet;
|
||||||
case LB_SETTABSTOPS:
|
case LB_SETTABSTOPS:
|
||||||
|
@ -960,6 +957,8 @@ int ListBoxGetText(HWND hwnd, UINT uIndex, LPSTR OutStr, BOOL bItemData)
|
||||||
LPHEADLIST lphl;
|
LPHEADLIST lphl;
|
||||||
LPLISTSTRUCT lpls;
|
LPLISTSTRUCT lpls;
|
||||||
UINT Count;
|
UINT Count;
|
||||||
|
if ((!OutStr)&&(!bItemData))
|
||||||
|
fprintf(stderr, "ListBoxGetText // OutStr==NULL\n");
|
||||||
if (!bItemData) *OutStr=0;
|
if (!bItemData) *OutStr=0;
|
||||||
lphl = ListBoxGetWindowAndStorage(hwnd, &wndPtr);
|
lphl = ListBoxGetWindowAndStorage(hwnd, &wndPtr);
|
||||||
if (lphl == NULL) return LB_ERR;
|
if (lphl == NULL) return LB_ERR;
|
||||||
|
@ -1083,6 +1082,8 @@ int ListBoxResetContent(HWND hwnd)
|
||||||
if (lphl == NULL) return LB_ERR;
|
if (lphl == NULL) return LB_ERR;
|
||||||
lpls = lphl->lpFirst;
|
lpls = lphl->lpFirst;
|
||||||
if (lpls == NULL) return LB_ERR;
|
if (lpls == NULL) return LB_ERR;
|
||||||
|
dprintf_listbox(stddeb, "ListBoxResetContent // ItemCount = %d\n",
|
||||||
|
lphl->ItemsCount);
|
||||||
for(i = 0; i <= lphl->ItemsCount; i++) {
|
for(i = 0; i <= lphl->ItemsCount; i++) {
|
||||||
lpls2 = lpls;
|
lpls2 = lpls;
|
||||||
lpls = (LPLISTSTRUCT)lpls->lpNext;
|
lpls = (LPLISTSTRUCT)lpls->lpNext;
|
||||||
|
@ -1097,8 +1098,8 @@ int ListBoxResetContent(HWND hwnd)
|
||||||
lphl->lpFirst = NULL;
|
lphl->lpFirst = NULL;
|
||||||
lphl->FirstVisible = 1;
|
lphl->FirstVisible = 1;
|
||||||
lphl->ItemsCount = 0;
|
lphl->ItemsCount = 0;
|
||||||
lphl->ItemFocused = -1;
|
lphl->ItemFocused = -1;
|
||||||
lphl->PrevFocused = -1;
|
lphl->PrevFocused = -1;
|
||||||
if ((wndPtr->dwStyle && LBS_NOTIFY) != 0)
|
if ((wndPtr->dwStyle && LBS_NOTIFY) != 0)
|
||||||
SendMessage(lphl->hWndLogicParent, WM_COMMAND,
|
SendMessage(lphl->hWndLogicParent, WM_COMMAND,
|
||||||
wndPtr->wIDmenu, MAKELONG(hwnd, LBN_SELCHANGE));
|
wndPtr->wIDmenu, MAKELONG(hwnd, LBN_SELCHANGE));
|
||||||
|
|
|
@ -67,7 +67,6 @@ extern BOOL GRAPH_DrawBitmap( HDC hdc, HBITMAP hbitmap, int xdest, int ydest,
|
||||||
|
|
||||||
extern HINSTANCE hSysRes;
|
extern HINSTANCE hSysRes;
|
||||||
|
|
||||||
static HMENU hSysMenu = 0;
|
|
||||||
static HBITMAP hStdCheck = 0;
|
static HBITMAP hStdCheck = 0;
|
||||||
static HBITMAP hStdMnArrow = 0;
|
static HBITMAP hStdMnArrow = 0;
|
||||||
|
|
||||||
|
@ -97,14 +96,6 @@ BOOL MENU_Init()
|
||||||
arrow_bitmap_width = bm.bmWidth;
|
arrow_bitmap_width = bm.bmWidth;
|
||||||
arrow_bitmap_height = bm.bmHeight;
|
arrow_bitmap_height = bm.bmHeight;
|
||||||
|
|
||||||
/* Load system menu */
|
|
||||||
|
|
||||||
if (!(hSysMenu = LoadMenu( hSysRes, "SYSMENU" )))
|
|
||||||
{
|
|
||||||
fprintf(stderr,"SysMenu not found in system resources !\n");
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1075,13 +1066,12 @@ static BOOL MENU_ButtonUp( HWND hwndOwner, HMENU hmenu, HMENU *hmenuCurrent,
|
||||||
static BOOL MENU_MouseMove( HWND hwndOwner, HMENU hmenu, HMENU *hmenuCurrent,
|
static BOOL MENU_MouseMove( HWND hwndOwner, HMENU hmenu, HMENU *hmenuCurrent,
|
||||||
POINT pt )
|
POINT pt )
|
||||||
{
|
{
|
||||||
POPUPMENU *menu;
|
|
||||||
MENUITEM *item;
|
MENUITEM *item;
|
||||||
|
POPUPMENU *menu = (POPUPMENU *) USER_HEAP_ADDR( hmenu );
|
||||||
WORD id = NO_SELECTED_ITEM;
|
WORD id = NO_SELECTED_ITEM;
|
||||||
|
|
||||||
if (hmenu)
|
if (hmenu)
|
||||||
{
|
{
|
||||||
menu = (POPUPMENU *) USER_HEAP_ADDR( hmenu );
|
|
||||||
item = MENU_FindItemByCoords( menu, pt.x, pt.y, &id );
|
item = MENU_FindItemByCoords( menu, pt.x, pt.y, &id );
|
||||||
if (!item) /* Maybe in system menu */
|
if (!item) /* Maybe in system menu */
|
||||||
{
|
{
|
||||||
|
@ -2049,20 +2039,16 @@ HMENU LoadMenuIndirect(LPSTR menu_template)
|
||||||
HMENU CopySysMenu()
|
HMENU CopySysMenu()
|
||||||
{
|
{
|
||||||
HMENU hMenu;
|
HMENU hMenu;
|
||||||
LPPOPUPMENU sysmenu, menu;
|
LPPOPUPMENU menu;
|
||||||
MENUITEM *item;
|
extern unsigned char sysres_MENU_SYSMENU[];
|
||||||
int i;
|
|
||||||
|
|
||||||
sysmenu = (LPPOPUPMENU) USER_HEAP_ADDR(hSysMenu);
|
hMenu=LoadMenuIndirect(sysres_MENU_SYSMENU);
|
||||||
if (!(hMenu = CreatePopupMenu())) return 0;
|
if(!hMenu){
|
||||||
menu = (POPUPMENU *) USER_HEAP_ADDR( hMenu );
|
dprintf_menu(stddeb,"No SYSMENU\n");
|
||||||
menu->wFlags |= MF_SYSMENU;
|
return 0;
|
||||||
item = (MENUITEM *) USER_HEAP_ADDR( sysmenu->hItems );
|
|
||||||
for (i = 0; i < sysmenu->nItems; i++, item++)
|
|
||||||
{
|
|
||||||
AppendMenu( hMenu, item->item_flags, item->item_id, item->item_text );
|
|
||||||
}
|
}
|
||||||
|
menu = (POPUPMENU*) USER_HEAP_ADDR(hMenu);
|
||||||
|
menu->wFlags |= MF_SYSMENU|MF_POPUP;
|
||||||
dprintf_menu(stddeb,"CopySysMenu hMenu=%04X !\n", hMenu);
|
dprintf_menu(stddeb,"CopySysMenu hMenu=%04X !\n", hMenu);
|
||||||
return hMenu;
|
return hMenu;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,9 +8,9 @@
|
||||||
#define UDATASEL 0x27
|
#define UDATASEL 0x27
|
||||||
#endif
|
#endif
|
||||||
#ifdef __ELF__
|
#ifdef __ELF__
|
||||||
#define A( addr) addr
|
#define A(addr) addr
|
||||||
#else
|
#else
|
||||||
#define A( addr) _##addr
|
#define A(addr) _##addr
|
||||||
#endif
|
#endif
|
||||||
.data
|
.data
|
||||||
jump_target:
|
jump_target:
|
||||||
|
@ -21,22 +21,22 @@ return_value:
|
||||||
* Places to keep info about the current 32-bit stack frame.
|
* Places to keep info about the current 32-bit stack frame.
|
||||||
*/
|
*/
|
||||||
.globl A( IF1632_Saved32_esp), A(IF1632_Saved32_ebp), A(IF1632_Saved32_ss)
|
.globl A( IF1632_Saved32_esp), A(IF1632_Saved32_ebp), A(IF1632_Saved32_ss)
|
||||||
A(IF1632_Saved32_esp):
|
A(IF1632_Saved32_esp:)
|
||||||
.long 0
|
.long 0
|
||||||
A(IF1632_Saved32_ebp):
|
A(IF1632_Saved32_ebp:)
|
||||||
.long 0
|
.long 0
|
||||||
A(IF1632_Saved32_ss):
|
A(IF1632_Saved32_ss:)
|
||||||
.word 0
|
.word 0
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Places to keep info about the current 16-bit stack frame.
|
* Places to keep info about the current 16-bit stack frame.
|
||||||
*/
|
*/
|
||||||
.globl A(IF1632_Saved16_esp),A(IF1632_Saved16_ebp),A(IF1632_Saved16_ss)
|
.globl A(IF1632_Saved16_esp),A(IF1632_Saved16_ebp),A(IF1632_Saved16_ss)
|
||||||
A(IF1632_Saved16_esp):
|
A(IF1632_Saved16_esp:)
|
||||||
.long 0
|
.long 0
|
||||||
A(IF1632_Saved16_ebp):
|
A(IF1632_Saved16_ebp:)
|
||||||
.long 0
|
.long 0
|
||||||
A(IF1632_Saved16_ss):
|
A(IF1632_Saved16_ss:)
|
||||||
.word 0
|
.word 0
|
||||||
|
|
||||||
nbytes:
|
nbytes:
|
||||||
|
@ -62,7 +62,7 @@ offset:
|
||||||
*/
|
*/
|
||||||
.align 4
|
.align 4
|
||||||
.globl A(CallToInit16)
|
.globl A(CallToInit16)
|
||||||
A(CallToInit16):
|
A(CallToInit16:)
|
||||||
pushl %ebp
|
pushl %ebp
|
||||||
movl %esp,%ebp
|
movl %esp,%ebp
|
||||||
|
|
||||||
|
@ -154,17 +154,20 @@ A(CallToInit16):
|
||||||
ret
|
ret
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* int CallTo16(unsigned long csip, unsigned short ds)
|
* int CallTo16 (unsigned long csip, unsigned short ds)
|
||||||
|
* int CallTo16cx(unsigned long csip, unsigned long dscx);
|
||||||
*
|
*
|
||||||
* Stack: 0 ebp
|
* Stack: 0 ebp
|
||||||
* 4 eip
|
* 4 eip
|
||||||
* 8 target ip
|
* 8 target ip
|
||||||
* 10 target cs
|
* 10 target cs
|
||||||
* 12 target ds
|
* 12 target ds
|
||||||
|
* 14 target cx (only CallTo16cx)
|
||||||
*/
|
*/
|
||||||
.align 4
|
.align 4
|
||||||
.globl A(CallTo16)
|
.globl A(CallTo16), A(CallTo16cx)
|
||||||
A(CallTo16):
|
A(CallTo16:)
|
||||||
|
A(CallTo16cx:)
|
||||||
pushl %ebp
|
pushl %ebp
|
||||||
movl %esp,%ebp
|
movl %esp,%ebp
|
||||||
|
|
||||||
|
@ -175,6 +178,7 @@ A(CallTo16):
|
||||||
movl %eax,jump_target
|
movl %eax,jump_target
|
||||||
lea jump_target,%edx
|
lea jump_target,%edx
|
||||||
movw 12(%ebp),%ax
|
movw 12(%ebp),%ax
|
||||||
|
movw 14(%ebp),%cx
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Switch to 16-bit stack
|
* Switch to 16-bit stack
|
||||||
|
@ -252,7 +256,7 @@ A(CallTo16):
|
||||||
*/
|
*/
|
||||||
.align 4
|
.align 4
|
||||||
.globl A(CallTo32)
|
.globl A(CallTo32)
|
||||||
A(CallTo32):
|
A(CallTo32:)
|
||||||
pushl %ebp
|
pushl %ebp
|
||||||
movl %esp,%ebp
|
movl %esp,%ebp
|
||||||
|
|
||||||
|
@ -354,7 +358,7 @@ noargs:
|
||||||
*/
|
*/
|
||||||
.align 4
|
.align 4
|
||||||
.globl A(CallTo32_16)
|
.globl A(CallTo32_16)
|
||||||
A(CallTo32_16):
|
A(CallTo32_16:)
|
||||||
pushl %ebp
|
pushl %ebp
|
||||||
movl %esp,%ebp
|
movl %esp,%ebp
|
||||||
|
|
||||||
|
@ -443,7 +447,7 @@ noargs2:
|
||||||
* ReturnFromRegisterFunc()
|
* ReturnFromRegisterFunc()
|
||||||
*/
|
*/
|
||||||
.globl A(ReturnFromRegisterFunc)
|
.globl A(ReturnFromRegisterFunc)
|
||||||
A(ReturnFromRegisterFunc):
|
A(ReturnFromRegisterFunc:)
|
||||||
/*
|
/*
|
||||||
* Restore 16-bit stack
|
* Restore 16-bit stack
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -32,11 +32,6 @@ struct thunk_s
|
||||||
unsigned char thunk[10];
|
unsigned char thunk[10];
|
||||||
};
|
};
|
||||||
|
|
||||||
static __inline__ int Is16bitAddress(void *address)
|
|
||||||
{
|
|
||||||
return ((unsigned int) address
|
|
||||||
>= (((FIRST_SELECTOR << 3) | 0x0007) << 16));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* PushOn16
|
* PushOn16
|
||||||
|
@ -197,7 +192,7 @@ LONG CallWindowProc( WNDPROC func, HWND hwnd, WORD message,
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (Is16bitAddress(func))
|
else if (IS_16_BIT_ADDRESS(func))
|
||||||
{
|
{
|
||||||
dprintf_callback(stddeb, "CallWindowProc // 16bit func=%p !\n", func);
|
dprintf_callback(stddeb, "CallWindowProc // 16bit func=%p !\n", func);
|
||||||
PushOn16( CALLBACK_SIZE_WORD, hwnd );
|
PushOn16( CALLBACK_SIZE_WORD, hwnd );
|
||||||
|
@ -219,7 +214,7 @@ LONG CallWindowProc( WNDPROC func, HWND hwnd, WORD message,
|
||||||
*/
|
*/
|
||||||
void CallLineDDAProc(FARPROC func, short xPos, short yPos, long lParam)
|
void CallLineDDAProc(FARPROC func, short xPos, short yPos, long lParam)
|
||||||
{
|
{
|
||||||
if (Is16bitAddress(func))
|
if (IS_16_BIT_ADDRESS(func))
|
||||||
{
|
{
|
||||||
PushOn16( CALLBACK_SIZE_WORD, xPos );
|
PushOn16( CALLBACK_SIZE_WORD, xPos );
|
||||||
PushOn16( CALLBACK_SIZE_WORD, yPos );
|
PushOn16( CALLBACK_SIZE_WORD, yPos );
|
||||||
|
@ -238,7 +233,7 @@ void CallLineDDAProc(FARPROC func, short xPos, short yPos, long lParam)
|
||||||
*/
|
*/
|
||||||
DWORD CallHookProc( HOOKPROC func, short code, WPARAM wParam, LPARAM lParam )
|
DWORD CallHookProc( HOOKPROC func, short code, WPARAM wParam, LPARAM lParam )
|
||||||
{
|
{
|
||||||
if (Is16bitAddress(func))
|
if (IS_16_BIT_ADDRESS(func))
|
||||||
{
|
{
|
||||||
PushOn16( CALLBACK_SIZE_WORD, code );
|
PushOn16( CALLBACK_SIZE_WORD, code );
|
||||||
PushOn16( CALLBACK_SIZE_WORD, wParam );
|
PushOn16( CALLBACK_SIZE_WORD, wParam );
|
||||||
|
@ -257,7 +252,7 @@ DWORD CallHookProc( HOOKPROC func, short code, WPARAM wParam, LPARAM lParam )
|
||||||
*/
|
*/
|
||||||
BOOL CallGrayStringProc(FARPROC func, HDC hdc, LPARAM lParam, INT cch )
|
BOOL CallGrayStringProc(FARPROC func, HDC hdc, LPARAM lParam, INT cch )
|
||||||
{
|
{
|
||||||
if (Is16bitAddress(func))
|
if (IS_16_BIT_ADDRESS(func))
|
||||||
{
|
{
|
||||||
PushOn16( CALLBACK_SIZE_WORD, hdc );
|
PushOn16( CALLBACK_SIZE_WORD, hdc );
|
||||||
PushOn16( CALLBACK_SIZE_LONG, lParam );
|
PushOn16( CALLBACK_SIZE_LONG, lParam );
|
||||||
|
|
|
@ -125,6 +125,7 @@ length 490
|
||||||
105 pascal16 SelectVisRgn(word word) SelectVisRgn(1 2)
|
105 pascal16 SelectVisRgn(word word) SelectVisRgn(1 2)
|
||||||
106 pascal SetBitmapBits(word long ptr) SetBitmapBits(1 2 3)
|
106 pascal SetBitmapBits(word long ptr) SetBitmapBits(1 2 3)
|
||||||
117 pascal SetDCOrg(word s_word s_word) SetDCOrg(1 2 3)
|
117 pascal SetDCOrg(word s_word s_word) SetDCOrg(1 2 3)
|
||||||
|
119 pascal16 AddFontResource(ptr) AddFontResource(1)
|
||||||
#121 pascal Death
|
#121 pascal Death
|
||||||
#122 pascal ReSurRection
|
#122 pascal ReSurRection
|
||||||
123 pascal16 PlayMetaFile(word word) PlayMetaFile(1 2)
|
123 pascal16 PlayMetaFile(word word) PlayMetaFile(1 2)
|
||||||
|
@ -140,7 +141,7 @@ length 490
|
||||||
133 pascal16 GetEnvironment(ptr ptr word) GetEnvironment(1 2 3)
|
133 pascal16 GetEnvironment(ptr ptr word) GetEnvironment(1 2 3)
|
||||||
134 pascal16 GetRgnBox(word ptr) GetRgnBox(1 2)
|
134 pascal16 GetRgnBox(word ptr) GetRgnBox(1 2)
|
||||||
#135 pascal ScanLr
|
#135 pascal ScanLr
|
||||||
#136 pascal RemoveFontResource
|
136 pascal16 RemoveFontResource(ptr) RemoveFontResource(1)
|
||||||
148 pascal SetBrushOrg(word s_word s_word) SetBrushOrg(1 2 3)
|
148 pascal SetBrushOrg(word s_word s_word) SetBrushOrg(1 2 3)
|
||||||
149 pascal GetBrushOrg(word) GetBrushOrg(1)
|
149 pascal GetBrushOrg(word) GetBrushOrg(1)
|
||||||
150 pascal16 UnrealizeObject(word) UnrealizeObject(1)
|
150 pascal16 UnrealizeObject(word) UnrealizeObject(1)
|
||||||
|
|
15
include/bitmaps/obm_btncorners
Normal file
15
include/bitmaps/obm_btncorners
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_btncorners[] = {
|
||||||
|
"30 10 2 1",
|
||||||
|
" c white",
|
||||||
|
". c black",
|
||||||
|
" ",
|
||||||
|
" .... ",
|
||||||
|
" .... ...... ",
|
||||||
|
" . . .. .. .... ",
|
||||||
|
" . . .. .. .... ",
|
||||||
|
" . . .. .. .... ",
|
||||||
|
" . . .. .. .... ",
|
||||||
|
" .... ...... ",
|
||||||
|
" .... ",
|
||||||
|
" "};
|
20
include/bitmaps/obm_btsize
Normal file
20
include/bitmaps/obm_btsize
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_btsize[] = {
|
||||||
|
"15 15 2 1",
|
||||||
|
" c black",
|
||||||
|
". c white",
|
||||||
|
" ",
|
||||||
|
" ....... ..... ",
|
||||||
|
" ....... ..... ",
|
||||||
|
" ....... ..... ",
|
||||||
|
" ....... ..... ",
|
||||||
|
" ....... ..... ",
|
||||||
|
" ....... ..... ",
|
||||||
|
" ....... ..... ",
|
||||||
|
" ..... ",
|
||||||
|
" ............. ",
|
||||||
|
" ............. ",
|
||||||
|
" ............. ",
|
||||||
|
" ............. ",
|
||||||
|
" ............. ",
|
||||||
|
" "};
|
19
include/bitmaps/obm_check
Normal file
19
include/bitmaps/obm_check
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_check[] = {
|
||||||
|
"14 14 2 1",
|
||||||
|
" c white",
|
||||||
|
". c black",
|
||||||
|
" ",
|
||||||
|
" . ",
|
||||||
|
" . ",
|
||||||
|
" .. ",
|
||||||
|
" . ",
|
||||||
|
" .. ",
|
||||||
|
" .. . ",
|
||||||
|
" .. .. ",
|
||||||
|
" . . ",
|
||||||
|
" ... ",
|
||||||
|
" . ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
44
include/bitmaps/obm_checkboxes
Normal file
44
include/bitmaps/obm_checkboxes
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_checkboxes[] = {
|
||||||
|
"56 39 2 1",
|
||||||
|
" c black",
|
||||||
|
". c white",
|
||||||
|
" . . . .",
|
||||||
|
" ........... . ......... . . .",
|
||||||
|
" ........... . . ....... . . ......... . ....... .",
|
||||||
|
" ........... . .. ..... .. . ......... . . ..... . .",
|
||||||
|
" ........... . ... ... ... . ......... . .. ... .. .",
|
||||||
|
" ........... . .... . .... . ......... . ... . ... .",
|
||||||
|
" ........... . ..... ..... . ......... . .... .... .",
|
||||||
|
" ........... . .... . .... . ......... . ... . ... .",
|
||||||
|
" ........... . ... ... ... . ......... . .. ... .. .",
|
||||||
|
" ........... . .. ..... .. . ......... . . ..... . .",
|
||||||
|
" ........... . . ....... . . ......... . ....... .",
|
||||||
|
" ........... . ......... . . .",
|
||||||
|
" . . . .",
|
||||||
|
"..... ........... ........... ........... ......",
|
||||||
|
"... ... ....... ... ....... ....... ....",
|
||||||
|
".. ....... ..... ....... ..... ... ..... ... ...",
|
||||||
|
". ......... ... ... ... ... ....... ... . . ..",
|
||||||
|
". ......... ... .. .. ... ....... ... . . ..",
|
||||||
|
" ........... . .. .. . ......... . . . .",
|
||||||
|
" ........... . .. .. . ......... . . . .",
|
||||||
|
" ........... . .. .. . ......... . . . .",
|
||||||
|
". ......... ... .. .. ... ....... ... . . ..",
|
||||||
|
". ......... ... ... ... ... ....... ... . . ..",
|
||||||
|
".. ....... ..... ....... ..... ... ..... ... ...",
|
||||||
|
"... ... ....... ... ....... ....... ....",
|
||||||
|
"..... ........... ........... ........... ......",
|
||||||
|
".............. ............... .",
|
||||||
|
".............. . . . . . . ............... .",
|
||||||
|
".............. . . . . . ............... . . . . . .",
|
||||||
|
".............. . . . . . . ............... . . . . .",
|
||||||
|
".............. . . . . . ............... . . . . . .",
|
||||||
|
".............. . . . . . . ............... . . . . .",
|
||||||
|
".............. . . . . . ............... . . . . . .",
|
||||||
|
".............. . . . . . . ............... . . . . .",
|
||||||
|
".............. . . . . . ............... . . . . . .",
|
||||||
|
".............. . . . . . . ............... . . . . .",
|
||||||
|
".............. . . . . . ............... . . . . . .",
|
||||||
|
".............. . . . . . . ............... .",
|
||||||
|
".............. ............... ."};
|
25
include/bitmaps/obm_close
Normal file
25
include/bitmaps/obm_close
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_close[] = {
|
||||||
|
"36 18 4 1",
|
||||||
|
" s button_face c grey75",
|
||||||
|
". s window_frame c black",
|
||||||
|
"X c white",
|
||||||
|
"o s button_shadow c grey50",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ............. ....... ",
|
||||||
|
" .XXXXXXXXXXX.o .XXXXX.o ",
|
||||||
|
" .............o .......o ",
|
||||||
|
" ooooooooooooo ooooooo ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
14
include/bitmaps/obm_combo
Normal file
14
include/bitmaps/obm_combo
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_combo[] = {
|
||||||
|
"7 9 2 1",
|
||||||
|
" c white",
|
||||||
|
". c black",
|
||||||
|
" ... ",
|
||||||
|
" ... ",
|
||||||
|
" ... ",
|
||||||
|
".......",
|
||||||
|
" ..... ",
|
||||||
|
" ... ",
|
||||||
|
" . ",
|
||||||
|
" ",
|
||||||
|
"......."};
|
25
include/bitmaps/obm_dnarrow
Normal file
25
include/bitmaps/obm_dnarrow
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_dnarrow[] = {
|
||||||
|
"17 17 5 1",
|
||||||
|
" s window_frame c black",
|
||||||
|
". s button_highlight c white",
|
||||||
|
"X s button_shadow c grey50",
|
||||||
|
"o s button_face c grey75",
|
||||||
|
"O s button_text c black",
|
||||||
|
" ",
|
||||||
|
" ..............X ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .oooooOOOooooXX ",
|
||||||
|
" .oooooOOOooooXX ",
|
||||||
|
" .oooooOOOooooXX ",
|
||||||
|
" .oooOOOOOOOooXX ",
|
||||||
|
" .ooooOOOOOoooXX ",
|
||||||
|
" .oooooOOOooooXX ",
|
||||||
|
" .ooooooOoooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" XXXXXXXXXXXXXXX ",
|
||||||
|
" "};
|
24
include/bitmaps/obm_dnarrowd
Normal file
24
include/bitmaps/obm_dnarrowd
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_dnarrowd[] = {
|
||||||
|
"17 17 4 1",
|
||||||
|
" s window_frame c black",
|
||||||
|
". s button_shadow c grey50",
|
||||||
|
"X s button_face c grey75",
|
||||||
|
"o s button_text c black",
|
||||||
|
" ",
|
||||||
|
" ............... ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXoooXXXXX ",
|
||||||
|
" .XXXXXXoooXXXXX ",
|
||||||
|
" .XXXXXXoooXXXXX ",
|
||||||
|
" .XXXXoooooooXXX ",
|
||||||
|
" .XXXXXoooooXXXX ",
|
||||||
|
" .XXXXXXoooXXXXX ",
|
||||||
|
" .XXXXXXXoXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" "};
|
24
include/bitmaps/obm_dnarrowi
Normal file
24
include/bitmaps/obm_dnarrowi
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_dnarrowi[] = {
|
||||||
|
"17 17 4 1",
|
||||||
|
" s button_text c black",
|
||||||
|
". s button_highlight c white",
|
||||||
|
"X s button_shadow c grey50",
|
||||||
|
"o s button_face c grey75",
|
||||||
|
" ",
|
||||||
|
" ..............X ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .oooooXXXooooXX ",
|
||||||
|
" .oooooXXX.oooXX ",
|
||||||
|
" .oooooXXX.oooXX ",
|
||||||
|
" .oooXXXXXXXooXX ",
|
||||||
|
" .ooooXXXXX..oXX ",
|
||||||
|
" .oooooXXX..ooXX ",
|
||||||
|
" .ooooooX..oooXX ",
|
||||||
|
" .ooooooo.ooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" XXXXXXXXXXXXXXX ",
|
||||||
|
" "};
|
25
include/bitmaps/obm_lfarrow
Normal file
25
include/bitmaps/obm_lfarrow
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_lfarrow[] = {
|
||||||
|
"17 17 5 1",
|
||||||
|
" s window_frame c black",
|
||||||
|
". s button_highlight c white",
|
||||||
|
"X s button_shadow c grey50",
|
||||||
|
"o s button_face c grey75",
|
||||||
|
"O s button_text c black",
|
||||||
|
" ",
|
||||||
|
" ..............X ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooOoooooXX ",
|
||||||
|
" .oooooOOoooooXX ",
|
||||||
|
" .ooooOOOOOOooXX ",
|
||||||
|
" .oooOOOOOOOooXX ",
|
||||||
|
" .ooooOOOOOOooXX ",
|
||||||
|
" .oooooOOoooooXX ",
|
||||||
|
" .ooooooOoooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" XXXXXXXXXXXXXXX ",
|
||||||
|
" "};
|
24
include/bitmaps/obm_lfarrowd
Normal file
24
include/bitmaps/obm_lfarrowd
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_lfarrowd[] = {
|
||||||
|
"17 17 4 1",
|
||||||
|
" s window_frame c black",
|
||||||
|
". s button_shadow c grey50",
|
||||||
|
"X s button_face c grey75",
|
||||||
|
"o s button_text c black",
|
||||||
|
" ",
|
||||||
|
" ............... ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXoXXXXXX ",
|
||||||
|
" .XXXXXXooXXXXXX ",
|
||||||
|
" .XXXXXooooooXXX ",
|
||||||
|
" .XXXXoooooooXXX ",
|
||||||
|
" .XXXXXooooooXXX ",
|
||||||
|
" .XXXXXXooXXXXXX ",
|
||||||
|
" .XXXXXXXoXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" "};
|
24
include/bitmaps/obm_lfarrowi
Normal file
24
include/bitmaps/obm_lfarrowi
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_lfarrowi[] = {
|
||||||
|
"17 17 4 1",
|
||||||
|
" s button_text c black",
|
||||||
|
". s button_highlight c white",
|
||||||
|
"X s button_shadow c grey50",
|
||||||
|
"o s button_face c grey75",
|
||||||
|
" ",
|
||||||
|
" ..............X ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooX.ooooXX ",
|
||||||
|
" .oooooXX.ooooXX ",
|
||||||
|
" .ooooXXXXXXooXX ",
|
||||||
|
" .oooXXXXXXX.oXX ",
|
||||||
|
" .ooooXXXXXX.oXX ",
|
||||||
|
" .oooooXXo...oXX ",
|
||||||
|
" .ooooooX.ooooXX ",
|
||||||
|
" .ooooooo.ooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" XXXXXXXXXXXXXXX ",
|
||||||
|
" "};
|
16
include/bitmaps/obm_mnarrow
Normal file
16
include/bitmaps/obm_mnarrow
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_mnarrow[] = {
|
||||||
|
"7 11 2 1",
|
||||||
|
" c white",
|
||||||
|
". c black",
|
||||||
|
" ",
|
||||||
|
" . ",
|
||||||
|
" .. ",
|
||||||
|
" ... ",
|
||||||
|
" .... ",
|
||||||
|
" ..... ",
|
||||||
|
" .... ",
|
||||||
|
" ... ",
|
||||||
|
" .. ",
|
||||||
|
" . ",
|
||||||
|
" "};
|
24
include/bitmaps/obm_old_close
Normal file
24
include/bitmaps/obm_old_close
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_old_close[] = {
|
||||||
|
"50 19 2 1",
|
||||||
|
" c white",
|
||||||
|
". c black",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" .................... .......... ",
|
||||||
|
" . .. . .. ",
|
||||||
|
" . .. . .. ",
|
||||||
|
" ..................... ........... ",
|
||||||
|
" .................... .......... ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
20
include/bitmaps/obm_old_dnarrow
Normal file
20
include/bitmaps/obm_old_dnarrow
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_old_dnarrow[] = {
|
||||||
|
"15 15 2 1",
|
||||||
|
" s button_highlight c white",
|
||||||
|
". s button_text c black",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ... ",
|
||||||
|
" ... ",
|
||||||
|
" ... ",
|
||||||
|
" ... ",
|
||||||
|
" ......... ",
|
||||||
|
" ....... ",
|
||||||
|
" ..... ",
|
||||||
|
" ... ",
|
||||||
|
" . ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
20
include/bitmaps/obm_old_lfarrow
Normal file
20
include/bitmaps/obm_old_lfarrow
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_old_lfarrow[] = {
|
||||||
|
"15 15 2 1",
|
||||||
|
" s button_highlight c white",
|
||||||
|
". s button_text c black",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" . ",
|
||||||
|
" .. ",
|
||||||
|
" ... ",
|
||||||
|
" ........ ",
|
||||||
|
" ......... ",
|
||||||
|
" ........ ",
|
||||||
|
" ... ",
|
||||||
|
" .. ",
|
||||||
|
" . ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
24
include/bitmaps/obm_old_reduce
Normal file
24
include/bitmaps/obm_old_reduce
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_old_reduce[] = {
|
||||||
|
"25 19 2 1",
|
||||||
|
" c white",
|
||||||
|
". c black",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ..... ",
|
||||||
|
" . . ",
|
||||||
|
" . .. ",
|
||||||
|
" . .. ",
|
||||||
|
" . .. ",
|
||||||
|
" . .. ",
|
||||||
|
" . .. ",
|
||||||
|
" . .. ",
|
||||||
|
" .... .... ",
|
||||||
|
" . ... ",
|
||||||
|
" . ... ",
|
||||||
|
" . ... ",
|
||||||
|
" . ... ",
|
||||||
|
" ... ",
|
||||||
|
" . ",
|
||||||
|
" "};
|
24
include/bitmaps/obm_old_restore
Normal file
24
include/bitmaps/obm_old_restore
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_old_restore[] = {
|
||||||
|
"25 19 2 1",
|
||||||
|
" c white",
|
||||||
|
". c black",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ..... . ",
|
||||||
|
" . .. . .. ",
|
||||||
|
" . .. . .. ",
|
||||||
|
" . .. . .. ",
|
||||||
|
" . .. . .. ",
|
||||||
|
" . ...... ..... ",
|
||||||
|
" . .. . .... ",
|
||||||
|
" . .. . .. ",
|
||||||
|
" .... ...... .. ",
|
||||||
|
" . .... .. ",
|
||||||
|
" . ... . .. ",
|
||||||
|
" . ... . .. ",
|
||||||
|
" . ... . .. ",
|
||||||
|
" ... ...... ",
|
||||||
|
" . ..... ",
|
||||||
|
" ",
|
||||||
|
" "};
|
20
include/bitmaps/obm_old_rgarrow
Normal file
20
include/bitmaps/obm_old_rgarrow
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_old_rgarrow[] = {
|
||||||
|
"15 15 2 1",
|
||||||
|
" s button_highlight c white",
|
||||||
|
". s button_text c black",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" . ",
|
||||||
|
" .. ",
|
||||||
|
" ... ",
|
||||||
|
" ........ ",
|
||||||
|
" ......... ",
|
||||||
|
" ........ ",
|
||||||
|
" ... ",
|
||||||
|
" .. ",
|
||||||
|
" . ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
20
include/bitmaps/obm_old_uparrow
Normal file
20
include/bitmaps/obm_old_uparrow
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_old_uparrow[] = {
|
||||||
|
"15 15 2 1",
|
||||||
|
" s button_highlight c white",
|
||||||
|
". s button_text c black",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" . ",
|
||||||
|
" ... ",
|
||||||
|
" ..... ",
|
||||||
|
" ....... ",
|
||||||
|
" ......... ",
|
||||||
|
" ... ",
|
||||||
|
" ... ",
|
||||||
|
" ... ",
|
||||||
|
" ... ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
24
include/bitmaps/obm_old_zoom
Normal file
24
include/bitmaps/obm_old_zoom
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_old_zoom[] = {
|
||||||
|
"25 19 2 1",
|
||||||
|
" c white",
|
||||||
|
". c black",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" . ",
|
||||||
|
" . .. ",
|
||||||
|
" . .. ",
|
||||||
|
" . .. ",
|
||||||
|
" . .. ",
|
||||||
|
" .... ..... ",
|
||||||
|
" . .... ",
|
||||||
|
" . .. ",
|
||||||
|
" . .. ",
|
||||||
|
" . .. ",
|
||||||
|
" . .. ",
|
||||||
|
" . .. ",
|
||||||
|
" . .. ",
|
||||||
|
" ...... ",
|
||||||
|
" ..... ",
|
||||||
|
" ",
|
||||||
|
" "};
|
26
include/bitmaps/obm_reduce
Normal file
26
include/bitmaps/obm_reduce
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_reduce[] = {
|
||||||
|
"19 18 5 1",
|
||||||
|
" s window_frame c black",
|
||||||
|
". s button_highlight c white",
|
||||||
|
"X s button_shadow c grey50",
|
||||||
|
"o s button_face c grey75",
|
||||||
|
"O s button_text c black",
|
||||||
|
" .................X",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .ooooOOOOOOOooooXX",
|
||||||
|
" .oooooOOOOOoooooXX",
|
||||||
|
" .ooooooOOOooooooXX",
|
||||||
|
" .oooooooOoooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" XXXXXXXXXXXXXXXXXX"};
|
25
include/bitmaps/obm_reduced
Normal file
25
include/bitmaps/obm_reduced
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_reduced[] = {
|
||||||
|
"19 18 4 1",
|
||||||
|
" s window_frame c black",
|
||||||
|
". s button_shadow c grey50",
|
||||||
|
"X s button_face c grey75",
|
||||||
|
"o s button_text c black",
|
||||||
|
" ..................",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXoooooooXXXXX",
|
||||||
|
" .XXXXXXoooooXXXXXX",
|
||||||
|
" .XXXXXXXoooXXXXXXX",
|
||||||
|
" .XXXXXXXXoXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX"};
|
26
include/bitmaps/obm_restore
Normal file
26
include/bitmaps/obm_restore
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_restore[] = {
|
||||||
|
"19 18 5 1",
|
||||||
|
" s window_frame c black",
|
||||||
|
". s button_highlight c white",
|
||||||
|
"X s button_shadow c grey50",
|
||||||
|
"o s button_face c grey75",
|
||||||
|
"O s button_text c black",
|
||||||
|
" .................X",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooOoooooooXX",
|
||||||
|
" .ooooooOOOooooooXX",
|
||||||
|
" .oooooOOOOOoooooXX",
|
||||||
|
" .ooooOOOOOOOooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .ooooOOOOOOOooooXX",
|
||||||
|
" .oooooOOOOOoooooXX",
|
||||||
|
" .ooooooOOOooooooXX",
|
||||||
|
" .oooooooOoooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" XXXXXXXXXXXXXXXXXX"};
|
25
include/bitmaps/obm_restored
Normal file
25
include/bitmaps/obm_restored
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_restored[] = {
|
||||||
|
"19 18 4 1",
|
||||||
|
" s window_frame c black",
|
||||||
|
". s button_shadow c grey50",
|
||||||
|
"X s button_face c grey75",
|
||||||
|
"o s button_text c black",
|
||||||
|
" ..................",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXoXXXXXXXX",
|
||||||
|
" .XXXXXXXoooXXXXXXX",
|
||||||
|
" .XXXXXXoooooXXXXXX",
|
||||||
|
" .XXXXXoooooooXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXoooooooXXXXX",
|
||||||
|
" .XXXXXXoooooXXXXXX",
|
||||||
|
" .XXXXXXXoooXXXXXXX",
|
||||||
|
" .XXXXXXXXoXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX"};
|
25
include/bitmaps/obm_rgarrow
Normal file
25
include/bitmaps/obm_rgarrow
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_rgarrow[] = {
|
||||||
|
"17 17 5 1",
|
||||||
|
" s window_frame c black",
|
||||||
|
". s button_highlight c white",
|
||||||
|
"X s button_shadow c grey50",
|
||||||
|
"o s button_face c grey75",
|
||||||
|
"O s button_text c black",
|
||||||
|
" ",
|
||||||
|
" ..............X ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooOoooooXX ",
|
||||||
|
" .ooooooOOooooXX ",
|
||||||
|
" .oooOOOOOOoooXX ",
|
||||||
|
" .oooOOOOOOOooXX ",
|
||||||
|
" .oooOOOOOOoooXX ",
|
||||||
|
" .ooooooOOooooXX ",
|
||||||
|
" .ooooooOoooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" XXXXXXXXXXXXXXX ",
|
||||||
|
" "};
|
24
include/bitmaps/obm_rgarrowd
Normal file
24
include/bitmaps/obm_rgarrowd
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_rgarrowd[] = {
|
||||||
|
"17 17 4 1",
|
||||||
|
" s window_frame c black",
|
||||||
|
". s button_shadow c grey50",
|
||||||
|
"X s button_face c grey75",
|
||||||
|
"o s button_text c black",
|
||||||
|
" ",
|
||||||
|
" ............... ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXoXXXXXX ",
|
||||||
|
" .XXXXXXXooXXXXX ",
|
||||||
|
" .XXXXooooooXXXX ",
|
||||||
|
" .XXXXoooooooXXX ",
|
||||||
|
" .XXXXooooooXXXX ",
|
||||||
|
" .XXXXXXXooXXXXX ",
|
||||||
|
" .XXXXXXXoXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" "};
|
24
include/bitmaps/obm_rgarrowi
Normal file
24
include/bitmaps/obm_rgarrowi
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_rgarrowi[] = {
|
||||||
|
"17 17 4 1",
|
||||||
|
" s button_text c black",
|
||||||
|
". s button_highlight c white",
|
||||||
|
"X s button_shadow c grey50",
|
||||||
|
"o s button_face c grey75",
|
||||||
|
" ",
|
||||||
|
" ..............X ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooXoooooXX ",
|
||||||
|
" .ooooooXXooooXX ",
|
||||||
|
" .oooXXXXXXoooXX ",
|
||||||
|
" .oooXXXXXXXooXX ",
|
||||||
|
" .oooXXXXXX..oXX ",
|
||||||
|
" .oooo..XX..ooXX ",
|
||||||
|
" .ooooooX..oooXX ",
|
||||||
|
" .ooooooo.ooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" XXXXXXXXXXXXXXX ",
|
||||||
|
" "};
|
18
include/bitmaps/obm_size
Normal file
18
include/bitmaps/obm_size
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_size[] = {
|
||||||
|
"13 13 2 1",
|
||||||
|
" c white",
|
||||||
|
". c black",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
"........ ",
|
||||||
|
"........ ",
|
||||||
|
" ... ",
|
||||||
|
" ... ",
|
||||||
|
" ... ",
|
||||||
|
" ... ",
|
||||||
|
" ... "};
|
25
include/bitmaps/obm_uparrow
Normal file
25
include/bitmaps/obm_uparrow
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_uparrow[] = {
|
||||||
|
"17 17 5 1",
|
||||||
|
" s window_frame c black",
|
||||||
|
". s button_highlight c white",
|
||||||
|
"X s button_shadow c grey50",
|
||||||
|
"o s button_face c grey75",
|
||||||
|
"O s button_text c black",
|
||||||
|
" ",
|
||||||
|
" ..............X ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooOoooooXX ",
|
||||||
|
" .oooooOOOooooXX ",
|
||||||
|
" .ooooOOOOOoooXX ",
|
||||||
|
" .oooOOOOOOOooXX ",
|
||||||
|
" .oooooOOOooooXX ",
|
||||||
|
" .oooooOOOooooXX ",
|
||||||
|
" .oooooOOOooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" XXXXXXXXXXXXXXX ",
|
||||||
|
" "};
|
24
include/bitmaps/obm_uparrowd
Normal file
24
include/bitmaps/obm_uparrowd
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_uparrowd[] = {
|
||||||
|
"17 17 4 1",
|
||||||
|
" s window_frame c black",
|
||||||
|
". s button_shadow c grey50",
|
||||||
|
"X s button_face c grey75",
|
||||||
|
"o s button_text c black",
|
||||||
|
" ",
|
||||||
|
" ............... ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXoXXXXXX ",
|
||||||
|
" .XXXXXXoooXXXXX ",
|
||||||
|
" .XXXXXoooooXXXX ",
|
||||||
|
" .XXXXoooooooXXX ",
|
||||||
|
" .XXXXXXoooXXXXX ",
|
||||||
|
" .XXXXXXoooXXXXX ",
|
||||||
|
" .XXXXXXoooXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" "};
|
24
include/bitmaps/obm_uparrowi
Normal file
24
include/bitmaps/obm_uparrowi
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_uparrowi[] = {
|
||||||
|
"17 17 4 1",
|
||||||
|
" s button_text c black",
|
||||||
|
". s button_highlight c white",
|
||||||
|
"X s button_shadow c grey50",
|
||||||
|
"o s button_face c grey75",
|
||||||
|
" ",
|
||||||
|
" ..............X ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .ooooooXoooooXX ",
|
||||||
|
" .oooooXXXooooXX ",
|
||||||
|
" .ooooXXXXXoooXX ",
|
||||||
|
" .oooXXXXXXXooXX ",
|
||||||
|
" .ooo..XXXo..oXX ",
|
||||||
|
" .oooooXXX.oooXX ",
|
||||||
|
" .oooooXXX.oooXX ",
|
||||||
|
" .oooooo...oooXX ",
|
||||||
|
" .ooooooooooooXX ",
|
||||||
|
" .XXXXXXXXXXXXXX ",
|
||||||
|
" XXXXXXXXXXXXXXX ",
|
||||||
|
" "};
|
26
include/bitmaps/obm_zoom
Normal file
26
include/bitmaps/obm_zoom
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_zoom[] = {
|
||||||
|
"19 18 5 1",
|
||||||
|
" s window_frame c black",
|
||||||
|
". s button_highlight c white",
|
||||||
|
"X s button_shadow c grey50",
|
||||||
|
"o s button_face c grey75",
|
||||||
|
"O s button_text c black",
|
||||||
|
" .................X",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooOoooooooXX",
|
||||||
|
" .ooooooOOOooooooXX",
|
||||||
|
" .oooooOOOOOoooooXX",
|
||||||
|
" .ooooOOOOOOOooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .oooooooooooooooXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" XXXXXXXXXXXXXXXXXX"};
|
25
include/bitmaps/obm_zoomd
Normal file
25
include/bitmaps/obm_zoomd
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * obm_zoomd[] = {
|
||||||
|
"19 18 4 1",
|
||||||
|
" s window_frame c black",
|
||||||
|
". s button_shadow c grey50",
|
||||||
|
"X s button_face c grey75",
|
||||||
|
"o s button_text c black",
|
||||||
|
" ..................",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXoXXXXXXXX",
|
||||||
|
" .XXXXXXXoooXXXXXXX",
|
||||||
|
" .XXXXXXoooooXXXXXX",
|
||||||
|
" .XXXXXoooooooXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX",
|
||||||
|
" .XXXXXXXXXXXXXXXXX"};
|
|
@ -11,6 +11,8 @@
|
||||||
|
|
||||||
#define CLASS_MAGIC 0x4b4e /* 'NK' */
|
#define CLASS_MAGIC 0x4b4e /* 'NK' */
|
||||||
|
|
||||||
|
#pragma pack(1)
|
||||||
|
|
||||||
/* !! Don't change this structure (see GetClassLong()) */
|
/* !! Don't change this structure (see GetClassLong()) */
|
||||||
typedef struct tagCLASS
|
typedef struct tagCLASS
|
||||||
{
|
{
|
||||||
|
@ -23,8 +25,10 @@ typedef struct tagCLASS
|
||||||
WORD wExtra[1]; /* Class extra bytes */
|
WORD wExtra[1]; /* Class extra bytes */
|
||||||
} CLASS;
|
} CLASS;
|
||||||
|
|
||||||
|
#pragma pack(4)
|
||||||
|
|
||||||
HCLASS CLASS_FindClassByName( char * name, CLASS **ptr );
|
|
||||||
|
HCLASS CLASS_FindClassByName( char * name, WORD hinstance, CLASS **ptr );
|
||||||
CLASS * CLASS_FindClassPtr( HCLASS hclass );
|
CLASS * CLASS_FindClassPtr( HCLASS hclass );
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
|
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
|
|
||||||
|
#pragma pack(1)
|
||||||
|
|
||||||
/* Dialog info structure.
|
/* Dialog info structure.
|
||||||
* This structure is stored into the window extra bytes (cbWndExtra).
|
* This structure is stored into the window extra bytes (cbWndExtra).
|
||||||
|
@ -64,5 +65,6 @@ typedef struct
|
||||||
LPSTR faceName;
|
LPSTR faceName;
|
||||||
} DLGTEMPLATE;
|
} DLGTEMPLATE;
|
||||||
|
|
||||||
|
#pragma pack(4)
|
||||||
|
|
||||||
#endif /* DIALOG_H */
|
#endif /* DIALOG_H */
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#define METAFILE_MAGIC 0x4f50
|
#define METAFILE_MAGIC 0x4f50
|
||||||
#define METAFILE_DC_MAGIC 0x4f51
|
#define METAFILE_DC_MAGIC 0x4f51
|
||||||
|
|
||||||
|
#pragma pack(1)
|
||||||
|
|
||||||
typedef struct tagREGION
|
typedef struct tagREGION
|
||||||
{
|
{
|
||||||
|
@ -82,6 +83,8 @@ typedef struct tagRGNOBJ
|
||||||
REGION region;
|
REGION region;
|
||||||
} RGNOBJ;
|
} RGNOBJ;
|
||||||
|
|
||||||
|
#pragma pack(4)
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
WORD version; /* 0: driver version */
|
WORD version; /* 0: driver version */
|
||||||
|
|
|
@ -142,35 +142,10 @@ extern void sync_profiles(void);
|
||||||
|
|
||||||
extern void SpyInit(void);
|
extern void SpyInit(void);
|
||||||
|
|
||||||
/* controls/button.c */
|
|
||||||
|
|
||||||
extern LONG ButtonWndProc(HWND hWnd, WORD uMsg, WORD wParam, LONG lParam);
|
|
||||||
|
|
||||||
/* controls/combo.c */
|
|
||||||
|
|
||||||
extern LONG ComboBoxWndProc(HWND hwnd, WORD message, WORD wParam, LONG lParam);
|
|
||||||
|
|
||||||
/* controls/desktop.c */
|
/* controls/desktop.c */
|
||||||
|
|
||||||
extern LONG DesktopWndProc (HWND hwnd, WORD message, WORD wParam, LONG lParam);
|
|
||||||
extern BOOL DESKTOP_SetPattern(char *pattern);
|
extern BOOL DESKTOP_SetPattern(char *pattern);
|
||||||
|
|
||||||
/* controls/listbox.c */
|
|
||||||
|
|
||||||
extern LONG ListBoxWndProc(HWND hwnd, WORD message, WORD wParam, LONG lParam);
|
|
||||||
|
|
||||||
/* controls/menu.c */
|
|
||||||
|
|
||||||
extern LONG PopupMenuWndProc(HWND hwnd, WORD message, WORD wParam, LONG lParam);
|
|
||||||
|
|
||||||
/* controls/scrollbar.c */
|
|
||||||
|
|
||||||
extern LONG ScrollBarWndProc(HWND hWnd, WORD message, WORD wParam, LONG lParam);
|
|
||||||
|
|
||||||
/* controls/static.c */
|
|
||||||
|
|
||||||
extern LONG StaticWndProc(HWND hwnd, WORD message, WORD wParam, LONG lParam);
|
|
||||||
|
|
||||||
/* controls/widget.c */
|
/* controls/widget.c */
|
||||||
|
|
||||||
extern BOOL WIDGETS_Init(void);
|
extern BOOL WIDGETS_Init(void);
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
#define __WINE_REGISTERS_H
|
#define __WINE_REGISTERS_H
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include "autoconf.h"
|
|
||||||
|
|
||||||
#ifndef PROCEMU
|
#ifndef PROCEMU
|
||||||
|
|
||||||
|
@ -33,7 +32,11 @@
|
||||||
#define DI context->sc_edi
|
#define DI context->sc_edi
|
||||||
#define SI context->sc_esi
|
#define SI context->sc_esi
|
||||||
#define SP context->sc_esp
|
#define SP context->sc_esp
|
||||||
|
#ifndef __FreeBSD__
|
||||||
|
#define EFL context->sc_eflags
|
||||||
|
#else
|
||||||
#define EFL context->sc_efl
|
#define EFL context->sc_efl
|
||||||
|
#endif
|
||||||
#define EIP context->sc_eip
|
#define EIP context->sc_eip
|
||||||
|
|
||||||
#define SetCflag (EFL |= 0x00000001)
|
#define SetCflag (EFL |= 0x00000001)
|
||||||
|
|
|
@ -20,4 +20,10 @@ typedef struct resource_s {
|
||||||
struct w_files *wpnt;
|
struct w_files *wpnt;
|
||||||
} RESOURCE;
|
} RESOURCE;
|
||||||
|
|
||||||
|
struct ResourceTable{
|
||||||
|
int id,type;
|
||||||
|
char *name;
|
||||||
|
unsigned char* value;
|
||||||
|
unsigned size;
|
||||||
|
};
|
||||||
#endif /* __WINE_RESOURCE_H */
|
#endif /* __WINE_RESOURCE_H */
|
||||||
|
|
|
@ -33,12 +33,12 @@
|
||||||
extern unsigned short SelectorMap[MAX_SELECTORS];
|
extern unsigned short SelectorMap[MAX_SELECTORS];
|
||||||
|
|
||||||
#ifdef HAVE_IPC
|
#ifdef HAVE_IPC
|
||||||
#define SAFEMAKEPTR(s, o) (((int) (s) << 16) | ((o) & 0xffff))
|
#define SAFEMAKEPTR(s, o) ((void *)(((int) (s) << 16) | ((o) & 0xffff)))
|
||||||
#define FIXPTR(p) (p)
|
#define FIXPTR(p) (p)
|
||||||
#else
|
#else
|
||||||
#define SAFEMAKEPTR(s, o) \
|
#define SAFEMAKEPTR(s, o) \
|
||||||
(((int) SelectorMap[SelectorMap[(s) >> 3] & SELECTOR_INDEXMASK] << 19) \
|
((void *)(((int)SelectorMap[SelectorMap[(s) >> 3] & SELECTOR_INDEXMASK] \
|
||||||
| 0x70000 | ((o) & 0xffff))
|
<< 19) | 0x70000 | ((o) & 0xffff)))
|
||||||
#define FIXPTR(p) SAFEMAKEPTR((unsigned long) (p) >> 16, (p))
|
#define FIXPTR(p) SAFEMAKEPTR((unsigned long) (p) >> 16, (p))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -77,6 +77,9 @@ extern int IPCCopySelector(int i_old, unsigned long new, int swap_type);
|
||||||
|
|
||||||
#define FIRST_SELECTOR 8
|
#define FIRST_SELECTOR 8
|
||||||
|
|
||||||
|
#define IS_16_BIT_ADDRESS(addr) \
|
||||||
|
((unsigned int)(addr) >= (((FIRST_SELECTOR << 3) | 0x0007) << 16))
|
||||||
|
|
||||||
extern SEGDESC Segments[];
|
extern SEGDESC Segments[];
|
||||||
|
|
||||||
#endif /* SEGMEM_H */
|
#endif /* SEGMEM_H */
|
||||||
|
|
|
@ -122,6 +122,8 @@ typedef PAINTSTRUCT *LPPAINTSTRUCT;
|
||||||
#define WINE_PACKED __attribute__ ((packed))
|
#define WINE_PACKED __attribute__ ((packed))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#pragma pack(1)
|
||||||
|
|
||||||
/* Window classes */
|
/* Window classes */
|
||||||
|
|
||||||
typedef LONG (*WNDPROC)(HWND, UINT, WPARAM, LPARAM);
|
typedef LONG (*WNDPROC)(HWND, UINT, WPARAM, LPARAM);
|
||||||
|
@ -2341,6 +2343,8 @@ typedef METAFILEPICT *LPMETAFILEPICT;
|
||||||
#define META_CREATEBITMAP 0x06FE
|
#define META_CREATEBITMAP 0x06FE
|
||||||
#define META_CREATEREGION 0x06FF
|
#define META_CREATEREGION 0x06FF
|
||||||
|
|
||||||
|
#pragma pack(4)
|
||||||
|
|
||||||
|
|
||||||
#define F(ret,name) ret name(void);
|
#define F(ret,name) ret name(void);
|
||||||
#define Fa(ret,name,t1,a1) ret name(t1 a1);
|
#define Fa(ret,name,t1,a1) ret name(t1 a1);
|
||||||
|
|
|
@ -25,7 +25,7 @@ struct sigcontext_struct {
|
||||||
unsigned long sc_err;
|
unsigned long sc_err;
|
||||||
unsigned long sc_eip;
|
unsigned long sc_eip;
|
||||||
unsigned short sc_cs, __csh;
|
unsigned short sc_cs, __csh;
|
||||||
unsigned long sc_efl;
|
unsigned long sc_eflags;
|
||||||
unsigned long esp_at_signal;
|
unsigned long esp_at_signal;
|
||||||
unsigned short sc_ss, __ssh;
|
unsigned short sc_ss, __ssh;
|
||||||
unsigned long i387;
|
unsigned long i387;
|
||||||
|
|
|
@ -81,7 +81,7 @@ print_ldt()
|
||||||
{
|
{
|
||||||
printf("Entry %2d: Base %08lx, Limit %05lx, DPL %d, Type %d\n",
|
printf("Entry %2d: Base %08lx, Limit %05lx, DPL %d, Type %d\n",
|
||||||
i, base_addr, limit, dpl, type);
|
i, base_addr, limit, dpl, type);
|
||||||
printf(" SYSTEM: %08x %08x\n", *lp, *(lp-1));
|
printf(" SYSTEM: %08lx %08lx\n", *lp, *(lp-1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,6 @@ static char Copyright[] = "Copyright Robert J. Amstadt, 1993";
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include "autoconf.h"
|
|
||||||
#include "stddebug.h"
|
#include "stddebug.h"
|
||||||
/* #define DEBUG_LDT */
|
/* #define DEBUG_LDT */
|
||||||
/* #undef DEBUG_LDT */
|
/* #undef DEBUG_LDT */
|
||||||
|
|
|
@ -96,7 +96,7 @@ void InitializeLoadedDLLs(struct w_files *wpnt)
|
||||||
static flagReadyToRun = 0;
|
static flagReadyToRun = 0;
|
||||||
struct w_files *final_wpnt;
|
struct w_files *final_wpnt;
|
||||||
|
|
||||||
dprintf_module(stddeb,"InitializeLoadedDLLs(%08lX)\n", wpnt);
|
dprintf_module(stddeb,"InitializeLoadedDLLs(%p)\n", wpnt);
|
||||||
|
|
||||||
if (wpnt == NULL)
|
if (wpnt == NULL)
|
||||||
{
|
{
|
||||||
|
@ -221,28 +221,39 @@ HINSTANCE LoadImage(char *module, int filetype, int change_dir)
|
||||||
read(wpnt->fd, &header, sizeof(header));
|
read(wpnt->fd, &header, sizeof(header));
|
||||||
|
|
||||||
handle = 0;
|
handle = 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Stick this file into the list of loaded files so we don't try to reload
|
||||||
|
* it again if another module references this module. Do this before
|
||||||
|
* calling loadNEImage because we might get back here before loadNEImage
|
||||||
|
* returns.
|
||||||
|
*/
|
||||||
|
if(wine_files == NULL)
|
||||||
|
wine_files = wpnt;
|
||||||
|
else {
|
||||||
|
wpnt1 = wine_files;
|
||||||
|
while(wpnt1->next)
|
||||||
|
wpnt1 = wpnt1->next;
|
||||||
|
wpnt1->next = wpnt;
|
||||||
|
}
|
||||||
|
wpnt->next = NULL;
|
||||||
|
|
||||||
if (header[0] == 'N' && header[1] == 'E')
|
if (header[0] == 'N' && header[1] == 'E')
|
||||||
handle = LoadNEImage(wpnt);
|
handle = LoadNEImage(wpnt);
|
||||||
if (header[0] == 'P' && header[1] == 'E')
|
if (header[0] == 'P' && header[1] == 'E')
|
||||||
handle = LoadPEImage(wpnt);
|
handle = LoadPEImage(wpnt);
|
||||||
wpnt->hinstance = handle;
|
wpnt->hinstance = handle;
|
||||||
|
|
||||||
if (handle > 32) {
|
if (handle > 32) {
|
||||||
/* ok, loaded, add to the end of the list */
|
|
||||||
if(wine_files == NULL)
|
|
||||||
wine_files = wpnt;
|
|
||||||
else {
|
|
||||||
wpnt1 = wine_files;
|
|
||||||
while(wpnt1->next)
|
|
||||||
wpnt1 = wpnt1->next;
|
|
||||||
wpnt1->next = wpnt;
|
|
||||||
}
|
|
||||||
wpnt->next = NULL;
|
|
||||||
|
|
||||||
return handle;
|
return handle;
|
||||||
} else {
|
} else {
|
||||||
fprintf(stderr, "wine: (%s) unknown fileformat !\n", wpnt->filename);
|
fprintf(stderr, "wine: (%s) unknown fileformat !\n", wpnt->filename);
|
||||||
|
|
||||||
|
/* Remove this module from the list of loaded modules */
|
||||||
|
if (wine_files == wpnt)
|
||||||
|
wine_files = NULL;
|
||||||
|
else
|
||||||
|
wpnt1->next = NULL;
|
||||||
close(wpnt->fd);
|
close(wpnt->fd);
|
||||||
free(wpnt->filename);
|
free(wpnt->filename);
|
||||||
free(wpnt->name);
|
free(wpnt->name);
|
||||||
|
|
|
@ -33,6 +33,7 @@ extern HANDLE CreateNewTask(HINSTANCE hInst);
|
||||||
extern void InitializeLoadedDLLs(struct w_files *wpnt);
|
extern void InitializeLoadedDLLs(struct w_files *wpnt);
|
||||||
extern int CallToInit16(unsigned long csip, unsigned long sssp,
|
extern int CallToInit16(unsigned long csip, unsigned long sssp,
|
||||||
unsigned short ds);
|
unsigned short ds);
|
||||||
|
extern int CallTo16cx(unsigned long csip, unsigned long dscx);
|
||||||
extern void CallTo32();
|
extern void CallTo32();
|
||||||
extern char WindowsPath[256];
|
extern char WindowsPath[256];
|
||||||
extern unsigned short WIN_StackSize;
|
extern unsigned short WIN_StackSize;
|
||||||
|
@ -472,7 +473,7 @@ int StartNEprogram(struct w_files *wpnt)
|
||||||
|
|
||||||
void InitNEDLL(struct w_files *wpnt)
|
void InitNEDLL(struct w_files *wpnt)
|
||||||
{
|
{
|
||||||
int cs_reg, ds_reg, ip_reg, rv;
|
int cs_reg, ds_reg, ip_reg, cx_reg, rv;
|
||||||
/*
|
/*
|
||||||
* Is this a library?
|
* Is this a library?
|
||||||
*/
|
*/
|
||||||
|
@ -490,11 +491,13 @@ void InitNEDLL(struct w_files *wpnt)
|
||||||
cs_reg = wpnt->ne->selector_table[wpnt->ne->ne_header->cs-1].selector;
|
cs_reg = wpnt->ne->selector_table[wpnt->ne->ne_header->cs-1].selector;
|
||||||
ip_reg = wpnt->ne->ne_header->ip;
|
ip_reg = wpnt->ne->ne_header->ip;
|
||||||
|
|
||||||
|
cx_reg = wpnt->ne->ne_header->local_heap_length;
|
||||||
|
|
||||||
if (cs_reg) {
|
if (cs_reg) {
|
||||||
dprintf_dll(stddeb,"Initializing %s, cs:ip %04x:%04x, ds %04x\n",
|
dprintf_dll(stddeb,"Initializing %s, cs:ip %04x:%04x, ds %04x, cx %04x\n",
|
||||||
wpnt->name, cs_reg, ip_reg, ds_reg);
|
wpnt->name, cs_reg, ip_reg, ds_reg, cx_reg);
|
||||||
|
|
||||||
rv = CallTo16(cs_reg << 16 | ip_reg, ds_reg);
|
rv = CallTo16cx(cs_reg << 16 | ip_reg, ds_reg | (cx_reg<<16));
|
||||||
dprintf_exec(stddeb,"rv = %x\n", rv);
|
dprintf_exec(stddeb,"rv = %x\n", rv);
|
||||||
} else
|
} else
|
||||||
dprintf_exec(stddeb,"%s skipped\n", wpnt->name);
|
dprintf_exec(stddeb,"%s skipped\n", wpnt->name);
|
||||||
|
|
|
@ -24,6 +24,7 @@ static char Copyright[] = "Copyright Robert J. Amstadt, 1993";
|
||||||
/* #define DEBUG_ACCEL */
|
/* #define DEBUG_ACCEL */
|
||||||
/* #undef DEBUG_ACCEL */
|
/* #undef DEBUG_ACCEL */
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
#include "../rc/sysresbm.h"
|
||||||
|
|
||||||
#define MIN(a,b) ((a) < (b) ? (a) : (b))
|
#define MIN(a,b) ((a) < (b) ? (a) : (b))
|
||||||
|
|
||||||
|
@ -32,7 +33,7 @@ extern HINSTANCE hSysRes;
|
||||||
|
|
||||||
extern int NE_FindResource(HANDLE, LPSTR, LPSTR, RESOURCE *);
|
extern int NE_FindResource(HANDLE, LPSTR, LPSTR, RESOURCE *);
|
||||||
extern int PE_FindResource(HANDLE, LPSTR, LPSTR, RESOURCE *);
|
extern int PE_FindResource(HANDLE, LPSTR, LPSTR, RESOURCE *);
|
||||||
extern HBITMAP BITMAP_LoadOEMBitmap( WORD id ); /* objects/bitmap.c */
|
extern HBITMAP OBM_LoadOEMBitmap( WORD id ); /* objects/oembitmap.c */
|
||||||
|
|
||||||
#define PrintId(name) \
|
#define PrintId(name) \
|
||||||
if (HIWORD((DWORD)name)) \
|
if (HIWORD((DWORD)name)) \
|
||||||
|
@ -731,10 +732,23 @@ LoadBitmap(HANDLE instance, LPSTR bmp_name)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!instance) {
|
if (!instance) {
|
||||||
hbitmap = BITMAP_LoadOEMBitmap(((int) bmp_name) & 0xffff);
|
struct ResourceTable *it;
|
||||||
|
hbitmap = OBM_LoadOEMBitmap(((int) bmp_name) & 0xffff);
|
||||||
if (hbitmap)
|
if (hbitmap)
|
||||||
return hbitmap;
|
return hbitmap;
|
||||||
}
|
/* Load from sysresbm */
|
||||||
|
dprintf_resource(stddeb,"Searching for %d\n",bmp_name);
|
||||||
|
for(it=sysresbmTable;it;it++){
|
||||||
|
if(it->type==NE_RSCTYPE_BITMAP)
|
||||||
|
if((((int)bmp_name & 0xFFFF0000) == 0))
|
||||||
|
{if(it->id==(int)bmp_name)break;}
|
||||||
|
else if(!strcmp(it->name,bmp_name))break;
|
||||||
|
}
|
||||||
|
if(!it)return 0;
|
||||||
|
dprintf_resource(stddeb,"Found %s\n",it->name);
|
||||||
|
lp=it->value;
|
||||||
|
rsc_mem=(HANDLE)NULL;
|
||||||
|
} else { /* Load from file - indent this code properly later */
|
||||||
|
|
||||||
rsc_mem = RSC_LoadResource(instance, bmp_name, (LPSTR) NE_RSCTYPE_BITMAP,
|
rsc_mem = RSC_LoadResource(instance, bmp_name, (LPSTR) NE_RSCTYPE_BITMAP,
|
||||||
&image_size);
|
&image_size);
|
||||||
|
@ -745,12 +759,13 @@ LoadBitmap(HANDLE instance, LPSTR bmp_name)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
lp = (long *) GlobalLinearLock(rsc_mem);
|
lp = (long *) GlobalLinearLock(rsc_mem);
|
||||||
if (!(hdc = GetDC(0))) lp = NULL;
|
|
||||||
if (lp == NULL)
|
if (lp == NULL)
|
||||||
{
|
{
|
||||||
GlobalFree(rsc_mem);
|
GlobalFree(rsc_mem);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
} /* Load from file */
|
||||||
|
if (!(hdc = GetDC(0))) lp = NULL;
|
||||||
size = CONV_LONG (*lp);
|
size = CONV_LONG (*lp);
|
||||||
if (size == sizeof(BITMAPCOREHEADER)){
|
if (size == sizeof(BITMAPCOREHEADER)){
|
||||||
CONV_BITMAPCOREHEADER (lp);
|
CONV_BITMAPCOREHEADER (lp);
|
||||||
|
|
|
@ -770,7 +770,7 @@ CreateEnvironment(void)
|
||||||
/*
|
/*
|
||||||
* Display environment
|
* Display environment
|
||||||
*/
|
*/
|
||||||
dprintf_selectors(stddeb, "Environment at %08.8x\n", s->base_addr);
|
dprintf_selectors(stddeb, "Environment at %p\n", s->base_addr);
|
||||||
for (p = s->base_addr; *p; p += strlen(p) + 1)
|
for (p = s->base_addr; *p; p += strlen(p) + 1)
|
||||||
dprintf_selectors(stddeb, " %s\n", p);
|
dprintf_selectors(stddeb, " %s\n", p);
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ extern int do_int2a(struct sigcontext_struct *);
|
||||||
extern int do_int2f(struct sigcontext_struct *);
|
extern int do_int2f(struct sigcontext_struct *);
|
||||||
extern int do_int31(struct sigcontext_struct *);
|
extern int do_int31(struct sigcontext_struct *);
|
||||||
|
|
||||||
#if !defined(BSD4_4) || defined(linux)
|
#if !defined(BSD4_4) || defined(linux) || defined(__FreeBSD__)
|
||||||
char * cstack[4096];
|
char * cstack[4096];
|
||||||
#endif
|
#endif
|
||||||
struct sigaction segv_act;
|
struct sigaction segv_act;
|
||||||
|
@ -200,7 +200,7 @@ static void win_fault(int signal, int code, struct sigcontext *scp)
|
||||||
XUngrabServer(display);
|
XUngrabServer(display);
|
||||||
XFlush(display);
|
XFlush(display);
|
||||||
fprintf(stderr,"In win_fault %x:%lx\n", scp->sc_cs, scp->sc_eip);
|
fprintf(stderr,"In win_fault %x:%lx\n", scp->sc_cs, scp->sc_eip);
|
||||||
#if defined(linux) || defined(__NetBSD__)
|
#if defined(linux) || defined(__NetBSD__) || defined(__FreeBSD__)
|
||||||
wine_debug(signal, scp); /* Enter our debugger */
|
wine_debug(signal, scp); /* Enter our debugger */
|
||||||
#else
|
#else
|
||||||
fprintf(stderr,"Stack: %x:%x\n", scp->sc_ss, scp->sc_esp);
|
fprintf(stderr,"Stack: %x:%x\n", scp->sc_ss, scp->sc_esp);
|
||||||
|
@ -233,7 +233,7 @@ int init_wine_signals(void)
|
||||||
#endif
|
#endif
|
||||||
#if defined(__NetBSD__) || defined(__FreeBSD__)
|
#if defined(__NetBSD__) || defined(__FreeBSD__)
|
||||||
sigset_t sig_mask;
|
sigset_t sig_mask;
|
||||||
#ifdef BSD4_4
|
#if defined(BSD4_4) && !defined (__FreeBSD__)
|
||||||
struct sigaltstack ss;
|
struct sigaltstack ss;
|
||||||
|
|
||||||
if ((ss.ss_base = malloc(MINSIGSTKSZ)) == NULL) {
|
if ((ss.ss_base = malloc(MINSIGSTKSZ)) == NULL) {
|
||||||
|
@ -308,7 +308,11 @@ test_memory( char *p, int write )
|
||||||
*p = c;
|
*p = c;
|
||||||
ret = TRUE;
|
ret = TRUE;
|
||||||
}
|
}
|
||||||
|
#ifdef linux
|
||||||
wine_sigaction(SIGSEGV, &old_act, NULL);
|
wine_sigaction(SIGSEGV, &old_act, NULL);
|
||||||
|
#else
|
||||||
|
sigaction(SIGSEGV, &old_act, NULL);
|
||||||
|
#endif
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -137,7 +137,7 @@ HANDLE CreateNewTask(HINSTANCE hInst, HTASK hTaskParent)
|
||||||
}
|
}
|
||||||
hTask = GlobalAlloc(GMEM_MOVEABLE, sizeof(WINETASKENTRY));
|
hTask = GlobalAlloc(GMEM_MOVEABLE, sizeof(WINETASKENTRY));
|
||||||
lpNewTask = (LPWINETASKENTRY) GlobalLock(hTask);
|
lpNewTask = (LPWINETASKENTRY) GlobalLock(hTask);
|
||||||
dprintf_task(stddeb,"CreateNewTask entry allocated %08X\n", lpNewTask);
|
dprintf_task(stddeb,"CreateNewTask entry allocated %p\n", lpNewTask);
|
||||||
if (lpNewTask == NULL) return 0;
|
if (lpNewTask == NULL) return 0;
|
||||||
if (lpTaskList == NULL) {
|
if (lpTaskList == NULL) {
|
||||||
lpTaskList = lpNewTask;
|
lpTaskList = lpNewTask;
|
||||||
|
|
|
@ -479,6 +479,21 @@ WIN16_LocalInit(unsigned int segment, unsigned int start, unsigned int end)
|
||||||
segment = Stack16Frame[6];
|
segment = Stack16Frame[6];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dprintf_heap(stddeb, "WIN16_LocalInit segment=%04x start=%04x end=%04x\n", segment, start, end);
|
||||||
|
|
||||||
|
/* start=0 doesn't mean the first byte of the segment if the segment
|
||||||
|
is an auto data segment. Instead it should start after the actual
|
||||||
|
data (and the stack if there is one). As we don't know the length
|
||||||
|
of the data and stack right now, we simply put the local heap at the
|
||||||
|
end of the segment */
|
||||||
|
if ((start==0)&&(Segments[segment>>3].owner==segment))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
start = Segments[segment>>3].length-end-2;
|
||||||
|
end = Segments[segment>>3].length-1;
|
||||||
|
dprintf_heap(stddeb, "Changed to start=%04x end=%04x\n",start,end);
|
||||||
|
}
|
||||||
|
|
||||||
if (lh == NULL)
|
if (lh == NULL)
|
||||||
{
|
{
|
||||||
HEAP_LocalInit(owner,
|
HEAP_LocalInit(owner,
|
||||||
|
|
|
@ -321,7 +321,8 @@ ATOM DeleteAtom( ATOM atom )
|
||||||
*/
|
*/
|
||||||
ATOM FindAtom( LPCSTR str )
|
ATOM FindAtom( LPCSTR str )
|
||||||
{
|
{
|
||||||
if (!*LOCALATOMTABLE()) InitAtomTable( DEFAULT_ATOMTABLE_SIZE );
|
if (!*LOCALATOMTABLE()) return 0;
|
||||||
|
/* if (!*LOCALATOMTABLE()) InitAtomTable( DEFAULT_ATOMTABLE_SIZE );*/
|
||||||
return ATOM_FindAtom( *LOCALATOMTABLE(), str );
|
return ATOM_FindAtom( *LOCALATOMTABLE(), str );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -312,7 +312,7 @@ BOOL IsClipboardFormatAvailable(WORD wFormat)
|
||||||
{
|
{
|
||||||
LPCLIPFORMAT lpFormat = ClipFormats;
|
LPCLIPFORMAT lpFormat = ClipFormats;
|
||||||
dprintf_clipboard(stddeb,"IsClipboardFormatAvailable(%04X) !\n", wFormat);
|
dprintf_clipboard(stddeb,"IsClipboardFormatAvailable(%04X) !\n", wFormat);
|
||||||
if(wFormat == CF_TEXT) /* obtain selection as text if possible */
|
if(wFormat == CF_TEXT && !wineOwnsSelection) /* obtain selection as text if possible */
|
||||||
return GetClipboardData(CF_TEXT)!=0;
|
return GetClipboardData(CF_TEXT)!=0;
|
||||||
while(TRUE) {
|
while(TRUE) {
|
||||||
if (lpFormat == NULL) return FALSE;
|
if (lpFormat == NULL) return FALSE;
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include <sys/vfs.h>
|
#include <sys/vfs.h>
|
||||||
#endif
|
#endif
|
||||||
#if defined(__NetBSD__) || defined(__FreeBSD__)
|
#if defined(__NetBSD__) || defined(__FreeBSD__)
|
||||||
#include <sys/types.h>
|
#include <sys/param.h>
|
||||||
#include <sys/mount.h>
|
#include <sys/mount.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ void ChopOffSlash(char *path)
|
||||||
void DOS_InitFS(void)
|
void DOS_InitFS(void)
|
||||||
{
|
{
|
||||||
int x;
|
int x;
|
||||||
char drive[2], temp[256], *ptr;
|
char drive[2], temp[256];
|
||||||
|
|
||||||
GetPrivateProfileString("wine", "windows", "c:\\windows",
|
GetPrivateProfileString("wine", "windows", "c:\\windows",
|
||||||
WindowsDirectory, sizeof(WindowsDirectory), WINE_INI);
|
WindowsDirectory, sizeof(WindowsDirectory), WINE_INI);
|
||||||
|
@ -250,12 +250,14 @@ int DOS_ValidDirectory(char *name)
|
||||||
{
|
{
|
||||||
char *dirname;
|
char *dirname;
|
||||||
struct stat s;
|
struct stat s;
|
||||||
|
dprintf_dosfs(stddeb, "DOS_ValidDirectory: '%s'\n", name);
|
||||||
if ((dirname = GetUnixFileName(name)) == NULL)
|
if ((dirname = GetUnixFileName(name)) == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
if (stat(dirname,&s))
|
if (stat(dirname,&s))
|
||||||
return 0;
|
return 0;
|
||||||
if (!S_ISDIR(s.st_mode))
|
if (!S_ISDIR(s.st_mode))
|
||||||
return 0;
|
return 0;
|
||||||
|
dprintf_dosfs(stddeb, "==> OK\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -543,8 +545,8 @@ int DOS_GetFreeSpace(int drive, long *size, long *available)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
*size = info.f_bsize * info.f_blocks / 1024;
|
*size = info.f_bsize * info.f_blocks;
|
||||||
*available = info.f_bavail * info.f_bsize / 1024;
|
*available = info.f_bavail * info.f_bsize;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -303,10 +303,10 @@ LONG SystemMessageBoxProc(HWND hWnd, WORD message, WORD wParam, LONG lParam)
|
||||||
DrawIcon(hDC, lpmb->rectIcon.left,
|
DrawIcon(hDC, lpmb->rectIcon.left,
|
||||||
lpmb->rectIcon.top, lpmb->hIcon);
|
lpmb->rectIcon.top, lpmb->hIcon);
|
||||||
DrawText(hDC, lpmb->Str, -1, &rect,
|
DrawText(hDC, lpmb->Str, -1, &rect,
|
||||||
DT_CALCRECT | DT_CENTER | DT_WORDBREAK);
|
DT_CALCRECT | DT_LEFT | DT_VCENTER | DT_WORDBREAK);
|
||||||
rect.top = lpmb->rectStr.bottom / 2 - rect.bottom / 2;
|
rect.top = lpmb->rectStr.bottom / 2 - rect.bottom / 2;
|
||||||
rect.bottom = lpmb->rectStr.bottom / 2 + rect.bottom / 2;
|
rect.bottom = lpmb->rectStr.bottom / 2 + rect.bottom / 2;
|
||||||
DrawText(hDC, lpmb->Str, -1, &rect, DT_CENTER | DT_WORDBREAK);
|
DrawText(hDC, lpmb->Str, -1, &rect, DT_LEFT | DT_VCENTER | DT_WORDBREAK);
|
||||||
SetTextColor(hDC, OldTextColor);
|
SetTextColor(hDC, OldTextColor);
|
||||||
EndPaint(hWnd, &ps);
|
EndPaint(hWnd, &ps);
|
||||||
dprintf_msgbox(stddeb, "MessageBox End of WM_PAINT !\n");
|
dprintf_msgbox(stddeb, "MessageBox End of WM_PAINT !\n");
|
||||||
|
|
|
@ -16,6 +16,7 @@ SRCS = \
|
||||||
gdiobj.c \
|
gdiobj.c \
|
||||||
linedda.c \
|
linedda.c \
|
||||||
metafile.c \
|
metafile.c \
|
||||||
|
oembitmap.c \
|
||||||
palette.c \
|
palette.c \
|
||||||
pen.c \
|
pen.c \
|
||||||
region.c \
|
region.c \
|
||||||
|
|
|
@ -380,9 +380,9 @@ static __inline__ int muldiv64( int m1, int m2, int d )
|
||||||
__asm__(
|
__asm__(
|
||||||
"imull %%edx\n\t"
|
"imull %%edx\n\t"
|
||||||
"idivl %3\n\t"
|
"idivl %3\n\t"
|
||||||
: "=a" (result) /* out */
|
: "=&a" (result) /* out */
|
||||||
: "a" (m1), "d" (m2), "g" (d) /* in */
|
: "0" (m1), "d" (m2), "g" (d) /* in */
|
||||||
: "ax", "dx" /* mod */
|
: "%edx" /* mod */
|
||||||
);
|
);
|
||||||
return result;
|
return result;
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -19,11 +19,6 @@ static char Copyright[] = "Copyright Alexandre Julliard, 1993";
|
||||||
/* #define DEBUG_BITMAP /* */
|
/* #define DEBUG_BITMAP /* */
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
|
||||||
/* Include OEM bitmaps */
|
|
||||||
#include "bitmaps/check_boxes"
|
|
||||||
#include "bitmaps/check_mark"
|
|
||||||
#include "bitmaps/menu_arrow"
|
|
||||||
|
|
||||||
/* GCs used for B&W and color bitmap operations */
|
/* GCs used for B&W and color bitmap operations */
|
||||||
GC BITMAP_monoGC = 0, BITMAP_colorGC = 0;
|
GC BITMAP_monoGC = 0, BITMAP_colorGC = 0;
|
||||||
|
|
||||||
|
@ -81,65 +76,6 @@ static XImage *BITMAP_BmpToImage( BITMAP * bmp, void * bmpData )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************
|
|
||||||
* BITMAP_LoadOEMBitmap
|
|
||||||
*/
|
|
||||||
HBITMAP BITMAP_LoadOEMBitmap( WORD id )
|
|
||||||
{
|
|
||||||
BITMAPOBJ * bmpObjPtr;
|
|
||||||
HBITMAP hbitmap;
|
|
||||||
WORD width, height;
|
|
||||||
char *data;
|
|
||||||
|
|
||||||
switch(id)
|
|
||||||
{
|
|
||||||
case OBM_MNARROW:
|
|
||||||
width = menu_arrow_width;
|
|
||||||
height = menu_arrow_height;
|
|
||||||
data = menu_arrow_bits;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case OBM_CHECKBOXES:
|
|
||||||
width = check_boxes_width;
|
|
||||||
height = check_boxes_height;
|
|
||||||
data = check_boxes_bits;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case OBM_CHECK:
|
|
||||||
width = check_mark_width;
|
|
||||||
height = check_mark_height;
|
|
||||||
data = check_mark_bits;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Create the BITMAPOBJ */
|
|
||||||
if (!(hbitmap = GDI_AllocObject( sizeof(BITMAPOBJ), BITMAP_MAGIC )))
|
|
||||||
return 0;
|
|
||||||
bmpObjPtr = (BITMAPOBJ *) GDI_HEAP_ADDR( hbitmap );
|
|
||||||
bmpObjPtr->size.cx = 0;
|
|
||||||
bmpObjPtr->size.cy = 0;
|
|
||||||
bmpObjPtr->bitmap.bmType = 0;
|
|
||||||
bmpObjPtr->bitmap.bmWidth = width;
|
|
||||||
bmpObjPtr->bitmap.bmHeight = height;
|
|
||||||
bmpObjPtr->bitmap.bmWidthBytes = (width + 15) / 16 * 2;
|
|
||||||
bmpObjPtr->bitmap.bmPlanes = 1;
|
|
||||||
bmpObjPtr->bitmap.bmBitsPixel = 1;
|
|
||||||
bmpObjPtr->bitmap.bmBits = NULL;
|
|
||||||
|
|
||||||
/* Create the pixmap */
|
|
||||||
if (!(bmpObjPtr->pixmap = XCreateBitmapFromData( display, rootWindow,
|
|
||||||
data, width, height )))
|
|
||||||
{
|
|
||||||
GDI_HEAP_FREE( hbitmap );
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return hbitmap;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* CreateBitmap (GDI.48)
|
* CreateBitmap (GDI.48)
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -50,7 +50,7 @@ HBRUSH CreateBrushIndirect( LOGBRUSH * brush )
|
||||||
HBRUSH CreateHatchBrush( short style, COLORREF color )
|
HBRUSH CreateHatchBrush( short style, COLORREF color )
|
||||||
{
|
{
|
||||||
LOGBRUSH logbrush = { BS_HATCHED, color, style };
|
LOGBRUSH logbrush = { BS_HATCHED, color, style };
|
||||||
dprintf_gdi(stddeb, "CreateHatchBrush: %d %06x\n", style, color );
|
dprintf_gdi(stddeb, "CreateHatchBrush: %d %06lx\n", style, color );
|
||||||
if ((style < 0) || (style >= NB_HATCH_STYLES)) return 0;
|
if ((style < 0) || (style >= NB_HATCH_STYLES)) return 0;
|
||||||
return CreateBrushIndirect( &logbrush );
|
return CreateBrushIndirect( &logbrush );
|
||||||
}
|
}
|
||||||
|
@ -119,7 +119,7 @@ HBRUSH CreateDIBPatternBrush( HANDLE hbitmap, WORD coloruse )
|
||||||
HBRUSH CreateSolidBrush( COLORREF color )
|
HBRUSH CreateSolidBrush( COLORREF color )
|
||||||
{
|
{
|
||||||
LOGBRUSH logbrush = { BS_SOLID, color, 0 };
|
LOGBRUSH logbrush = { BS_SOLID, color, 0 };
|
||||||
dprintf_gdi(stddeb, "CreateSolidBrush: %06x\n", color );
|
dprintf_gdi(stddeb, "CreateSolidBrush: %06lx\n", color );
|
||||||
return CreateBrushIndirect( &logbrush );
|
return CreateBrushIndirect( &logbrush );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,9 +65,9 @@ void Font_Init( void )
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if( GetPrivateProfileString("fonts", NULL, "*", temp, sizeof(temp), WINE_INI) > 2 ) {
|
if( GetPrivateProfileString("fonts", NULL, "*", temp, sizeof(temp), WINE_INI) > 2 ) {
|
||||||
for( ptr = temp, i = 1; strlen(ptr) != 0; ptr += strlen(ptr) + 1, i++ )
|
for( ptr = temp, i = 1; strlen(ptr) != 0; ptr += strlen(ptr) + 1 )
|
||||||
if( strcmp( ptr, "default" ) )
|
if( strcmp( ptr, "default" ) )
|
||||||
FontNames[i].window = strdup( ptr );
|
FontNames[i++].window = strdup( ptr );
|
||||||
FontSize = i;
|
FontSize = i;
|
||||||
|
|
||||||
for( i = 1; i < FontSize; i++ ) {
|
for( i = 1; i < FontSize; i++ ) {
|
||||||
|
@ -75,8 +75,7 @@ void Font_Init( void )
|
||||||
FontNames[i].x11 = strdup( temp );
|
FontNames[i].x11 = strdup( temp );
|
||||||
}
|
}
|
||||||
GetPrivateProfileString("fonts", "default", "*", temp, sizeof(temp), WINE_INI);
|
GetPrivateProfileString("fonts", "default", "*", temp, sizeof(temp), WINE_INI);
|
||||||
if( *temp == '*' )
|
FontNames[0].x11 = strdup( temp );
|
||||||
FontNames[0].x11 = strdup( temp );
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
FontNames[0].window = NULL; FontNames[0].x11 = "bitstream-courier";
|
FontNames[0].window = NULL; FontNames[0].x11 = "bitstream-courier";
|
||||||
|
@ -114,7 +113,7 @@ static const char *FONT_TranslateName( char *winFaceName )
|
||||||
*
|
*
|
||||||
* Find a X font matching the logical font.
|
* Find a X font matching the logical font.
|
||||||
*/
|
*/
|
||||||
static XFontStruct * FONT_MatchFont( LOGFONT * font )
|
static XFontStruct * FONT_MatchFont( LOGFONT * font, DC * dc )
|
||||||
{
|
{
|
||||||
char pattern[100];
|
char pattern[100];
|
||||||
const char *family, *weight, *charset;
|
const char *family, *weight, *charset;
|
||||||
|
@ -125,8 +124,17 @@ static XFontStruct * FONT_MatchFont( LOGFONT * font )
|
||||||
|
|
||||||
weight = (font->lfWeight > 550) ? "bold" : "medium";
|
weight = (font->lfWeight > 550) ? "bold" : "medium";
|
||||||
slant = font->lfItalic ? 'i' : 'r';
|
slant = font->lfItalic ? 'i' : 'r';
|
||||||
height = abs(font->lfHeight * 10);
|
height = font->lfHeight * dc->w.VportExtX / dc->w.WndExtX;
|
||||||
width = font->lfWidth * 10;
|
if (height == 0) height = 120; /* Default height = 12 */
|
||||||
|
else if (height < 0)
|
||||||
|
{
|
||||||
|
/* If height is negative, it means the height of the characters */
|
||||||
|
/* *without* the internal leading. So we adjust it a bit to */
|
||||||
|
/* compensate. 5/4 seems to give good results for small fonts. */
|
||||||
|
height = 10 * (-height * 5 / 4);
|
||||||
|
}
|
||||||
|
else height *= 10;
|
||||||
|
width = 10 * (font->lfWidth * dc->w.VportExtY / dc->w.WndExtY);
|
||||||
spacing = (font->lfPitchAndFamily & FIXED_PITCH) ? 'm' :
|
spacing = (font->lfPitchAndFamily & FIXED_PITCH) ? 'm' :
|
||||||
(font->lfPitchAndFamily & VARIABLE_PITCH) ? 'p' : '*';
|
(font->lfPitchAndFamily & VARIABLE_PITCH) ? 'p' : '*';
|
||||||
charset = (font->lfCharSet == ANSI_CHARSET) ? "iso8859-1" : "*-*";
|
charset = (font->lfCharSet == ANSI_CHARSET) ? "iso8859-1" : "*-*";
|
||||||
|
@ -304,7 +312,7 @@ HFONT FONT_SelectObject( DC * dc, HFONT hfont, FONTOBJ * font )
|
||||||
|
|
||||||
if (!stockPtr || !stockPtr->fstruct)
|
if (!stockPtr || !stockPtr->fstruct)
|
||||||
{
|
{
|
||||||
fontStruct = FONT_MatchFont( &font->logfont );
|
fontStruct = FONT_MatchFont( &font->logfont, dc );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -521,6 +529,27 @@ BOOL GetCharWidth(HDC hdc, WORD wFirstChar, WORD wLastChar, LPINT lpBuffer)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* AddFontResource (GDI.119)
|
||||||
|
*/
|
||||||
|
int AddFontResource( LPSTR str )
|
||||||
|
{
|
||||||
|
fprintf( stdnimp, "STUB: AddFontResource('%s')\n", str );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* RemoveFontResource (GDI.136)
|
||||||
|
*/
|
||||||
|
BOOL RemoveFontResource( LPSTR str )
|
||||||
|
{
|
||||||
|
fprintf( stdnimp, "STUB: RemoveFontResource('%s')\n", str );
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* ParseFontParms [internal]
|
* ParseFontParms [internal]
|
||||||
*/
|
*/
|
||||||
|
|
238
objects/oembitmap.c
Normal file
238
objects/oembitmap.c
Normal file
|
@ -0,0 +1,238 @@
|
||||||
|
/*
|
||||||
|
* GDI OEM bitmap objects
|
||||||
|
*
|
||||||
|
* Copyright 1994 Alexandre Julliard
|
||||||
|
*/
|
||||||
|
|
||||||
|
static char Copyright[] = "Copyright Alexandre Julliard, 1994";
|
||||||
|
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
#include <X11/Xutil.h>
|
||||||
|
#ifdef USE_XPM
|
||||||
|
#include <X11/xpm.h>
|
||||||
|
#endif
|
||||||
|
#include "gdi.h"
|
||||||
|
#include "bitmap.h"
|
||||||
|
#include "stddebug.h"
|
||||||
|
/* #define DEBUG_BITMAP */
|
||||||
|
#include "debug.h"
|
||||||
|
|
||||||
|
#define OBM_FIRST OBM_LFARROWI /* First OEM bitmap */
|
||||||
|
#define OBM_LAST OBM_OLD_CLOSE /* Last OEM bitmap */
|
||||||
|
|
||||||
|
#ifdef USE_XPM
|
||||||
|
|
||||||
|
/* Known symbolic names for colors. Use these whenever possible. */
|
||||||
|
struct sys_colors_symbols
|
||||||
|
{
|
||||||
|
char *symbol;
|
||||||
|
WORD syscolor;
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct sys_colors_symbols OBM_Color_Symbols[] =
|
||||||
|
{
|
||||||
|
{ "button_face", COLOR_BTNFACE },
|
||||||
|
{ "button_shadow", COLOR_BTNSHADOW },
|
||||||
|
{ "button_highlight", COLOR_BTNHIGHLIGHT }
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Include OEM pixmaps */
|
||||||
|
#include "bitmaps/obm_lfarrowi"
|
||||||
|
#include "bitmaps/obm_rgarrowi"
|
||||||
|
#include "bitmaps/obm_dnarrowi"
|
||||||
|
#include "bitmaps/obm_uparrowi"
|
||||||
|
#include "bitmaps/obm_combo"
|
||||||
|
#include "bitmaps/obm_mnarrow"
|
||||||
|
#include "bitmaps/obm_lfarrowd"
|
||||||
|
#include "bitmaps/obm_rgarrowd"
|
||||||
|
#include "bitmaps/obm_dnarrowd"
|
||||||
|
#include "bitmaps/obm_uparrowd"
|
||||||
|
#include "bitmaps/obm_restored"
|
||||||
|
#include "bitmaps/obm_zoomd"
|
||||||
|
#include "bitmaps/obm_reduced"
|
||||||
|
#include "bitmaps/obm_restore"
|
||||||
|
#include "bitmaps/obm_zoom"
|
||||||
|
#include "bitmaps/obm_reduce"
|
||||||
|
#include "bitmaps/obm_lfarrow"
|
||||||
|
#include "bitmaps/obm_rgarrow"
|
||||||
|
#include "bitmaps/obm_dnarrow"
|
||||||
|
#include "bitmaps/obm_uparrow"
|
||||||
|
#include "bitmaps/obm_close"
|
||||||
|
#include "bitmaps/obm_old_restore"
|
||||||
|
#include "bitmaps/obm_old_zoom"
|
||||||
|
#include "bitmaps/obm_old_reduce"
|
||||||
|
#include "bitmaps/obm_btncorners"
|
||||||
|
#include "bitmaps/obm_checkboxes"
|
||||||
|
#include "bitmaps/obm_check"
|
||||||
|
#include "bitmaps/obm_btsize"
|
||||||
|
#include "bitmaps/obm_old_lfarrow"
|
||||||
|
#include "bitmaps/obm_old_rgarrow"
|
||||||
|
#include "bitmaps/obm_old_dnarrow"
|
||||||
|
#include "bitmaps/obm_old_uparrow"
|
||||||
|
#include "bitmaps/obm_size"
|
||||||
|
#include "bitmaps/obm_old_close"
|
||||||
|
|
||||||
|
static const struct
|
||||||
|
{
|
||||||
|
char** data; /* Pointer to bitmap data */
|
||||||
|
BOOL color; /* Is it a color bitmap? */
|
||||||
|
} OBM_Pixmaps_Data[OBM_LAST-OBM_FIRST+1] = {
|
||||||
|
{ obm_lfarrowi, TRUE }, /* OBM_LFARROWI */
|
||||||
|
{ obm_rgarrowi, TRUE }, /* OBM_RGARROWI */
|
||||||
|
{ obm_dnarrowi, TRUE }, /* OBM_DNARROWI */
|
||||||
|
{ obm_uparrowi, TRUE }, /* OBM_UPARROWI */
|
||||||
|
{ obm_combo, FALSE }, /* OBM_COMBO */
|
||||||
|
{ obm_mnarrow, FALSE }, /* OBM_MNARROW */
|
||||||
|
{ obm_lfarrowd, TRUE }, /* OBM_LFARROWD */
|
||||||
|
{ obm_rgarrowd, TRUE }, /* OBM_RGARROWD */
|
||||||
|
{ obm_dnarrowd, TRUE }, /* OBM_DNARROWD */
|
||||||
|
{ obm_uparrowd, TRUE }, /* OBM_UPARROWD */
|
||||||
|
{ obm_restored, TRUE }, /* OBM_RESTORED */
|
||||||
|
{ obm_zoomd, TRUE }, /* OBM_ZOOMD */
|
||||||
|
{ obm_reduced, TRUE }, /* OBM_REDUCED */
|
||||||
|
{ obm_restore, TRUE }, /* OBM_RESTORE */
|
||||||
|
{ obm_zoom, TRUE }, /* OBM_ZOOM */
|
||||||
|
{ obm_reduce, TRUE }, /* OBM_REDUCE */
|
||||||
|
{ obm_lfarrow, TRUE }, /* OBM_LFARROW */
|
||||||
|
{ obm_rgarrow, TRUE }, /* OBM_RGARROW */
|
||||||
|
{ obm_dnarrow, TRUE }, /* OBM_DNARROW */
|
||||||
|
{ obm_uparrow, TRUE }, /* OBM_UPARROW */
|
||||||
|
{ obm_close, TRUE }, /* OBM_CLOSE */
|
||||||
|
{ obm_old_restore, FALSE }, /* OBM_OLD_RESTORE */
|
||||||
|
{ obm_old_zoom, FALSE }, /* OBM_OLD_ZOOM */
|
||||||
|
{ obm_old_reduce, FALSE }, /* OBM_OLD_REDUCE */
|
||||||
|
{ obm_btncorners, FALSE }, /* OBM_BTNCORNERS */
|
||||||
|
{ obm_checkboxes, FALSE }, /* OBM_CHECKBOXES */
|
||||||
|
{ obm_check, FALSE }, /* OBM_CHECK */
|
||||||
|
{ obm_btsize, FALSE }, /* OBM_BTSIZE */
|
||||||
|
{ obm_old_lfarrow, FALSE }, /* OBM_OLD_LFARROW */
|
||||||
|
{ obm_old_rgarrow, FALSE }, /* OBM_OLD_RGARROW */
|
||||||
|
{ obm_old_dnarrow, FALSE }, /* OBM_OLD_DNARROW */
|
||||||
|
{ obm_old_uparrow, FALSE }, /* OBM_OLD_UPARROW */
|
||||||
|
{ obm_size, FALSE }, /* OBM_SIZE */
|
||||||
|
{ obm_old_close, FALSE }, /* OBM_OLD_CLOSE */
|
||||||
|
};
|
||||||
|
|
||||||
|
#else /* USE_XPM */
|
||||||
|
|
||||||
|
/* Include OEM bitmaps */
|
||||||
|
#include "bitmaps/check_boxes"
|
||||||
|
#include "bitmaps/check_mark"
|
||||||
|
#include "bitmaps/menu_arrow"
|
||||||
|
|
||||||
|
static const struct
|
||||||
|
{
|
||||||
|
WORD width, height;
|
||||||
|
char *data;
|
||||||
|
} OBM_Bitmaps_Data[OBM_LAST-OBM_FIRST+1] =
|
||||||
|
{
|
||||||
|
{ 0, 0, NULL }, /* OBM_LFARROWI */
|
||||||
|
{ 0, 0, NULL }, /* OBM_RGARROWI */
|
||||||
|
{ 0, 0, NULL }, /* OBM_DNARROWI */
|
||||||
|
{ 0, 0, NULL }, /* OBM_UPARROWI */
|
||||||
|
{ 0, 0, NULL }, /* OBM_COMBO */
|
||||||
|
{ menu_arrow_width, menu_arrow_height, menu_arrow_bits }, /* OBM_MNARROW */
|
||||||
|
{ 0, 0, NULL }, /* OBM_LFARROWD */
|
||||||
|
{ 0, 0, NULL }, /* OBM_RGARROWD */
|
||||||
|
{ 0, 0, NULL }, /* OBM_DNARROWD */
|
||||||
|
{ 0, 0, NULL }, /* OBM_UPARROWD */
|
||||||
|
{ 0, 0, NULL }, /* OBM_RESTORED */
|
||||||
|
{ 0, 0, NULL }, /* OBM_ZOOMD */
|
||||||
|
{ 0, 0, NULL }, /* OBM_REDUCED */
|
||||||
|
{ 0, 0, NULL }, /* OBM_RESTORE */
|
||||||
|
{ 0, 0, NULL }, /* OBM_ZOOM */
|
||||||
|
{ 0, 0, NULL }, /* OBM_REDUCE */
|
||||||
|
{ 0, 0, NULL }, /* OBM_LFARROW */
|
||||||
|
{ 0, 0, NULL }, /* OBM_RGARROW */
|
||||||
|
{ 0, 0, NULL }, /* OBM_DNARROW */
|
||||||
|
{ 0, 0, NULL }, /* OBM_UPARROW */
|
||||||
|
{ 0, 0, NULL }, /* OBM_CLOSE */
|
||||||
|
{ 0, 0, NULL }, /* OBM_OLD_RESTORE */
|
||||||
|
{ 0, 0, NULL }, /* OBM_OLD_ZOOM */
|
||||||
|
{ 0, 0, NULL }, /* OBM_OLD_REDUCE */
|
||||||
|
{ 0, 0, NULL }, /* OBM_BTNCORNERS */
|
||||||
|
{ check_boxes_width, check_boxes_height,
|
||||||
|
check_boxes_bits }, /* OBM_CHECKBOXES */
|
||||||
|
{ check_mark_width, check_mark_height, check_mark_bits }, /* OBM_CHECK */
|
||||||
|
{ 0, 0, NULL }, /* OBM_BTSIZE */
|
||||||
|
{ 0, 0, NULL }, /* OBM_OLD_LFARROW */
|
||||||
|
{ 0, 0, NULL }, /* OBM_OLD_RGARROW */
|
||||||
|
{ 0, 0, NULL }, /* OBM_OLD_DNARROW */
|
||||||
|
{ 0, 0, NULL }, /* OBM_OLD_UPARROW */
|
||||||
|
{ 0, 0, NULL }, /* OBM_SIZE */
|
||||||
|
{ 0, 0, NULL }, /* OBM_OLD_CLOSE */
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* USE_XPM */
|
||||||
|
|
||||||
|
|
||||||
|
extern Colormap COLOR_WinColormap;
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* OBM_LoadOEMBitmap
|
||||||
|
*/
|
||||||
|
HBITMAP OBM_LoadOEMBitmap( WORD id )
|
||||||
|
{
|
||||||
|
BITMAPOBJ * bmpObjPtr;
|
||||||
|
HBITMAP hbitmap;
|
||||||
|
WORD width, height, bpp;
|
||||||
|
Pixmap pixmap;
|
||||||
|
|
||||||
|
if ((id < OBM_FIRST) || (id > OBM_LAST)) return 0;
|
||||||
|
id -= OBM_FIRST;
|
||||||
|
#ifdef USE_XPM
|
||||||
|
if (!OBM_Pixmaps_Data[id].data) return 0;
|
||||||
|
{
|
||||||
|
XpmAttributes attrs;
|
||||||
|
|
||||||
|
attrs.valuemask = XpmColormap | XpmDepth;
|
||||||
|
attrs.colormap = COLOR_WinColormap;
|
||||||
|
if (OBM_Pixmaps_Data[id].color) attrs.depth = bpp = screenDepth;
|
||||||
|
else attrs.depth = bpp = 1;
|
||||||
|
|
||||||
|
if (XpmCreatePixmapFromData( display, rootWindow,
|
||||||
|
OBM_Pixmaps_Data[id].data,
|
||||||
|
&pixmap, NULL, &attrs ) != XpmSuccess)
|
||||||
|
{
|
||||||
|
fprintf( stderr, "Error creating pixmap\n" );
|
||||||
|
pixmap = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
width = attrs.width;
|
||||||
|
height = attrs.height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (!OBM_Bitmaps_Data[id].data) return 0;
|
||||||
|
bpp = 1;
|
||||||
|
width = OBM_Bitmaps_Data[id].width;
|
||||||
|
height = OBM_Bitmaps_Data[id].height;
|
||||||
|
pixmap = XCreateBitmapFromData( display, rootWindow,
|
||||||
|
OBM_Bitmaps_Data[id].data, width, height );
|
||||||
|
#endif /* USE_XPM */
|
||||||
|
|
||||||
|
if (!pixmap) return 0;
|
||||||
|
|
||||||
|
/* Create the BITMAPOBJ */
|
||||||
|
if (!(hbitmap = GDI_AllocObject( sizeof(BITMAPOBJ), BITMAP_MAGIC )))
|
||||||
|
{
|
||||||
|
XFreePixmap( display, pixmap );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
bmpObjPtr = (BITMAPOBJ *) GDI_HEAP_ADDR( hbitmap );
|
||||||
|
bmpObjPtr->size.cx = 0;
|
||||||
|
bmpObjPtr->size.cy = 0;
|
||||||
|
bmpObjPtr->pixmap = pixmap;
|
||||||
|
bmpObjPtr->bitmap.bmType = 0;
|
||||||
|
bmpObjPtr->bitmap.bmWidth = width;
|
||||||
|
bmpObjPtr->bitmap.bmHeight = height;
|
||||||
|
bmpObjPtr->bitmap.bmWidthBytes = (width + 15) / 16 * 2;
|
||||||
|
bmpObjPtr->bitmap.bmPlanes = 1;
|
||||||
|
bmpObjPtr->bitmap.bmBitsPixel = bpp;
|
||||||
|
bmpObjPtr->bitmap.bmBits = NULL;
|
||||||
|
return hbitmap;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
12
rc/Imakefile
12
rc/Imakefile
|
@ -1,15 +1,21 @@
|
||||||
#include "../Wine.tmpl"
|
#include "../Wine.tmpl"
|
||||||
|
|
||||||
|
MODULE = rc
|
||||||
|
|
||||||
.SUFFIXES: .rc
|
.SUFFIXES: .rc
|
||||||
|
|
||||||
.rc.c:
|
.rc.c:
|
||||||
echo "#include \"windows.h\"" >$*.rct
|
echo "#include \"windows.h\"" >$*.rct
|
||||||
echo WINDOWS_H_ENDS_HERE >>$*.rct
|
echo WINDOWS_H_ENDS_HERE >>$*.rct
|
||||||
cat $< >>$*.rct
|
cat $< >>$*.rct
|
||||||
gcc -E -x c $(CFLAGS) $*.rct | sed -e '1,/^WINDOWS_H_ENDS_HERE/d' | winerc -v -p $* >$@
|
gcc -E -x c $(CFLAGS) $*.rct | sed -e '1,/^WINDOWS_H_ENDS_HERE/d' | ./winerc -o $* -v -p $*
|
||||||
$(RM) $*.rct
|
$(RM) $*.rct
|
||||||
|
|
||||||
AllTarget(sysres.c)
|
RCSRCS = sysres.rc sysresbm.rc
|
||||||
|
|
||||||
|
RCOBJS = $(RCSRCS:.rc=.o)
|
||||||
|
|
||||||
|
WineRelocatableTarget($(TOP)/$(MODULE),,$(RCOBJS))
|
||||||
|
|
||||||
sysres.c: winerc $(TOP)/include/windows.h
|
sysres.c: winerc $(TOP)/include/windows.h
|
||||||
|
|
||||||
|
@ -28,6 +34,8 @@ SRCS = \
|
||||||
|
|
||||||
OBJS = $(SRCS:.c=.o)
|
OBJS = $(SRCS:.c=.o)
|
||||||
|
|
||||||
|
LOCAL_LIBRARIES = -lfl
|
||||||
|
|
||||||
depend:: rc.tab.c rc.tab.h lex.yy.c
|
depend:: rc.tab.c rc.tab.h lex.yy.c
|
||||||
|
|
||||||
clean::
|
clean::
|
||||||
|
|
1
rc/rc.h
1
rc/rc.h
|
@ -89,6 +89,7 @@ gen_res *make_menu(gen_res*);
|
||||||
gen_res *add_resource(gen_res*,gen_res*);
|
gen_res *add_resource(gen_res*,gen_res*);
|
||||||
|
|
||||||
void create_output(gen_res*);
|
void create_output(gen_res*);
|
||||||
|
void set_out_file(char*);
|
||||||
|
|
||||||
#define CT_BUTTON 0x80
|
#define CT_BUTTON 0x80
|
||||||
#define CT_EDIT 0x81
|
#define CT_EDIT 0x81
|
||||||
|
|
6
rc/rc.y
6
rc/rc.y
|
@ -35,7 +35,7 @@ static char Copyright[] = "Copyright Martin von Loewis, 1994";
|
||||||
%type <style> style optional_style
|
%type <style> style optional_style
|
||||||
%%
|
%%
|
||||||
|
|
||||||
resource_file: resources {create_output($1)}
|
resource_file: resources {create_output($1);}
|
||||||
|
|
||||||
/*resources are put into a linked list*/
|
/*resources are put into a linked list*/
|
||||||
resources: {$$=0;}
|
resources: {$$=0;}
|
||||||
|
@ -201,8 +201,8 @@ versioninfo: VERSIONINFO NOT_SUPPORTED {$$=0;}
|
||||||
NOT is used to disable default styles */
|
NOT is used to disable default styles */
|
||||||
style: NUMBER {$$=new_style();$$->or=$1;}
|
style: NUMBER {$$=new_style();$$->or=$1;}
|
||||||
| NOT NUMBER {$$=new_style();$$->and=~($2);}
|
| NOT NUMBER {$$=new_style();$$->and=~($2);}
|
||||||
| NUMBER '|' style {$$=$3;$$->or|=$1;}
|
| '(' style ')' {$$=$2;}
|
||||||
| NOT NUMBER '|' style {$$=$4;$$->and&=~($2);}
|
| style '|' style {$$=$1;$$->or|=$3->or;$$->and&=$3->and;}
|
||||||
%%
|
%%
|
||||||
yyerror(char *s)
|
yyerror(char *s)
|
||||||
{
|
{
|
||||||
|
|
21
rc/sysres.h
Normal file
21
rc/sysres.h
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
/* sysres.h
|
||||||
|
* This File is automatically generated. Do not edit
|
||||||
|
*/
|
||||||
|
#include "resource.h"
|
||||||
|
extern unsigned char sysres_MENU_SYSMENU[];
|
||||||
|
extern unsigned char sysres_DIALOG_2[];
|
||||||
|
extern unsigned char sysres_DIALOG_STOP_MSGBOX[];
|
||||||
|
extern unsigned char sysres_DIALOG_QUESTION_MSGBOX[];
|
||||||
|
extern unsigned char sysres_DIALOG_EXCLAMATION_MSGBOX[];
|
||||||
|
extern unsigned char sysres_DIALOG_SHELL_ABOUT_MSGBOX[];
|
||||||
|
extern unsigned char sysres_DIALOG_3[];
|
||||||
|
extern unsigned char sysres_DIALOG_4[];
|
||||||
|
extern unsigned char sysres_DIALOG_11[];
|
||||||
|
extern unsigned char sysres_DIALOG_12[];
|
||||||
|
extern unsigned char sysres_DIALOG_5[];
|
||||||
|
extern unsigned char sysres_DIALOG_6[];
|
||||||
|
extern unsigned char sysres_DIALOG_7[];
|
||||||
|
extern unsigned char sysres_DIALOG_8[];
|
||||||
|
extern unsigned char sysres_DIALOG_9[];
|
||||||
|
extern unsigned char sysres_DIALOG_10[];
|
||||||
|
extern struct ResourceTable sysresTable[];
|
1822
rc/sysres.rc
1822
rc/sysres.rc
File diff suppressed because it is too large
Load diff
59
rc/sysresbm.h
Normal file
59
rc/sysresbm.h
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
/* sysresbm.h
|
||||||
|
* This File is automatically generated. Do not edit
|
||||||
|
*/
|
||||||
|
#include "resource.h"
|
||||||
|
extern unsigned char sysresbm_CURSOR_32514[];
|
||||||
|
extern unsigned char sysresbm_CURSOR_32648[];
|
||||||
|
extern unsigned char sysresbm_ICON_32516[];
|
||||||
|
extern unsigned char sysresbm_ICON_32515[];
|
||||||
|
extern unsigned char sysresbm_ICON_32513[];
|
||||||
|
extern unsigned char sysresbm_ICON_32514[];
|
||||||
|
extern unsigned char sysresbm_ICON_SYSIDI_STOPICON[];
|
||||||
|
extern unsigned char sysresbm_ICON_32512[];
|
||||||
|
extern unsigned char sysresbm_ICON_SYSIDI_HANDHAND[];
|
||||||
|
extern unsigned char sysresbm_ICON_WINEICON[];
|
||||||
|
extern unsigned char sysresbm_ICON_PORTRAIT[];
|
||||||
|
extern unsigned char sysresbm_ICON_LANDSCAP[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32754[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32753[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32752[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32751[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32750[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32749[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32748[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32747[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32746[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32745[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32744[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32743[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32742[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32741[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32740[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32739[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32738[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32737[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32736[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32735[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32734[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32767[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32766[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32765[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32764[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32763[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32762[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32761[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32760[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32759[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32758[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32757[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32756[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32755[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32520[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32521[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32522[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32523[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_32524[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_SMILE[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_WINELOGO[];
|
||||||
|
extern unsigned char sysresbm_BITMAP_OBMCLOSE[];
|
||||||
|
extern struct ResourceTable sysresbmTable[];
|
1851
rc/sysresbm.rc
Normal file
1851
rc/sysresbm.rc
Normal file
File diff suppressed because it is too large
Load diff
70
rc/winerc.c
70
rc/winerc.c
|
@ -16,20 +16,26 @@ static char Copyright[] = "Copyright Martin von Loewis, 1994";
|
||||||
#include "rc.h"
|
#include "rc.h"
|
||||||
#include "rc.tab.h"
|
#include "rc.tab.h"
|
||||||
|
|
||||||
char usage[]="winerc -dv -p <prefix> < infile > outfile\n";
|
char usage[]="winerc -dvc -p prefix -o outfile < infile \n";
|
||||||
|
|
||||||
/*might be overwritten by command line*/
|
/*might be overwritten by command line*/
|
||||||
char *prefix="_Resource";
|
char *prefix="_Resource";
|
||||||
int verbose;
|
int verbose,constant;
|
||||||
gen_res* g_start;
|
gen_res* g_start;
|
||||||
|
FILE *header,*code;
|
||||||
|
char hname[256],sname[256];
|
||||||
|
|
||||||
main(int argc,char *argv[])
|
main(int argc,char *argv[])
|
||||||
{
|
{
|
||||||
extern int yydebug;
|
extern int yydebug;
|
||||||
extern char* optarg;
|
extern char* optarg;
|
||||||
int optc,lose;
|
int optc,lose,ret;
|
||||||
lose=0;
|
lose=0;
|
||||||
while((optc=getopt(argc,argv,"dp:v",0))!=EOF)
|
#ifdef __NetBSD__
|
||||||
|
while((optc=getopt(argc,argv,"dp:vo:"))!=EOF)
|
||||||
|
#else
|
||||||
|
while((optc=getopt(argc,argv,"dp:vo:",0))!=EOF)
|
||||||
|
#endif
|
||||||
switch(optc)
|
switch(optc)
|
||||||
{
|
{
|
||||||
/* bison will print state transitions on stderr */
|
/* bison will print state transitions on stderr */
|
||||||
|
@ -38,16 +44,31 @@ main(int argc,char *argv[])
|
||||||
setbuf(stderr,0);
|
setbuf(stderr,0);
|
||||||
break;
|
break;
|
||||||
case 'p':prefix=optarg;break;
|
case 'p':prefix=optarg;break;
|
||||||
|
case 'c':constant=1;break;
|
||||||
case 'v':verbose=1;
|
case 'v':verbose=1;
|
||||||
setbuf(stderr,0);
|
setbuf(stderr,0);
|
||||||
break;
|
break;
|
||||||
|
case 'o':set_out_file(optarg);break;
|
||||||
default: lose++;break;
|
default: lose++;break;
|
||||||
}
|
}
|
||||||
if(lose)return fprintf(stderr,usage),1;
|
if(lose)return fprintf(stderr,usage),1;
|
||||||
yyparse();
|
if(!header)header=stdout;
|
||||||
return 0;
|
if(!code)code=stdout;
|
||||||
|
ret=yyparse();
|
||||||
|
fclose(header);
|
||||||
|
fclose(code);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void set_out_file(char *prefix)
|
||||||
|
{
|
||||||
|
sprintf(sname,"%s.c",prefix);
|
||||||
|
code=fopen(sname,"w");
|
||||||
|
sprintf(hname,"%s.h",prefix);
|
||||||
|
header=fopen(hname,"w");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* SunOS' memcpy is wrong for overlapping arrays */
|
/* SunOS' memcpy is wrong for overlapping arrays */
|
||||||
char *save_memcpy(char *d,char* s,int l)
|
char *save_memcpy(char *d,char* s,int l)
|
||||||
{
|
{
|
||||||
|
@ -469,19 +490,26 @@ char *get_resource_name(gen_res*it)
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define ISCONSTANT constant?"const ":""
|
||||||
/* create the final output */
|
/* create the final output */
|
||||||
void create_output(gen_res* top)
|
void create_output(gen_res* top)
|
||||||
{
|
{
|
||||||
gen_res *it;
|
gen_res *it;
|
||||||
/* print the type */
|
fprintf(header,"/*\t\t%s\n * This File is automatically generated."
|
||||||
printf("struct ResourceTable{\n\tint id,type;\n\t"
|
" Do not edit\n */\n#include \"resource.h\"\n",hname);
|
||||||
"char *name;\n\tconst unsigned char* value;\n};\n\n");
|
fprintf(code,"/*\t\t%s\n * This File is automatically generated."
|
||||||
|
" Do not edit\n */\n",sname);
|
||||||
/* declare the resources */
|
/* declare the resources */
|
||||||
for(it=top;it;it=it->next)
|
for(it=top;it;it=it->next)
|
||||||
printf("const unsigned char %s[];\n",get_resource_name(it));
|
fprintf(header,"extern %sunsigned char %s[];\n",ISCONSTANT,
|
||||||
|
get_resource_name(it));
|
||||||
|
fprintf(header,"extern %sstruct ResourceTable %sTable[];\n",
|
||||||
|
ISCONSTANT,prefix);
|
||||||
|
|
||||||
|
fprintf(code,"#include \"prototypes.h\"\n#include \"%s\"\n",hname);
|
||||||
|
|
||||||
/* print the resource table (0 terminated) */
|
/* print the resource table (0 terminated) */
|
||||||
printf("\nconst struct ResourceTable %sTable[]={\n",prefix);
|
fprintf(code,"\n%sstruct ResourceTable %sTable[]={\n",ISCONSTANT,prefix);
|
||||||
for(it=top;it;it=it->next)
|
for(it=top;it;it=it->next)
|
||||||
{ int type;
|
{ int type;
|
||||||
switch(it->type)
|
switch(it->type)
|
||||||
|
@ -497,24 +525,26 @@ void create_output(gen_res* top)
|
||||||
default:fprintf(stderr,"Unknown restype\n");type=-1;break;
|
default:fprintf(stderr,"Unknown restype\n");type=-1;break;
|
||||||
}
|
}
|
||||||
if(it->n_type)
|
if(it->n_type)
|
||||||
printf("{0,%d,\"%s\",%s},\n",
|
fprintf(code,"{0,%d,\"%s\",%s,%d},\n",
|
||||||
type,it->n.s_name,get_resource_name(it));
|
type,it->n.s_name,get_resource_name(it),it->size);
|
||||||
else
|
else
|
||||||
printf("{%d,%d,\"@%d\",%s},\n",
|
fprintf(code,"{%d,%d,\"@%d\",%s,%d},\n",
|
||||||
it->n.i_name,type,it->n.i_name,get_resource_name(it));
|
it->n.i_name,type,it->n.i_name,get_resource_name(it),
|
||||||
|
it->size);
|
||||||
}
|
}
|
||||||
printf("{0,0,0,0}};\n\n");
|
fprintf(code,"{0,0,0,0}};\n\n");
|
||||||
|
|
||||||
/* print the resources */
|
/* print the resources */
|
||||||
for(it=top;it;it=it->next)
|
for(it=top;it;it=it->next)
|
||||||
{ int i;
|
{ int i;
|
||||||
printf("const unsigned char %s[]={\n",get_resource_name(it));
|
fprintf(code,"%sunsigned char %s[]={\n",
|
||||||
|
ISCONSTANT,get_resource_name(it));
|
||||||
for(i=0;i<it->size-1;i++)
|
for(i=0;i<it->size-1;i++)
|
||||||
{
|
{
|
||||||
printf("%#4x,",it->res[i]);
|
fprintf(code,"%#4x,",it->res[i]);
|
||||||
if((i&7)==7)putchar('\n');
|
if((i&7)==7)fputc('\n',code);
|
||||||
}
|
}
|
||||||
printf("%#4x};\n",it->res[i]);
|
fprintf(code,"%#4x};\n",it->res[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -629,7 +629,11 @@ InitContext()
|
||||||
i = n_context_strings - 1 + ((int) &context - (int) &context.sc_eip) / 4;
|
i = n_context_strings - 1 + ((int) &context - (int) &context.sc_eip) / 4;
|
||||||
context_strings[i] = PUSH_EIP;
|
context_strings[i] = PUSH_EIP;
|
||||||
|
|
||||||
i = n_context_strings - 1 + ((int) &context - (int) &context.sc_efl) / 4;
|
#ifndef __FreeBSD__
|
||||||
|
i = n_context_strings - 1 + ((int) &context - (int)&context.sc_eflags) / 4;
|
||||||
|
#else
|
||||||
|
i = n_context_strings - 1 + ((int) &context - (int)&context.sc_efl) / 4;
|
||||||
|
#endif
|
||||||
context_strings[i] = PUSH_EFL;
|
context_strings[i] = PUSH_EFL;
|
||||||
pop_strings[n_context_strings - 1 - i] = POP_EFL;
|
pop_strings[n_context_strings - 1 - i] = POP_EFL;
|
||||||
|
|
||||||
|
|
|
@ -135,7 +135,7 @@ void CreateCaret(HWND hwnd, HBITMAP bitmap, short width, short height)
|
||||||
Caret.timeout = 750;
|
Caret.timeout = 750;
|
||||||
LockCaret = FALSE;
|
LockCaret = FALSE;
|
||||||
|
|
||||||
Caret.timerid = SetSystemTimer(NULL, 0, Caret.timeout, CARET_Callback);
|
Caret.timerid = SetSystemTimer((HWND)0, 0, Caret.timeout, (FARPROC)CARET_Callback);
|
||||||
|
|
||||||
dprintf_caret(stddeb,"CreateCaret: hwnd=%d, timerid=%d\n",
|
dprintf_caret(stddeb,"CreateCaret: hwnd=%d, timerid=%d\n",
|
||||||
hwnd, Caret.timerid);
|
hwnd, Caret.timerid);
|
||||||
|
@ -152,7 +152,7 @@ void DestroyCaret()
|
||||||
*/
|
*/
|
||||||
dprintf_caret(stddeb,"DestroyCaret: timerid=%d\n", Caret.timerid);
|
dprintf_caret(stddeb,"DestroyCaret: timerid=%d\n", Caret.timerid);
|
||||||
|
|
||||||
KillSystemTimer(NULL, Caret.timerid);
|
KillSystemTimer( (HWND)0, Caret.timerid);
|
||||||
|
|
||||||
if (Caret.on)
|
if (Caret.on)
|
||||||
CARET_HideCaret();
|
CARET_HideCaret();
|
||||||
|
@ -221,9 +221,9 @@ void SetCaretBlinkTime(WORD msecs)
|
||||||
{
|
{
|
||||||
if (!Caret.hwnd) return;
|
if (!Caret.hwnd) return;
|
||||||
|
|
||||||
KillSystemTimer(NULL, Caret.timerid);
|
KillSystemTimer( (HWND)0, Caret.timerid);
|
||||||
Caret.timeout = msecs;
|
Caret.timeout = msecs;
|
||||||
Caret.timerid = SetSystemTimer(NULL, 0, Caret.timeout, CARET_Callback);
|
Caret.timerid = SetSystemTimer((HWND)0, 0, Caret.timeout, (FARPROC)CARET_Callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ static HCLASS firstClass = 0;
|
||||||
* Return a handle and a pointer to the class.
|
* Return a handle and a pointer to the class.
|
||||||
* 'ptr' can be NULL if the pointer is not needed.
|
* 'ptr' can be NULL if the pointer is not needed.
|
||||||
*/
|
*/
|
||||||
HCLASS CLASS_FindClassByName( char * name, CLASS **ptr )
|
HCLASS CLASS_FindClassByName( char * name, WORD hinstance, CLASS **ptr )
|
||||||
{
|
{
|
||||||
ATOM atom;
|
ATOM atom;
|
||||||
HCLASS class;
|
HCLASS class;
|
||||||
|
@ -36,13 +36,14 @@ HCLASS CLASS_FindClassByName( char * name, CLASS **ptr )
|
||||||
|
|
||||||
/* First search task-specific classes */
|
/* First search task-specific classes */
|
||||||
|
|
||||||
if ((atom = FindAtom( name )) != 0)
|
if ((atom = /*FindAtom*/GlobalFindAtom( name )) != 0)
|
||||||
{
|
{
|
||||||
for (class = firstClass; (class); class = classPtr->hNext)
|
for (class = firstClass; (class); class = classPtr->hNext)
|
||||||
{
|
{
|
||||||
classPtr = (CLASS *) USER_HEAP_ADDR(class);
|
classPtr = (CLASS *) USER_HEAP_ADDR(class);
|
||||||
if (classPtr->wc.style & CS_GLOBALCLASS) continue;
|
if (classPtr->wc.style & CS_GLOBALCLASS) continue;
|
||||||
if (classPtr->atomName == atom)
|
if ((classPtr->atomName == atom) &&
|
||||||
|
(( hinstance==0xffff )|| (hinstance == classPtr->wc.hInstance)))
|
||||||
{
|
{
|
||||||
if (ptr) *ptr = classPtr;
|
if (ptr) *ptr = classPtr;
|
||||||
return class;
|
return class;
|
||||||
|
@ -101,7 +102,8 @@ ATOM RegisterClass( LPWNDCLASS class )
|
||||||
|
|
||||||
/* Check if a class with this name already exists */
|
/* Check if a class with this name already exists */
|
||||||
|
|
||||||
prevClass = CLASS_FindClassByName( class->lpszClassName, &prevClassPtr );
|
prevClass = CLASS_FindClassByName( class->lpszClassName, class->hInstance,
|
||||||
|
&prevClassPtr );
|
||||||
if (prevClass)
|
if (prevClass)
|
||||||
{
|
{
|
||||||
/* Class can be created only if it is local and */
|
/* Class can be created only if it is local and */
|
||||||
|
@ -124,9 +126,9 @@ ATOM RegisterClass( LPWNDCLASS class )
|
||||||
newClass->wc.cbWndExtra = (class->cbWndExtra < 0) ? 0 : class->cbWndExtra;
|
newClass->wc.cbWndExtra = (class->cbWndExtra < 0) ? 0 : class->cbWndExtra;
|
||||||
newClass->wc.cbClsExtra = classExtra;
|
newClass->wc.cbClsExtra = classExtra;
|
||||||
|
|
||||||
if (newClass->wc.style & CS_GLOBALCLASS)
|
/*if (newClass->wc.style & CS_GLOBALCLASS)*/
|
||||||
newClass->atomName = GlobalAddAtom( class->lpszClassName );
|
newClass->atomName = GlobalAddAtom( class->lpszClassName );
|
||||||
else newClass->atomName = AddAtom( class->lpszClassName );
|
/*else newClass->atomName = AddAtom( class->lpszClassName );*/
|
||||||
newClass->wc.lpszClassName = NULL;
|
newClass->wc.lpszClassName = NULL;
|
||||||
|
|
||||||
if (newClass->wc.style & CS_CLASSDC)
|
if (newClass->wc.style & CS_CLASSDC)
|
||||||
|
@ -161,7 +163,7 @@ BOOL UnregisterClass( LPSTR className, HANDLE instance )
|
||||||
CLASS * classPtr, * prevClassPtr;
|
CLASS * classPtr, * prevClassPtr;
|
||||||
|
|
||||||
/* Check if we can remove this class */
|
/* Check if we can remove this class */
|
||||||
class = CLASS_FindClassByName( className, &classPtr );
|
class = CLASS_FindClassByName( className, instance, &classPtr );
|
||||||
if (!class) return FALSE;
|
if (!class) return FALSE;
|
||||||
if ((classPtr->wc.hInstance != instance) || (classPtr->cWindows > 0))
|
if ((classPtr->wc.hInstance != instance) || (classPtr->cWindows > 0))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -186,8 +188,8 @@ BOOL UnregisterClass( LPSTR className, HANDLE instance )
|
||||||
/* Delete the class */
|
/* Delete the class */
|
||||||
if (classPtr->hdce) DCE_FreeDCE( classPtr->hdce );
|
if (classPtr->hdce) DCE_FreeDCE( classPtr->hdce );
|
||||||
if (classPtr->wc.hbrBackground) DeleteObject( classPtr->wc.hbrBackground );
|
if (classPtr->wc.hbrBackground) DeleteObject( classPtr->wc.hbrBackground );
|
||||||
if (classPtr->wc.style & CS_GLOBALCLASS) GlobalDeleteAtom( classPtr->atomName );
|
/*if (classPtr->wc.style & CS_GLOBALCLASS)*/ GlobalDeleteAtom( classPtr->atomName );
|
||||||
else DeleteAtom( classPtr->atomName );
|
/*else DeleteAtom( classPtr->atomName );*/
|
||||||
if ((int)classPtr->wc.lpszMenuName & 0xffff0000)
|
if ((int)classPtr->wc.lpszMenuName & 0xffff0000)
|
||||||
USER_HEAP_FREE( (int)classPtr->wc.lpszMenuName & 0xffff );
|
USER_HEAP_FREE( (int)classPtr->wc.lpszMenuName & 0xffff );
|
||||||
USER_HEAP_FREE( class );
|
USER_HEAP_FREE( class );
|
||||||
|
@ -262,6 +264,7 @@ int GetClassName(HWND hwnd, LPSTR lpClassName, short maxCount)
|
||||||
WND *wndPtr;
|
WND *wndPtr;
|
||||||
CLASS *classPtr;
|
CLASS *classPtr;
|
||||||
|
|
||||||
|
/* FIXME: We have the find the correct hInstance */
|
||||||
if (!(wndPtr = WIN_FindWndPtr(hwnd))) return 0;
|
if (!(wndPtr = WIN_FindWndPtr(hwnd))) return 0;
|
||||||
if (!(classPtr = CLASS_FindClassPtr(wndPtr->hClass))) return 0;
|
if (!(classPtr = CLASS_FindClassPtr(wndPtr->hClass))) return 0;
|
||||||
|
|
||||||
|
@ -277,7 +280,29 @@ BOOL GetClassInfo(HANDLE hInstance, LPSTR lpClassName,
|
||||||
{
|
{
|
||||||
CLASS *classPtr;
|
CLASS *classPtr;
|
||||||
|
|
||||||
if (!(CLASS_FindClassByName(lpClassName, &classPtr))) return FALSE;
|
if (HIWORD(lpClassName))
|
||||||
|
{
|
||||||
|
dprintf_class(stddeb, "GetClassInfo hInstance=%04x lpClassName=%s\n",
|
||||||
|
hInstance, lpClassName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
dprintf_class(stddeb, "GetClassInfo hInstance=%04x lpClassName=#%d\n",
|
||||||
|
hInstance, (int)lpClassName);
|
||||||
|
|
||||||
|
|
||||||
|
/* if (!(CLASS_FindClassByName(lpClassName, &classPtr))) return FALSE; */
|
||||||
|
if (!(CLASS_FindClassByName(lpClassName, hInstance, &classPtr)))
|
||||||
|
{
|
||||||
|
if (!HIWORD(lpClassName))
|
||||||
|
{
|
||||||
|
char temp[10];
|
||||||
|
sprintf(temp, "#%d", (int)lpClassName);
|
||||||
|
if (!(CLASS_FindClassByName(temp, hInstance, &classPtr))) return FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
|
else return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
if (hInstance && (hInstance != classPtr->wc.hInstance)) return FALSE;
|
if (hInstance && (hInstance != classPtr->wc.hInstance)) return FALSE;
|
||||||
|
|
||||||
memcpy(lpWndClass, &(classPtr->wc), sizeof(WNDCLASS));
|
memcpy(lpWndClass, &(classPtr->wc), sizeof(WNDCLASS));
|
||||||
|
|
|
@ -309,7 +309,7 @@ static void CURSOR_SetCursor( HCURSOR hCursor )
|
||||||
{
|
{
|
||||||
CURSORALLOC *lpcur;
|
CURSORALLOC *lpcur;
|
||||||
|
|
||||||
if (!(lpcur = (CURSORALLOC *)GlobalLock(hCursor))) return FALSE;
|
if (!(lpcur = (CURSORALLOC *)GlobalLock(hCursor))) return;
|
||||||
if (rootWindow != DefaultRootWindow(display))
|
if (rootWindow != DefaultRootWindow(display))
|
||||||
{
|
{
|
||||||
XDefineCursor( display, rootWindow, lpcur->xcursor );
|
XDefineCursor( display, rootWindow, lpcur->xcursor );
|
||||||
|
|
|
@ -26,7 +26,6 @@ extern HWND DIALOG_GetFirstTabItem( HWND hwndDlg ); /* windows/dialog.c */
|
||||||
*/
|
*/
|
||||||
static void DEFDLG_SetFocus( HWND hwndDlg, HWND hwndCtrl )
|
static void DEFDLG_SetFocus( HWND hwndDlg, HWND hwndCtrl )
|
||||||
{
|
{
|
||||||
int dlgCode;
|
|
||||||
HWND hwndPrev = GetFocus();
|
HWND hwndPrev = GetFocus();
|
||||||
|
|
||||||
if (IsChild( hwndDlg, hwndPrev ))
|
if (IsChild( hwndDlg, hwndPrev ))
|
||||||
|
@ -126,7 +125,7 @@ LONG DefDlgProc( HWND hwnd, WORD msg, WORD wParam, LONG lParam )
|
||||||
if (!wndPtr) return 0;
|
if (!wndPtr) return 0;
|
||||||
dlgInfo = (DIALOGINFO *)&wndPtr->wExtra;
|
dlgInfo = (DIALOGINFO *)&wndPtr->wExtra;
|
||||||
|
|
||||||
dprintf_dialog(stddeb, "DefDlgProc: %d %04x %d %08x\n",
|
dprintf_dialog(stddeb, "DefDlgProc: %d %04x %d %08lx\n",
|
||||||
hwnd, msg, wParam, lParam );
|
hwnd, msg, wParam, lParam );
|
||||||
|
|
||||||
dlgInfo->msgResult = 0;
|
dlgInfo->msgResult = 0;
|
||||||
|
|
|
@ -260,7 +260,9 @@ HWND CreateDialogIndirectParam( HINSTANCE hInst, LPCSTR dlgTemplate,
|
||||||
|
|
||||||
if (template.header->style & DS_SETFONT)
|
if (template.header->style & DS_SETFONT)
|
||||||
{
|
{
|
||||||
hFont = CreateFont( template.pointSize, 0, 0, 0, FW_DONTCARE,
|
/* The font height must be negative as it is a point size */
|
||||||
|
/* (see CreateFont() documentation in the Windows SDK). */
|
||||||
|
hFont = CreateFont( -template.pointSize, 0, 0, 0, FW_DONTCARE,
|
||||||
FALSE, FALSE, FALSE, DEFAULT_CHARSET, 0, 0,
|
FALSE, FALSE, FALSE, DEFAULT_CHARSET, 0, 0,
|
||||||
DEFAULT_QUALITY, FF_DONTCARE, template.faceName );
|
DEFAULT_QUALITY, FF_DONTCARE, template.faceName );
|
||||||
if (hFont)
|
if (hFont)
|
||||||
|
@ -464,6 +466,16 @@ int DialogBoxIndirect( HINSTANCE hInst, HANDLE dlgTemplate,
|
||||||
return DialogBoxIndirectParam( hInst, dlgTemplate, owner, dlgProc, 0 );
|
return DialogBoxIndirectParam( hInst, dlgTemplate, owner, dlgProc, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* DialogBoxIndirectPtr
|
||||||
|
* like DialogBoxIndirect, but expects pointer to template
|
||||||
|
*/
|
||||||
|
int DialogBoxIndirectPtr( HINSTANCE hInst, LPCSTR dlgTemplate,
|
||||||
|
HWND owner, WNDPROC dlgProc)
|
||||||
|
{
|
||||||
|
return DialogBoxIndirectParamPtr(hInst, dlgTemplate, owner, dlgProc, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* DialogBoxIndirectParam (USER.240)
|
* DialogBoxIndirectParam (USER.240)
|
||||||
|
@ -481,6 +493,19 @@ int DialogBoxIndirectParam( HINSTANCE hInst, HANDLE dlgTemplate,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* DialogBoxIndirectParamPtr
|
||||||
|
* like DialogBoxIndirectParam, but expects pointer to template
|
||||||
|
*/
|
||||||
|
int DialogBoxIndirectParamPtr(HINSTANCE hInst,LPCSTR dlgTemplate,
|
||||||
|
HWND owner, WNDPROC dlgProc, LPARAM param)
|
||||||
|
{
|
||||||
|
HWND hwnd;
|
||||||
|
hwnd = CreateDialogIndirectParam( hInst, dlgTemplate, owner, dlgProc, param );
|
||||||
|
if (hwnd) return DIALOG_DoDialogBox( hwnd, owner );
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* EndDialog (USER.88)
|
* EndDialog (USER.88)
|
||||||
|
@ -672,7 +697,7 @@ WORD GetDlgItemInt( HWND hwnd, WORD id, BOOL * translated, BOOL fSigned )
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
HANDLE hText;
|
HANDLE hText;
|
||||||
long result;
|
long result = 0;
|
||||||
char * str;
|
char * str;
|
||||||
|
|
||||||
if (translated) *translated = FALSE;
|
if (translated) *translated = FALSE;
|
||||||
|
|
|
@ -478,12 +478,15 @@ static void EVENT_SelectionRequest( HWND hwnd, XSelectionRequestEvent *event )
|
||||||
if(event->selection!=XA_PRIMARY)rprop=None;
|
if(event->selection!=XA_PRIMARY)rprop=None;
|
||||||
else if(!IsClipboardFormatAvailable(CF_TEXT))rprop=None;
|
else if(!IsClipboardFormatAvailable(CF_TEXT))rprop=None;
|
||||||
else{
|
else{
|
||||||
/* don't open the clipboard, just get the data */
|
/* Don't worry if we can't open */
|
||||||
|
BOOL couldOpen=OpenClipboard(hwnd);
|
||||||
hText=GetClipboardData(CF_TEXT);
|
hText=GetClipboardData(CF_TEXT);
|
||||||
text=GlobalLock(hText);
|
text=GlobalLock(hText);
|
||||||
XChangeProperty(display,request,rprop,XA_STRING,
|
XChangeProperty(display,request,rprop,XA_STRING,
|
||||||
8,PropModeReplace,text,strlen(text));
|
8,PropModeReplace,text,strlen(text));
|
||||||
GlobalUnlock(hText);
|
GlobalUnlock(hText);
|
||||||
|
/* close only if we opened before */
|
||||||
|
if(couldOpen)CloseClipboard();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(rprop==None) dprintf_event(stddeb,"Request for %s ignored\n",
|
if(rprop==None) dprintf_event(stddeb,"Request for %s ignored\n",
|
||||||
|
|
|
@ -150,8 +150,6 @@ BOOL GRAPH_DrawArc( HDC hdc, int left, int top, int right, int bottom,
|
||||||
yend = YLPTODP( dc, yend );
|
yend = YLPTODP( dc, yend );
|
||||||
if ((left == right) || (top == bottom)) return FALSE;
|
if ((left == right) || (top == bottom)) return FALSE;
|
||||||
|
|
||||||
if (!DC_SetupGCForPen( dc )) return TRUE;
|
|
||||||
|
|
||||||
xcenter = (right + left) / 2;
|
xcenter = (right + left) / 2;
|
||||||
ycenter = (bottom + top) / 2;
|
ycenter = (bottom + top) / 2;
|
||||||
start_angle = atan2( (double)(ycenter-ystart)*(right-left),
|
start_angle = atan2( (double)(ycenter-ystart)*(right-left),
|
||||||
|
@ -164,6 +162,19 @@ BOOL GRAPH_DrawArc( HDC hdc, int left, int top, int right, int bottom,
|
||||||
if (left > right) swap_int( &left, &right );
|
if (left > right) swap_int( &left, &right );
|
||||||
if (top > bottom) swap_int( &top, &bottom );
|
if (top > bottom) swap_int( &top, &bottom );
|
||||||
|
|
||||||
|
/* Fill arc with brush if Chord() or Pie() */
|
||||||
|
|
||||||
|
if ((lines > 0) && DC_SetupGCForBrush( dc ))
|
||||||
|
{
|
||||||
|
XSetArcMode( display, dc->u.x.gc, (lines==1) ? ArcChord : ArcPieSlice);
|
||||||
|
XFillArc( display, dc->u.x.drawable, dc->u.x.gc,
|
||||||
|
dc->w.DCOrgX + left, dc->w.DCOrgY + top,
|
||||||
|
right-left-1, bottom-top-1, istart_angle, idiff_angle );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Draw arc and lines */
|
||||||
|
|
||||||
|
if (!DC_SetupGCForPen( dc )) return TRUE;
|
||||||
XDrawArc( display, dc->u.x.drawable, dc->u.x.gc,
|
XDrawArc( display, dc->u.x.drawable, dc->u.x.gc,
|
||||||
dc->w.DCOrgX + left, dc->w.DCOrgY + top,
|
dc->w.DCOrgX + left, dc->w.DCOrgY + top,
|
||||||
right-left-1, bottom-top-1, istart_angle, idiff_angle );
|
right-left-1, bottom-top-1, istart_angle, idiff_angle );
|
||||||
|
|
|
@ -286,7 +286,7 @@ LONG MDIMaximizeChild(HWND parent, HWND child, MDICLIENTINFO *ci)
|
||||||
LONG MDIRestoreChild(HWND parent, MDICLIENTINFO *ci)
|
LONG MDIRestoreChild(HWND parent, MDICLIENTINFO *ci)
|
||||||
{
|
{
|
||||||
HWND child;
|
HWND child;
|
||||||
WND *w = WIN_FindWndPtr(child);
|
WND *w = WIN_FindWndPtr(parent);
|
||||||
LPRECT lprect = &ci->rectRestore;
|
LPRECT lprect = &ci->rectRestore;
|
||||||
|
|
||||||
dprintf_mdi(stddeb,"restoring mdi child\n");
|
dprintf_mdi(stddeb,"restoring mdi child\n");
|
||||||
|
|
|
@ -11,7 +11,6 @@ static char Copyright[] = "Copyright Alexandre Julliard, 1994";
|
||||||
#include "message.h"
|
#include "message.h"
|
||||||
#include "sysmetrics.h"
|
#include "sysmetrics.h"
|
||||||
#include "user.h"
|
#include "user.h"
|
||||||
#include "scroll.h"
|
|
||||||
#include "syscolor.h"
|
#include "syscolor.h"
|
||||||
#include "stddebug.h"
|
#include "stddebug.h"
|
||||||
/* #define DEBUG_NONCLIENT /* */
|
/* #define DEBUG_NONCLIENT /* */
|
||||||
|
@ -20,7 +19,6 @@ static char Copyright[] = "Copyright Alexandre Julliard, 1994";
|
||||||
|
|
||||||
|
|
||||||
static HBITMAP hbitmapClose = 0;
|
static HBITMAP hbitmapClose = 0;
|
||||||
static HBITMAP hbitmapMDIClose = 0;
|
|
||||||
static HBITMAP hbitmapMinimize = 0;
|
static HBITMAP hbitmapMinimize = 0;
|
||||||
static HBITMAP hbitmapMinimizeD = 0;
|
static HBITMAP hbitmapMinimizeD = 0;
|
||||||
static HBITMAP hbitmapMaximize = 0;
|
static HBITMAP hbitmapMaximize = 0;
|
||||||
|
@ -73,6 +71,7 @@ extern WORD MENU_DrawMenuBar( HDC hDC, LPRECT lprect,
|
||||||
*/
|
*/
|
||||||
static void NC_AdjustRect( LPRECT rect, DWORD style, BOOL menu, DWORD exStyle )
|
static void NC_AdjustRect( LPRECT rect, DWORD style, BOOL menu, DWORD exStyle )
|
||||||
{
|
{
|
||||||
|
if (style & WS_ICONIC) return; /* Nothing to change for an icon */
|
||||||
if (HAS_DLGFRAME( style, exStyle ))
|
if (HAS_DLGFRAME( style, exStyle ))
|
||||||
InflateRect( rect, SYSMETRICS_CXDLGFRAME, SYSMETRICS_CYDLGFRAME );
|
InflateRect( rect, SYSMETRICS_CXDLGFRAME, SYSMETRICS_CYDLGFRAME );
|
||||||
else
|
else
|
||||||
|
@ -130,13 +129,6 @@ LONG NC_HandleNCCalcSize( HWND hwnd, NCCALCSIZE_PARAMS *params )
|
||||||
WND *wndPtr = WIN_FindWndPtr( hwnd );
|
WND *wndPtr = WIN_FindWndPtr( hwnd );
|
||||||
|
|
||||||
if (!wndPtr) return 0;
|
if (!wndPtr) return 0;
|
||||||
|
|
||||||
/*
|
|
||||||
* we don't want to change the size if hwnd is an icon since
|
|
||||||
* there are no window manager handles on an icon
|
|
||||||
*/
|
|
||||||
if(IsIconic(hwnd)) return 0;
|
|
||||||
|
|
||||||
NC_AdjustRect( &tmpRect, wndPtr->dwStyle, FALSE, wndPtr->dwExStyle );
|
NC_AdjustRect( &tmpRect, wndPtr->dwStyle, FALSE, wndPtr->dwExStyle );
|
||||||
params->rgrc[0].left -= tmpRect.left;
|
params->rgrc[0].left -= tmpRect.left;
|
||||||
params->rgrc[0].top -= tmpRect.top;
|
params->rgrc[0].top -= tmpRect.top;
|
||||||
|
@ -168,6 +160,8 @@ void NC_GetInsideRect( HWND hwnd, RECT *rect )
|
||||||
rect->right = wndPtr->rectWindow.right - wndPtr->rectWindow.left;
|
rect->right = wndPtr->rectWindow.right - wndPtr->rectWindow.left;
|
||||||
rect->bottom = wndPtr->rectWindow.bottom - wndPtr->rectWindow.top;
|
rect->bottom = wndPtr->rectWindow.bottom - wndPtr->rectWindow.top;
|
||||||
|
|
||||||
|
if (wndPtr->dwStyle & WS_ICONIC) return; /* No border to remove */
|
||||||
|
|
||||||
/* Remove frame from rectangle */
|
/* Remove frame from rectangle */
|
||||||
if (HAS_DLGFRAME( wndPtr->dwStyle, wndPtr->dwExStyle ))
|
if (HAS_DLGFRAME( wndPtr->dwStyle, wndPtr->dwExStyle ))
|
||||||
{
|
{
|
||||||
|
@ -331,10 +325,10 @@ void NC_DrawSysButton( HWND hwnd, HDC hdc, BOOL down )
|
||||||
RECT rect;
|
RECT rect;
|
||||||
WND *wndPtr = WIN_FindWndPtr( hwnd );
|
WND *wndPtr = WIN_FindWndPtr( hwnd );
|
||||||
NC_GetInsideRect( hwnd, &rect );
|
NC_GetInsideRect( hwnd, &rect );
|
||||||
GRAPH_DrawBitmap( hdc, (wndPtr->dwStyle & WS_CHILD) ?
|
GRAPH_DrawBitmap( hdc, hbitmapClose,
|
||||||
hbitmapMDIClose : hbitmapClose,
|
|
||||||
rect.left, rect.top,
|
rect.left, rect.top,
|
||||||
1, 1, SYSMETRICS_CXSIZE, SYSMETRICS_CYSIZE,
|
(wndPtr->dwStyle & WS_CHILD) ? SYSMETRICS_CXSIZE : 0, 0,
|
||||||
|
SYSMETRICS_CXSIZE, SYSMETRICS_CYSIZE,
|
||||||
down ? NOTSRCCOPY : SRCCOPY );
|
down ? NOTSRCCOPY : SRCCOPY );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -349,8 +343,8 @@ static void NC_DrawMaxButton( HWND hwnd, HDC hdc, BOOL down )
|
||||||
GRAPH_DrawBitmap( hdc, (IsZoomed(hwnd) ?
|
GRAPH_DrawBitmap( hdc, (IsZoomed(hwnd) ?
|
||||||
(down ? hbitmapRestoreD : hbitmapRestore) :
|
(down ? hbitmapRestoreD : hbitmapRestore) :
|
||||||
(down ? hbitmapMaximizeD : hbitmapMaximize)),
|
(down ? hbitmapMaximizeD : hbitmapMaximize)),
|
||||||
rect.right - SYSMETRICS_CXSIZE - 1, rect.top - 1,
|
rect.right - SYSMETRICS_CXSIZE - 1, rect.top,
|
||||||
0, 0, SYSMETRICS_CXSIZE+2, SYSMETRICS_CYSIZE+2, SRCCOPY );
|
0, 0, SYSMETRICS_CXSIZE+1, SYSMETRICS_CYSIZE, SRCCOPY );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -364,8 +358,8 @@ static void NC_DrawMinButton( HWND hwnd, HDC hdc, BOOL down )
|
||||||
NC_GetInsideRect( hwnd, &rect );
|
NC_GetInsideRect( hwnd, &rect );
|
||||||
if (wndPtr->dwStyle & WS_MAXIMIZEBOX) rect.right -= SYSMETRICS_CXSIZE + 1;
|
if (wndPtr->dwStyle & WS_MAXIMIZEBOX) rect.right -= SYSMETRICS_CXSIZE + 1;
|
||||||
GRAPH_DrawBitmap( hdc, (down ? hbitmapMinimizeD : hbitmapMinimize),
|
GRAPH_DrawBitmap( hdc, (down ? hbitmapMinimizeD : hbitmapMinimize),
|
||||||
rect.right - SYSMETRICS_CXSIZE - 1, rect.top - 1,
|
rect.right - SYSMETRICS_CXSIZE - 1, rect.top,
|
||||||
0, 0, SYSMETRICS_CXSIZE+2, SYSMETRICS_CYSIZE+2, SRCCOPY );
|
0, 0, SYSMETRICS_CXSIZE+1, SYSMETRICS_CYSIZE, SRCCOPY );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -489,8 +483,6 @@ static void NC_DrawCaption( HDC hdc, RECT *rect, HWND hwnd,
|
||||||
{
|
{
|
||||||
if (!(hbitmapClose = LoadBitmap( 0, MAKEINTRESOURCE(OBM_CLOSE) )))
|
if (!(hbitmapClose = LoadBitmap( 0, MAKEINTRESOURCE(OBM_CLOSE) )))
|
||||||
return;
|
return;
|
||||||
if (!(hbitmapMDIClose = LoadBitmap( 0, MAKEINTRESOURCE(OBM_OLD_CLOSE) )))
|
|
||||||
return;
|
|
||||||
hbitmapMinimize = LoadBitmap( 0, MAKEINTRESOURCE(OBM_REDUCE) );
|
hbitmapMinimize = LoadBitmap( 0, MAKEINTRESOURCE(OBM_REDUCE) );
|
||||||
hbitmapMinimizeD = LoadBitmap( 0, MAKEINTRESOURCE(OBM_REDUCED) );
|
hbitmapMinimizeD = LoadBitmap( 0, MAKEINTRESOURCE(OBM_REDUCED) );
|
||||||
hbitmapMaximize = LoadBitmap( 0, MAKEINTRESOURCE(OBM_ZOOM) );
|
hbitmapMaximize = LoadBitmap( 0, MAKEINTRESOURCE(OBM_ZOOM) );
|
||||||
|
@ -646,24 +638,24 @@ void NC_DoNCPaint( HWND hwnd, HRGN hrgn, BOOL active, BOOL suppress_menupaint )
|
||||||
if ((wndPtr->dwStyle & WS_HSCROLL) && (wndPtr->scroll_flags & 0x0001))
|
if ((wndPtr->dwStyle & WS_HSCROLL) && (wndPtr->scroll_flags & 0x0001))
|
||||||
bottom -= SYSMETRICS_CYHSCROLL;
|
bottom -= SYSMETRICS_CYHSCROLL;
|
||||||
SetRect(&rect2, rect.right - SYSMETRICS_CXVSCROLL,
|
SetRect(&rect2, rect.right - SYSMETRICS_CXVSCROLL,
|
||||||
rect.top, rect.right, bottom);
|
rect.top, rect.right+1, bottom+1);
|
||||||
StdDrawScrollBar(hwnd, hdc, SB_VERT, &rect2, (LPHEADSCROLL)wndPtr->VScroll);
|
StdDrawScrollBar(hwnd, hdc, SB_VERT, &rect2, wndPtr->VScroll);
|
||||||
}
|
}
|
||||||
if ((wndPtr->dwStyle & WS_HSCROLL) && wndPtr->HScroll != NULL &&
|
if ((wndPtr->dwStyle & WS_HSCROLL) && wndPtr->HScroll != NULL &&
|
||||||
(wndPtr->scroll_flags & 0x0002)) {
|
(wndPtr->scroll_flags & 0x0002)) {
|
||||||
int right = rect.right;
|
int right = rect.right;
|
||||||
if ((wndPtr->dwStyle & WS_VSCROLL) && (wndPtr->scroll_flags & 0x0001))
|
if ((wndPtr->dwStyle & WS_VSCROLL) && (wndPtr->scroll_flags & 0x0001))
|
||||||
right -= SYSMETRICS_CYVSCROLL;
|
right -= SYSMETRICS_CYVSCROLL;
|
||||||
SetRect(&rect2, rect.left, rect.bottom - SYSMETRICS_CYHSCROLL,
|
SetRect(&rect2, rect.left-1, rect.bottom - SYSMETRICS_CYHSCROLL,
|
||||||
right, rect.bottom);
|
right+1, rect.bottom+1);
|
||||||
StdDrawScrollBar(hwnd, hdc, SB_HORZ, &rect2, (LPHEADSCROLL)wndPtr->HScroll);
|
StdDrawScrollBar(hwnd, hdc, SB_HORZ, &rect2, wndPtr->HScroll);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((wndPtr->dwStyle & WS_VSCROLL) && (wndPtr->dwStyle & WS_HSCROLL) &&
|
if ((wndPtr->dwStyle & WS_VSCROLL) && (wndPtr->dwStyle & WS_HSCROLL) &&
|
||||||
(wndPtr->scroll_flags & 0x0003) == 0x0003) {
|
(wndPtr->scroll_flags & 0x0003) == 0x0003) {
|
||||||
RECT r = rect;
|
RECT r = rect;
|
||||||
r.left = r.right - SYSMETRICS_CXVSCROLL;
|
r.left = r.right - SYSMETRICS_CXVSCROLL + 1;
|
||||||
r.top = r.bottom - SYSMETRICS_CYHSCROLL;
|
r.top = r.bottom - SYSMETRICS_CYHSCROLL + 1;
|
||||||
FillRect( hdc, &r, sysColorObjects.hbrushScrollbar );
|
FillRect( hdc, &r, sysColorObjects.hbrushScrollbar );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -909,7 +901,11 @@ static void NC_DoSizeMove( HWND hwnd, WORD wParam, POINT pt )
|
||||||
|
|
||||||
if (GetCapture() != hwnd) SetCapture( hwnd );
|
if (GetCapture() != hwnd) SetCapture( hwnd );
|
||||||
|
|
||||||
if (wndPtr->dwStyle & WS_CHILD) hdc = GetDC( wndPtr->hwndParent );
|
if (wndPtr->dwStyle & WS_CHILD)
|
||||||
|
{
|
||||||
|
/* Retrieve a default cache DC (without using the window style) */
|
||||||
|
hdc = GetDCEx( wndPtr->hwndParent, 0, DCX_CACHE );
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{ /* Grab the server only when moving top-level windows without desktop */
|
{ /* Grab the server only when moving top-level windows without desktop */
|
||||||
hdc = GetDC( 0 );
|
hdc = GetDC( 0 );
|
||||||
|
@ -1262,8 +1258,10 @@ LONG NC_HandleSysCommand( HWND hwnd, WORD wParam, POINT pt )
|
||||||
|
|
||||||
case SC_SCREENSAVE:
|
case SC_SCREENSAVE:
|
||||||
if (wParam == SC_ABOUTWINE)
|
if (wParam == SC_ABOUTWINE)
|
||||||
DialogBox( hSysRes, MAKEINTRESOURCE(2),
|
{ extern char sysres_DIALOG_2[];
|
||||||
|
DialogBoxIndirectPtr( hSysRes, sysres_DIALOG_2,
|
||||||
hwnd, (WNDPROC)AboutWine_Proc );
|
hwnd, (WNDPROC)AboutWine_Proc );
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -66,7 +66,7 @@ BOOL ScrollDC(HDC hdc, short dx, short dy, LPRECT rc, LPRECT cliprc,
|
||||||
rc->left, rc->top, rc->right, rc->bottom);
|
rc->left, rc->top, rc->right, rc->bottom);
|
||||||
|
|
||||||
if (rc == NULL)
|
if (rc == NULL)
|
||||||
return;
|
return FALSE;
|
||||||
|
|
||||||
if (cliprc)
|
if (cliprc)
|
||||||
{
|
{
|
||||||
|
@ -100,7 +100,7 @@ BOOL ScrollDC(HDC hdc, short dx, short dy, LPRECT rc, LPRECT cliprc,
|
||||||
|
|
||||||
if (!BitBlt(hdc, dest.x, dest.y, width, height, hdc, src.x, src.y,
|
if (!BitBlt(hdc, dest.x, dest.y, width, height, hdc, src.x, src.y,
|
||||||
SRCCOPY))
|
SRCCOPY))
|
||||||
return;
|
return FALSE;
|
||||||
|
|
||||||
if (hrgnUpdate)
|
if (hrgnUpdate)
|
||||||
{
|
{
|
||||||
|
@ -124,6 +124,7 @@ BOOL ScrollDC(HDC hdc, short dx, short dy, LPRECT rc, LPRECT cliprc,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rcUpdate) GetRgnBox( hrgnUpdate, rcUpdate );
|
if (rcUpdate) GetRgnBox( hrgnUpdate, rcUpdate );
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,6 @@ static char Copyright[] = "Copyright Alexandre Julliard, 1993, 1994";
|
||||||
#include "user.h"
|
#include "user.h"
|
||||||
#include "dce.h"
|
#include "dce.h"
|
||||||
#include "sysmetrics.h"
|
#include "sysmetrics.h"
|
||||||
#include "scroll.h"
|
|
||||||
#include "icon.h"
|
#include "icon.h"
|
||||||
#include "cursor.h"
|
#include "cursor.h"
|
||||||
#include "stddebug.h"
|
#include "stddebug.h"
|
||||||
|
@ -40,7 +39,6 @@ extern HMENU CopySysMenu(); /* menu.c */
|
||||||
extern LONG MDIClientWndProc(HWND hwnd, WORD message,
|
extern LONG MDIClientWndProc(HWND hwnd, WORD message,
|
||||||
WORD wParam, LONG lParam); /* mdi.c */
|
WORD wParam, LONG lParam); /* mdi.c */
|
||||||
|
|
||||||
|
|
||||||
static HWND hwndDesktop = 0;
|
static HWND hwndDesktop = 0;
|
||||||
static HWND hWndSysModal = 0;
|
static HWND hWndSysModal = 0;
|
||||||
|
|
||||||
|
@ -230,7 +228,7 @@ BOOL WIN_CreateDesktopWindow()
|
||||||
HCLASS hclass;
|
HCLASS hclass;
|
||||||
CLASS *classPtr;
|
CLASS *classPtr;
|
||||||
|
|
||||||
if (!(hclass = CLASS_FindClassByName( DESKTOP_CLASS_NAME, &classPtr )))
|
if (!(hclass = CLASS_FindClassByName( DESKTOP_CLASS_NAME, 0, &classPtr )))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
hwndDesktop = USER_HEAP_ALLOC( GMEM_MOVEABLE,
|
hwndDesktop = USER_HEAP_ALLOC( GMEM_MOVEABLE,
|
||||||
|
@ -338,7 +336,7 @@ HWND CreateWindowEx( DWORD exStyle, LPSTR className, LPSTR windowName,
|
||||||
}
|
}
|
||||||
else if (style & WS_CHILD) return 0; /* WS_CHILD needs a parent */
|
else if (style & WS_CHILD) return 0; /* WS_CHILD needs a parent */
|
||||||
|
|
||||||
if (!(class = CLASS_FindClassByName( className, &classPtr ))) {
|
if (!(class = CLASS_FindClassByName( className, instance, &classPtr ))) {
|
||||||
fprintf(stderr,"CreateWindow BAD CLASSNAME '%s' !\n", className);
|
fprintf(stderr,"CreateWindow BAD CLASSNAME '%s' !\n", className);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -603,7 +601,7 @@ HWND FindWindow(LPSTR ClassMatch, LPSTR TitleMatch)
|
||||||
|
|
||||||
if (ClassMatch)
|
if (ClassMatch)
|
||||||
{
|
{
|
||||||
hclass = CLASS_FindClassByName( ClassMatch, &classPtr );
|
hclass = CLASS_FindClassByName( ClassMatch, 0xffff, &classPtr );
|
||||||
if (!hclass) return 0;
|
if (!hclass) return 0;
|
||||||
}
|
}
|
||||||
else hclass = 0;
|
else hclass = 0;
|
||||||
|
@ -731,7 +729,19 @@ LONG GetWindowLong( HWND hwnd, short offset )
|
||||||
{
|
{
|
||||||
case GWL_STYLE: return wndPtr->dwStyle;
|
case GWL_STYLE: return wndPtr->dwStyle;
|
||||||
case GWL_EXSTYLE: return wndPtr->dwExStyle;
|
case GWL_EXSTYLE: return wndPtr->dwExStyle;
|
||||||
case GWL_WNDPROC: return (LONG)wndPtr->lpfnWndProc;
|
case GWL_WNDPROC:
|
||||||
|
if (!IS_16_BIT_ADDRESS(wndPtr->lpfnWndProc))
|
||||||
|
{
|
||||||
|
/* The window procedure is part of Wine.
|
||||||
|
Unfortunately, MS-Windows programs can't access these
|
||||||
|
adresses.
|
||||||
|
FIXME: There should be a jump table somewhere in if1632
|
||||||
|
*/
|
||||||
|
long x=Stack16Frame[11]<<16 | 0x0010;
|
||||||
|
/* Just to make Borland's OWL happy */
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
else return (LONG)wndPtr->lpfnWndProc;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue