Patch level : 1.32
Files correlati : Tutti Ricompilazione Demo : [ ] Commento : Hello 32 bits world! git-svn-id: svn://10.65.10.50/trunk@10098 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
bf0690bda0
commit
b3b79ff0d8
37
xvaga/agasys.cpp
Executable file
37
xvaga/agasys.cpp
Executable file
@ -0,0 +1,37 @@
|
||||
#include "wxinc.h"
|
||||
#include "xvt.h"
|
||||
|
||||
BOOLEAN aga_get_host_name(char* name, int maxlen)
|
||||
{
|
||||
wxString str = wxGetHostName();
|
||||
const int len = str.Length();
|
||||
strncpy(name, str, maxlen);
|
||||
name[maxlen-1] = '\0';
|
||||
return len > 0;
|
||||
}
|
||||
|
||||
BOOLEAN aga_get_user_name(char* name, int maxlen)
|
||||
{
|
||||
wxString str = wxGetUserId();
|
||||
str.MakeUpper();
|
||||
const int len = str.Length();
|
||||
strncpy(name, str, maxlen);
|
||||
name[maxlen-1] = '\0';
|
||||
return len > 0;
|
||||
}
|
||||
|
||||
void aga_log(const char* fmt, ...)
|
||||
{
|
||||
static bool bStarted = false;
|
||||
FILE* log = fopen("aga.log", bStarted ? "a" : "w");
|
||||
|
||||
va_list argptr;
|
||||
va_start(argptr,fmt);
|
||||
vfprintf(log, fmt, argptr);
|
||||
va_end(argptr);
|
||||
fprintf(log, "\n");
|
||||
|
||||
fclose(log);
|
||||
bStarted = true;
|
||||
}
|
||||
|
8
xvaga/agasys.h
Executable file
8
xvaga/agasys.h
Executable file
@ -0,0 +1,8 @@
|
||||
#ifndef __AGASYS_H__
|
||||
#define __AGASYS_H__
|
||||
|
||||
BOOLEAN aga_get_user_name(char* name, int maxlen);
|
||||
BOOLEAN aga_get_host_name(char* name, int maxlen);
|
||||
void aga_log(const char* fmt, ...);
|
||||
|
||||
#endif
|
177
xvaga/oswin32.cpp
Executable file
177
xvaga/oswin32.cpp
Executable file
@ -0,0 +1,177 @@
|
||||
#include "wxinc.h"
|
||||
|
||||
#include "oswin32.h"
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#define WIN32_EXTRA_LEAN
|
||||
#define STRICT
|
||||
#include <windows.h>
|
||||
#include <winspool.h>
|
||||
|
||||
bool OsWin32_CheckPrinterInfo(const void* data)
|
||||
{
|
||||
bool ok = data != NULL;
|
||||
if (ok)
|
||||
{
|
||||
LPDEVMODE pdm = (LPDEVMODE)data;
|
||||
const int s = pdm->dmSize + pdm->dmDriverExtra;
|
||||
ok = s > 0;
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
void* OsWin32_ConvertFromNativePrinterInfo(void* hGlobal)
|
||||
{
|
||||
void* data = new char[1024]; memset(data, 0, 1024);
|
||||
void* ptr = ::GlobalLock(hGlobal);
|
||||
PDEVMODE dm = (PDEVMODE)ptr;
|
||||
const int size = dm->dmSize+dm->dmDriverExtra;
|
||||
memcpy(data, ptr, size);
|
||||
::GlobalUnlock(hGlobal);
|
||||
return data;
|
||||
}
|
||||
|
||||
void* OsWin32_ConvertToNativePrinterInfo(void* data)
|
||||
{
|
||||
HGLOBAL hGlobal = ::GlobalAlloc(GHND, 1024);
|
||||
void* ptr = ::GlobalLock(hGlobal);
|
||||
memcpy(ptr, data, 1024);
|
||||
::GlobalUnlock(hGlobal);
|
||||
return hGlobal;
|
||||
}
|
||||
|
||||
#include <math.h>
|
||||
|
||||
struct XvtData
|
||||
{
|
||||
char** families;
|
||||
long* sizes;
|
||||
short* scalable;
|
||||
long max_count;
|
||||
|
||||
long cur_count;
|
||||
|
||||
XvtData() { memset(this, 0, sizeof(XvtData)); }
|
||||
};
|
||||
|
||||
int CALLBACK FamilyEnumerator(
|
||||
const LOGFONT *plf, // pointer to logical-font data
|
||||
const TEXTMETRIC *lpntme, // pointer to physical-font data
|
||||
unsigned long FontType, // type of font
|
||||
LPARAM lParam // application-defined data
|
||||
)
|
||||
{
|
||||
XvtData* d = (XvtData*)lParam;
|
||||
d->families[d->cur_count++] = strdup(plf->lfFaceName);
|
||||
return d->cur_count < d->max_count;
|
||||
}
|
||||
|
||||
int CALLBACK SizeEnumerator(
|
||||
const LOGFONT *plf, // pointer to logical-font data
|
||||
const TEXTMETRIC *lpntme, // pointer to physical-font data
|
||||
unsigned long FontType, // type of font
|
||||
LPARAM lParam // application-defined data
|
||||
)
|
||||
{
|
||||
XvtData* d = (XvtData*)lParam;
|
||||
long& i = d->cur_count;
|
||||
const int size = (plf->lfHeight+5) / 10;
|
||||
if (i == 0 || size > d->sizes[i-1])
|
||||
{
|
||||
d->sizes[i] = size;
|
||||
*d->scalable = (plf->lfPitchAndFamily & VARIABLE_PITCH) != 0;
|
||||
i++;
|
||||
}
|
||||
return i < d->max_count;
|
||||
}
|
||||
|
||||
int FamilySorter(const void* p1,const void* p2)
|
||||
{
|
||||
const char* s1 = *(const char**)p1;
|
||||
const char* s2 = *(const char**)p2;
|
||||
return strcmp(s1, s2);
|
||||
}
|
||||
|
||||
int OsWin32_EnumerateFamilies(unsigned int hDC, char** families, int max_count)
|
||||
{
|
||||
XvtData data;
|
||||
data.families = families;
|
||||
data.max_count = max_count;
|
||||
LOGFONT lf; memset(&lf, 0, sizeof(lf));
|
||||
::EnumFontFamiliesEx((HDC)hDC, &lf, FamilyEnumerator, (LPARAM)&data, 0);
|
||||
qsort(families, data.cur_count, sizeof(char*), FamilySorter);
|
||||
return data.cur_count;
|
||||
}
|
||||
|
||||
int OsWin32_EnumerateSizes(unsigned int hDC, const char* name, long* sizes, short* scalable, int max_count)
|
||||
{
|
||||
XvtData data;
|
||||
data.sizes = sizes;
|
||||
data.scalable = scalable;
|
||||
data.max_count = max_count;
|
||||
LOGFONT lf; memset(&lf, 0, sizeof(lf));
|
||||
strcpy(lf.lfFaceName, name);
|
||||
::EnumFontFamiliesEx((HDC)hDC, &lf, SizeEnumerator, (LPARAM)&data, 0);
|
||||
|
||||
return data.cur_count;
|
||||
}
|
||||
|
||||
int OsWin32_GetDefaultPrinterInfo(void* data, int max_size)
|
||||
{
|
||||
char name[80];
|
||||
if (GetProfileString ("windows", "device", ",,,", name, sizeof(name)) == 0)
|
||||
return 0;
|
||||
char* comma = strchr(name, ',');
|
||||
if (comma) *comma = '\0';
|
||||
|
||||
LPDEVMODE pdm = (LPDEVMODE)data;
|
||||
HANDLE hPrinter;
|
||||
if (::OpenPrinter(name, &hPrinter, NULL) == 0)
|
||||
return 0;
|
||||
|
||||
::DocumentProperties(0, hPrinter, name, pdm, NULL, DM_OUT_BUFFER);
|
||||
::ClosePrinter(hPrinter);
|
||||
|
||||
const int size = pdm->dmSize + pdm->dmDriverExtra;
|
||||
return size;
|
||||
}
|
||||
|
||||
void OsWin32_SetCaptionStyle(unsigned int handle, bool set)
|
||||
{
|
||||
HWND hwnd = (HWND)handle;
|
||||
DWORD s = ::GetWindowLong(hwnd, GWL_STYLE);
|
||||
if (set)
|
||||
s |= WS_CAPTION;
|
||||
else
|
||||
s &= ~WS_CAPTION;
|
||||
#if !wxCHECK_VERSION(2,3,2)
|
||||
s |= WS_CLIPSIBLINGS;
|
||||
#endif
|
||||
::SetWindowLong(hwnd, GWL_STYLE, s);
|
||||
}
|
||||
|
||||
void OsWin32_SetClippingRect(unsigned int hDC, int x, int y, int w, int h)
|
||||
{
|
||||
HDC hdc = (HDC)hDC;
|
||||
if (w > 0 && h > 0)
|
||||
{
|
||||
HRGN hrgn = ::CreateRectRgn(x, y, x+w, y+h);
|
||||
::SelectClipRgn(hdc, hrgn);
|
||||
::DeleteObject(hrgn);
|
||||
}
|
||||
else
|
||||
::SelectClipRgn(hdc, NULL);
|
||||
}
|
||||
|
||||
void OsWin32_StretchBlt(unsigned int hDst, int xd, int yd, int wd, int hd,
|
||||
unsigned int hSrc, int xs, int ys, int ws, int hs)
|
||||
{
|
||||
::StretchBlt((HDC)hDst, xd, yd, wd, hd, (HDC)hSrc, xs, ys, ws, hs, SRCCOPY);
|
||||
}
|
||||
|
||||
void OsWin32_UpdateWindow(unsigned int handle)
|
||||
{
|
||||
HWND hwnd = (HWND)handle;
|
||||
::UpdateWindow(hwnd);
|
||||
}
|
||||
|
12
xvaga/oswin32.h
Executable file
12
xvaga/oswin32.h
Executable file
@ -0,0 +1,12 @@
|
||||
bool OsWin32_CheckPrinterInfo(const void* data);
|
||||
void* OsWin32_ConvertFromNativePrinterInfo(void* hGlobal);
|
||||
void* OsWin32_ConvertToNativePrinterInfo(void* data);
|
||||
int OsWin32_EnumerateFamilies(unsigned int hDC, char** families, int max_count);
|
||||
int OsWin32_EnumerateSizes(unsigned int hDC, const char* name, long* sizes, short* scalable, int max_count);
|
||||
void OsWin32_SetCaptionStyle(unsigned int handle, bool set);
|
||||
int OsWin32_GetDefaultPrinterInfo(void* data, int max_size);
|
||||
void OsWin32_SetClippingRect(unsigned int hDC, int x, int y, int w, int h);
|
||||
void OsWin32_StretchBlt(unsigned int hDst, int xd, int yd, int wd, int hd,
|
||||
unsigned int hSrc, int xs, int ys, int ws, int hs);
|
||||
void OsWin32_UpdateWindow(unsigned int handle);
|
||||
|
45
xvaga/statbar.h
Executable file
45
xvaga/statbar.h
Executable file
@ -0,0 +1,45 @@
|
||||
/* STATBAR.H for dynamic custom control for XVT/Design 2.01
|
||||
|
||||
$Revision: 1.1 $ $Author: guy $ $Date: 2002-02-28 14:26:20 $
|
||||
|
||||
This code was written by Christopher Williamson,
|
||||
May be distributed in object form only when embedded in a
|
||||
registered XVT user's application.
|
||||
Copyright 1993-1994, XVT Software Inc., All Rights Reserved.
|
||||
*/
|
||||
#ifndef STATBAR_H
|
||||
#define STATBAR_H
|
||||
|
||||
#if defined(_cplusplus) || defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* internal constants for sizing arrays, defaults, etc... */
|
||||
#define STATBAR_MAX_LEN 256 /* maximum length of status bar string */
|
||||
#define STATBAR_MAX_NUM 128 /* maximum number of status bars in an app */
|
||||
#if ( (XVTWS==MACWS) || (XVTWS==MTFWS) || (XVTWS==XOLWS) )
|
||||
#define STATBAR_FONT_SIZE 12 /* default font size on Mac/XM/XOL */
|
||||
#else
|
||||
#define STATBAR_FONT_SIZE 10 /* default font size on Windows/PM/NT/CH */
|
||||
#endif
|
||||
|
||||
/* the following CIS functions are external and may be called by the app */
|
||||
const char *statbar_set_title(WINDOW win, const char *text);
|
||||
const char *statbar_set_default_title(WINDOW win, const char *text);
|
||||
|
||||
/* the following CIS functions are external and are usable in all font modes */
|
||||
|
||||
XVT_FNTID statbar_set_fontid(WINDOW win, XVT_FNTID fontid);
|
||||
XVT_FNTID statbar_get_fontid(WINDOW win, XVT_FNTID fontid);
|
||||
|
||||
/* the event handler and create function for statbar */
|
||||
extern WINDOW statbar_create
|
||||
(int cid, int left, int top, int right, int bottom,
|
||||
int prop_count, char **prop_list, WINDOW parent_win,
|
||||
int parent_rid, long parent_flags, char *parent_class);
|
||||
|
||||
#if defined(_cplusplus) || defined(__cplusplus)
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* STATBAR_H */
|
17
xvaga/wxinc.h
Executable file
17
xvaga/wxinc.h
Executable file
@ -0,0 +1,17 @@
|
||||
// Evito di mettere nei settaggi di tutti i progetti questa sequela di #define
|
||||
#ifndef __WXINC_H__
|
||||
#define __WXINC_H__
|
||||
|
||||
#ifdef WIN32
|
||||
#define __WINDOWS__
|
||||
#define __WXMSW__
|
||||
#define __WIN95__
|
||||
#define __WIN32__
|
||||
#define WINVER 0x0400
|
||||
#define STRICT
|
||||
#endif
|
||||
|
||||
#include "wx/wx.h"
|
||||
|
||||
#endif
|
||||
|
3189
xvaga/xvaga.cpp
Executable file
3189
xvaga/xvaga.cpp
Executable file
File diff suppressed because it is too large
Load Diff
163
xvaga/xvaga.dsp
Executable file
163
xvaga/xvaga.dsp
Executable file
@ -0,0 +1,163 @@
|
||||
# Microsoft Developer Studio Project File - Name="xvaga" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Static Library" 0x0104
|
||||
|
||||
CFG=xvaga - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "Xvaga.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "Xvaga.mak" CFG="xvaga - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "xvaga - Win32 Release" (based on "Win32 (x86) Static Library")
|
||||
!MESSAGE "xvaga - Win32 Debug" (based on "Win32 (x86) Static Library")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "xvaga - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Target_Dir ""
|
||||
WxLib32=link.exe -lib
|
||||
AgaLibWx=link.exe -lib
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
|
||||
# ADD CPP /nologo /MD /W3 /Zi /O2 /I "c:\wx229\include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x410 /d "NDEBUG"
|
||||
# ADD RSC /l 0x410 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo
|
||||
|
||||
!ELSEIF "$(CFG)" == "xvaga - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Target_Dir ""
|
||||
WxLib32=link.exe -lib
|
||||
AgaLibWx=link.exe -lib
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "c:\wx229\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FR /FD /GZ /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE RSC /l 0x410 /d "_DEBUG"
|
||||
# ADD RSC /l 0x410 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo /out:"\u\guy\v32\lib\Debug\xvagad.lib"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "xvaga - Win32 Release"
|
||||
# Name "xvaga - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\agasys.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\oswin32.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\xvaga.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\xvtextra.cpp
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\agasys.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\oswin32.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\wxinc.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\xvintern.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\Xvt.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\xvtextra.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\wx229\lib\wxd.lib
|
||||
|
||||
!IF "$(CFG)" == "xvaga - Win32 Release"
|
||||
|
||||
# PROP Exclude_From_Build 1
|
||||
|
||||
!ELSEIF "$(CFG)" == "xvaga - Win32 Debug"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\wx229\lib\wx.lib
|
||||
|
||||
!IF "$(CFG)" == "xvaga - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "xvaga - Win32 Debug"
|
||||
|
||||
# PROP Exclude_From_Build 1
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
84
xvaga/xvintern.h
Executable file
84
xvaga/xvintern.h
Executable file
@ -0,0 +1,84 @@
|
||||
#ifndef __XVINTERN_H
|
||||
#define __XVINTERN_H
|
||||
|
||||
const WINDOW _print_win = 883L;
|
||||
|
||||
class TFontId
|
||||
{
|
||||
wxString m_strFace;
|
||||
int m_nSize;
|
||||
XVT_FONT_STYLE_MASK m_wMask;
|
||||
WINDOW m_win;
|
||||
|
||||
protected:
|
||||
void Copy(const TFontId& pFont);
|
||||
bool IsEqual(const TFontId& pFont) const;
|
||||
|
||||
public:
|
||||
void SetWin(WINDOW w) { m_win = w; }
|
||||
WINDOW Win() const { return m_win; }
|
||||
|
||||
void SetPointSize(int s) { m_nSize = s; }
|
||||
int PointSize() const { return m_nSize; }
|
||||
|
||||
void SetMask(XVT_FONT_STYLE_MASK mask) { m_wMask = mask; }
|
||||
XVT_FONT_STYLE_MASK Mask() const { return m_wMask; }
|
||||
int Style() const;
|
||||
bool Underline() const;
|
||||
|
||||
void SetFaceName(const char* f) { m_strFace = f; }
|
||||
const char* FaceName() const;
|
||||
int Family() const;
|
||||
|
||||
void Copy(const wxFont& rFont);
|
||||
wxFont& Font() const;
|
||||
|
||||
TFontId& operator=(const TFontId& f) { Copy(f); return *this; }
|
||||
bool operator==(const TFontId& f) const { return IsEqual(f); }
|
||||
bool operator!=(const TFontId& f) const { return !IsEqual(f); }
|
||||
|
||||
TFontId() : m_win(NULL_WIN), m_nSize(0), m_wMask(0) { }
|
||||
TFontId(const TFontId& f) : m_win(NULL_WIN) { Copy(f); }
|
||||
};
|
||||
|
||||
class TDC : public wxObject
|
||||
{
|
||||
wxWindow* _owner;
|
||||
|
||||
protected:
|
||||
wxDC* _dc;
|
||||
RCT _clip;
|
||||
|
||||
DRAW_CTOOLS _real_dct;
|
||||
TFontId _real_font;
|
||||
|
||||
bool PenChanged() const;
|
||||
bool BrushChanged() const;
|
||||
bool FontChanged() const;
|
||||
|
||||
public:
|
||||
DRAW_CTOOLS _dct;
|
||||
TFontId _font;
|
||||
int _dirty; // false = 0, true = 1, very_dirty = -1;
|
||||
|
||||
|
||||
wxPoint _pnt;
|
||||
|
||||
void SetClippingBox(const RCT* pRct);
|
||||
bool GetClippingBox(RCT* pRct) const;
|
||||
|
||||
virtual wxDC& GetDC(bool bPaint = false);
|
||||
void KillDC();
|
||||
TDC(wxWindow* owner);
|
||||
virtual ~TDC();
|
||||
};
|
||||
|
||||
class TPrintDC : public TDC
|
||||
{
|
||||
public:
|
||||
virtual wxDC& GetDC(bool);
|
||||
TPrintDC(wxWindow* owner);
|
||||
virtual ~TPrintDC();
|
||||
};
|
||||
|
||||
#endif
|
254
xvaga/xvt.h
Executable file
254
xvaga/xvt.h
Executable file
@ -0,0 +1,254 @@
|
||||
#ifndef XVT_INCL_XVT
|
||||
#define XVT_INCL_XVT
|
||||
|
||||
#ifdef XVT_INCL_NATIVE
|
||||
|
||||
#ifdef WIN32
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#define WIN32_EXTRA_LEAN
|
||||
#define STRICT
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#define XVAGA 1
|
||||
|
||||
#include <ctype.h>
|
||||
#include <io.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "xvt_env.h"
|
||||
#include "xvt_defs.h"
|
||||
#include "xvt_help.h"
|
||||
#include "xvt_menu.h"
|
||||
#include "xvt_type.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int xvt_main(int argc, char** argv);
|
||||
|
||||
void xvt_app_allow_quit(void);
|
||||
void xvt_app_create(int argc, char **argv, unsigned long flags, EVENT_HANDLER eh, XVT_CONFIG *config);
|
||||
void xvt_app_destroy(void);
|
||||
BOOLEAN xvt_app_escape(int esc_code, PRINT_RCD*, long* ph, long* pw, long* pvr, long* phr);
|
||||
void xvt_app_process_pending_events(void);
|
||||
|
||||
char* xvt_cb_alloc_data(long size);
|
||||
BOOLEAN xvt_cb_close(void);
|
||||
void xvt_cb_free_data(void);
|
||||
char* xvt_cb_get_data(CB_FORMAT cbfmt, char *name, long *sizep);
|
||||
BOOLEAN xvt_cb_has_format(CB_FORMAT fmt, char *name);
|
||||
BOOLEAN xvt_cb_open(BOOLEAN writing);
|
||||
BOOLEAN xvt_cb_put_data(CB_FORMAT cbfmt, char *name, long size, PICTURE pic);
|
||||
|
||||
void xvt_ctl_check_radio_button(WINDOW Win, WINDOW* Wins, int NbrWindows);
|
||||
WINDOW xvt_ctl_create_def(WIN_DEF *win_def_p, WINDOW parent_win, long app_data);
|
||||
void xvt_ctl_set_checked(WINDOW Win, BOOLEAN Check);
|
||||
|
||||
void xvt_debug_printf(const char* fmt, const char* str);
|
||||
|
||||
ASK_RESPONSE xvt_dm_post_ask(const char* Btn1, const char*Btn2, const char* Btn3, const char* xin_buffer);
|
||||
void xvt_dm_post_error(char *fmt);
|
||||
void xvt_dm_post_fatal_exit(char *fmt);
|
||||
FL_STATUS xvt_dm_post_file_open(FILE_SPEC *fsp, char *msg);
|
||||
FL_STATUS xvt_dm_post_file_save(FILE_SPEC *fsp, char *msg);
|
||||
BOOLEAN xvt_dm_post_font_sel(WINDOW win, XVT_FNTID font_id, PRINT_RCD *precp, unsigned long reserved);
|
||||
void xvt_dm_post_note(char *fmt);
|
||||
BOOLEAN xvt_dm_post_page_setup(PRINT_RCD *precp);
|
||||
char* xvt_dm_post_string_prompt(const char* message, char* response, int response_len);
|
||||
|
||||
void xvt_dwin_clear(WINDOW win, COLOR col);
|
||||
void xvt_dwin_draw_arc(WINDOW Win, RCT* r, int sx, int sy, int ex, int ey);
|
||||
void xvt_dwin_draw_icon(WINDOW win, int x, int y, int rid);
|
||||
void xvt_dwin_draw_image(WINDOW win, XVT_IMAGE image, RCT* dest, RCT* source);
|
||||
void xvt_dwin_draw_oval(WINDOW Win, RCT* r);
|
||||
void xvt_dwin_draw_pie(WINDOW win, RCT *rctp, int start_x, int start_y, int stop_x, int stop_y);
|
||||
void xvt_dwin_draw_polygon(WINDOW win, PNT *lpnts, int npnts);
|
||||
void xvt_dwin_draw_rect(WINDOW win, RCT *rctp);
|
||||
void xvt_dwin_draw_set_pos(WINDOW win, PNT pnt);
|
||||
void xvt_dwin_draw_text(WINDOW win, int x, int y, char *s, int len);
|
||||
RCT* xvt_dwin_get_clip(WINDOW win, RCT* rct);
|
||||
DRAW_CTOOLS* xvt_dwin_get_draw_ctools(WINDOW win, DRAW_CTOOLS *ctoolsp);
|
||||
XVT_FNTID xvt_dwin_get_font(WINDOW win);
|
||||
void xvt_dwin_get_font_metrics(WINDOW win, int *leadingp, int *ascentp, int *descentp);
|
||||
long xvt_dwin_get_font_size_mapped(WINDOW win);
|
||||
int xvt_dwin_get_text_width(WINDOW win, char *s, int len);
|
||||
void xvt_dwin_invalidate_rect(WINDOW win, RCT *rctp);
|
||||
BOOLEAN xvt_dwin_is_update_needed(WINDOW Win, RCT* rctp);
|
||||
void xvt_dwin_scroll_rect(WINDOW win, RCT *rctp, int dh, int dv);
|
||||
void xvt_dwin_set_back_color(WINDOW win, COLOR color);
|
||||
void xvt_dwin_set_cbrush(WINDOW win, CBRUSH* cbrush);
|
||||
void xvt_dwin_set_clip(WINDOW win, RCT* rct);
|
||||
void xvt_dwin_set_cpen(WINDOW win, CPEN* cpen);
|
||||
void xvt_dwin_set_draw_ctools(WINDOW win, DRAW_CTOOLS* xct);
|
||||
void xvt_dwin_set_draw_mode(WINDOW win, DRAW_MODE mode);
|
||||
void xvt_dwin_set_font(WINDOW win, XVT_FNTID font_id);
|
||||
void xvt_dwin_set_fore_color(WINDOW win, COLOR color);
|
||||
void xvt_dwin_set_std_cpen(WINDOW win, long flag);
|
||||
void xvt_dwin_draw_line(WINDOW win, PNT pnt);
|
||||
void xvt_dwin_update(WINDOW Win);
|
||||
|
||||
XVT_ERRSEV xvt_errmsg_get_sev_id(XVT_ERRMSG err);
|
||||
|
||||
long xvt_fmap_get_family_sizes(PRINT_RCD *precp, char *family, long *size_array, BOOLEAN *scalable, long max_sizes);
|
||||
long xvt_fmap_get_families(PRINT_RCD *precp, char **family_array, long max_families);
|
||||
|
||||
void xvt_font_copy(XVT_FNTID dest_font_id, XVT_FNTID src_font_id, XVT_FONT_ATTR_MASK mask);
|
||||
XVT_FNTID xvt_font_create(void);
|
||||
void xvt_font_deserialize(XVT_FNTID font_id, char *buf);
|
||||
void xvt_font_destroy(XVT_FNTID font_id);
|
||||
BOOLEAN xvt_font_get_family(XVT_FNTID font_id, char* buf, long max_buf);
|
||||
BOOLEAN xvt_font_get_family_mapped(XVT_FNTID font_id, char* buf, long max_buf);
|
||||
void xvt_font_get_metrics(XVT_FNTID font_id, int *leadingp, int *ascentp, int *descentp);
|
||||
BOOLEAN xvt_font_get_native_desc(XVT_FNTID font_id, char *buf, long max_buf);
|
||||
long xvt_font_get_size(XVT_FNTID font_id);
|
||||
XVT_FONT_STYLE_MASK xvt_font_get_style(XVT_FNTID font_id);
|
||||
WINDOW xvt_font_get_win(XVT_FNTID font_id);
|
||||
BOOLEAN xvt_font_is_mapped(XVT_FNTID font_id);
|
||||
void xvt_font_map(XVT_FNTID font_id, WINDOW font_win );
|
||||
void xvt_font_map_using_default(XVT_FNTID font_id);
|
||||
void xvt_font_set_family(XVT_FNTID font_id, char* family);
|
||||
void xvt_font_set_size(XVT_FNTID font_id, long size);
|
||||
void xvt_font_set_style(XVT_FNTID font_id, XVT_FONT_STYLE_MASK mask);
|
||||
long xvt_font_serialize(XVT_FNTID font_id, char *buf, long max_buf);
|
||||
void xvt_font_unmap(XVT_FNTID font_id);
|
||||
|
||||
BOOLEAN xvt_fsys_convert_dir_to_str(DIRECTORY *dirp, char *path, int sz_path);
|
||||
BOOLEAN xvt_fsys_convert_str_to_dir(const char *path, DIRECTORY *dirp);
|
||||
BOOLEAN xvt_fsys_get_dir(DIRECTORY *dirp);
|
||||
void xvt_fsys_get_default_dir(DIRECTORY *dirp);
|
||||
SLIST xvt_fsys_list_files(char *type, char *pat, BOOLEAN dirs);
|
||||
void xvt_fsys_restore_dir();
|
||||
void xvt_fsys_save_dir();
|
||||
BOOLEAN xvt_fsys_set_dir(DIRECTORY *dirp);
|
||||
|
||||
XVT_IMAGE xvt_image_create(XVT_IMAGE_FORMAT format, short width, short height, long reserved);
|
||||
void xvt_image_destroy(XVT_IMAGE image);
|
||||
COLOR xvt_image_get_clut(XVT_IMAGE image, short index);
|
||||
void xvt_image_get_dimensions(XVT_IMAGE image, short *width, short *height);
|
||||
XVT_IMAGE_FORMAT xvt_image_get_format(XVT_IMAGE image);
|
||||
short xvt_image_get_ncolors(XVT_IMAGE image);
|
||||
COLOR xvt_image_get_pixel(XVT_IMAGE image, short x, short y);
|
||||
XVT_IMAGE xvt_image_read(const char *filenamep);
|
||||
XVT_IMAGE xvt_image_read_bmp(const char *filenamep);
|
||||
void xvt_image_set_clut(XVT_IMAGE image, short index, COLOR color);
|
||||
void xvt_image_set_ncolors(XVT_IMAGE image, short ncolors);
|
||||
void xvt_image_set_pixel(XVT_IMAGE image, short x, short y, COLOR color);
|
||||
void xvt_image_transfer(XVT_IMAGE dstimage, XVT_IMAGE srcimage, RCT *dstrctp, RCT *srcrctp);
|
||||
|
||||
DATA_PTR xvt_mem_alloc(size_t size);
|
||||
void xvt_mem_free(DATA_PTR p);
|
||||
DATA_PTR xvt_mem_realloc(DATA_PTR p, size_t size);
|
||||
DATA_PTR xvt_mem_rep(DATA_PTR dst, DATA_PTR src, unsigned int srclen, long reps);
|
||||
DATA_PTR xvt_mem_zalloc(size_t size);
|
||||
|
||||
MENU_ITEM* xvt_menu_get_tree(WINDOW win);
|
||||
void xvt_menu_set_font_sel(WINDOW win, XVT_FNTID font_id);
|
||||
void xvt_menu_set_item_checked(WINDOW win, MENU_TAG tag, BOOLEAN check);
|
||||
void xvt_menu_set_item_enabled(WINDOW win, MENU_TAG tag, BOOLEAN enable);
|
||||
void xvt_menu_set_item_title(WINDOW win, MENU_TAG tag, char* text);
|
||||
void xvt_menu_set_tree(WINDOW win, MENU_ITEM* tree);
|
||||
void xvt_menu_update(WINDOW win);
|
||||
|
||||
short xvt_palet_add_colors(XVT_PALETTE palet, COLOR *colorsp, short numcolors);
|
||||
short xvt_palet_add_colors_from_image(XVT_PALETTE palet, XVT_IMAGE image);
|
||||
XVT_PALETTE xvt_palet_create(XVT_PALETTE_TYPE type, XVT_PALETTE_ATTR reserved);
|
||||
void xvt_palet_destroy(XVT_PALETTE palet);
|
||||
short xvt_palet_get_colors(XVT_PALETTE palet, COLOR *colorsp, short maxcolors);
|
||||
short xvt_palet_get_ncolors(XVT_PALETTE palet);
|
||||
int xvt_palet_get_tolerance(XVT_PALETTE p);
|
||||
void xvt_palet_set_tolerance(XVT_PALETTE p, int t);
|
||||
|
||||
void xvt_print_close(void);
|
||||
BOOLEAN xvt_print_close_page(PRINT_RCD *precp);
|
||||
PRINT_RCD* xvt_print_create(int *sizep);
|
||||
WINDOW xvt_print_create_win(PRINT_RCD *precp, char *title);
|
||||
void xvt_print_destroy(PRINT_RCD *precp);
|
||||
RCT* xvt_print_get_next_band(void);
|
||||
BOOLEAN xvt_print_is_valid(PRINT_RCD *precp);
|
||||
BOOLEAN xvt_print_open(void);
|
||||
BOOLEAN xvt_print_start_thread (BOOLEAN (* print_fcn)(long), long data);
|
||||
BOOLEAN xvt_print_open_page(PRINT_RCD *precp);
|
||||
|
||||
BOOLEAN xvt_rect_has_point(RCT *rctp, PNT pnt);
|
||||
BOOLEAN xvt_rect_intersect(RCT *drctp, RCT *rctp1, RCT *rctp2);
|
||||
void xvt_rect_offset(RCT *rctp, short dh, short dv);
|
||||
void xvt_rect_set(RCT *rctp, short left, short top, short right, short bottom);
|
||||
void xvt_rect_set_empty(RCT *rctp);
|
||||
BOOLEAN xvt_rect_set_pos(RCT *rctp, PNT pos);
|
||||
|
||||
void xvt_res_free_menu_tree(MENU_ITEM* tree);
|
||||
XVT_IMAGE xvt_res_get_image(int rid);
|
||||
MENU_ITEM* xvt_res_get_menu(int rid);
|
||||
char* xvt_res_get_str(int rid, char *s, int sz_s);
|
||||
|
||||
int xvt_sbar_get_pos(WINDOW win, SCROLL_TYPE t);
|
||||
int xvt_sbar_get_proportion(WINDOW win, SCROLL_TYPE t);
|
||||
void xvt_sbar_get_range(WINDOW win, SCROLL_TYPE t, int *minp, int *maxp);
|
||||
void xvt_sbar_set_pos(WINDOW win, SCROLL_TYPE t, int pos);
|
||||
void xvt_sbar_set_proportion(WINDOW win, SCROLL_TYPE t, int proportion);
|
||||
void xvt_sbar_set_range(WINDOW win, SCROLL_TYPE t, int min, int max);
|
||||
|
||||
void xvt_scr_beep(void);
|
||||
WINDOW xvt_scr_get_focus_topwin(void);
|
||||
WINDOW xvt_scr_get_focus_vobj(void);
|
||||
SLIST xvt_scr_list_wins();
|
||||
void xvt_scr_set_busy_cursor();
|
||||
void xvt_scr_set_focus_vobj(WINDOW win);
|
||||
|
||||
BOOLEAN xvt_slist_add_at_elt(SLIST x, SLIST_ELT e, const char *sx, long data);
|
||||
int xvt_slist_count(SLIST x);
|
||||
SLIST xvt_slist_create();
|
||||
void xvt_slist_destroy(SLIST list);
|
||||
char* xvt_slist_get(SLIST x, SLIST_ELT e, long *datap);
|
||||
long* xvt_slist_get_data(SLIST_ELT elt);
|
||||
SLIST_ELT xvt_slist_get_first(SLIST list);
|
||||
SLIST_ELT xvt_slist_get_next(SLIST list, SLIST_ELT item);
|
||||
|
||||
char* xvt_str_duplicate(const char* str);
|
||||
BOOLEAN xvt_str_match(const char* str, const char* pat, BOOLEAN case_sensitive);
|
||||
|
||||
long xvt_timer_create(WINDOW win, long interval);
|
||||
void xvt_timer_destroy(long id);
|
||||
|
||||
void xvt_vobj_destroy(WINDOW win);
|
||||
long xvt_vobj_get_attr(WINDOW win, long data);
|
||||
RCT* xvt_vobj_get_client_rect(WINDOW win, RCT *rctp);
|
||||
long xvt_vobj_get_data(WINDOW win);
|
||||
RCT* xvt_vobj_get_outer_rect(WINDOW win, RCT *rctp);
|
||||
XVT_PALETTE xvt_vobj_get_palet(WINDOW win);
|
||||
WINDOW xvt_vobj_get_parent(WINDOW win);
|
||||
char* xvt_vobj_get_title(WINDOW win, char *title, int sz_title);
|
||||
WIN_TYPE xvt_vobj_get_type(WINDOW win);
|
||||
void xvt_vobj_move(WINDOW win, RCT *rctp);
|
||||
void xvt_vobj_raise(WINDOW win);
|
||||
void xvt_vobj_set_attr(WINDOW win, long data, long value);
|
||||
void xvt_vobj_set_data(WINDOW win, long AppData);
|
||||
void xvt_vobj_set_enabled(WINDOW win, BOOLEAN enabled);
|
||||
void xvt_vobj_set_palet(WINDOW win, XVT_PALETTE palet);
|
||||
void xvt_vobj_set_title(WINDOW win, char *title);
|
||||
void xvt_vobj_set_visible(WINDOW win, BOOLEAN show);
|
||||
void xvt_vobj_translate_points(WINDOW from_win, WINDOW to_win, PNT *pntp, int npnts);
|
||||
|
||||
WINDOW xvt_win_create(WIN_TYPE wtype, RCT *rct_p, char *title, int menu_rid, WINDOW parent_win, long win_flags, EVENT_MASK mask, EVENT_HANDLER eh, long app_data);
|
||||
long xvt_win_dispatch_event(WINDOW win, EVENT *event_p);
|
||||
void xvt_win_release_pointer(void);
|
||||
void xvt_win_set_caret_size(WINDOW win, int width, int height);
|
||||
void xvt_win_set_caret_pos(WINDOW win, PNT p);
|
||||
void xvt_win_set_caret_visible(WINDOW win, BOOLEAN on);
|
||||
void xvt_win_set_cursor(WINDOW win, CURSOR Cursor);
|
||||
void xvt_win_set_handler(WINDOW win, EVENT_HANDLER eh);
|
||||
void xvt_win_trap_pointer(WINDOW win);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
542
xvaga/xvt_defs.h
Executable file
542
xvaga/xvt_defs.h
Executable file
@ -0,0 +1,542 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copyright 1987-1996 XVT Software. All rights reserved.
|
||||
* May be used only in accordance with a valid Source Code License
|
||||
* Agreement with XVT Software.
|
||||
*
|
||||
* $RCSfile: xvt_defs.h,v $
|
||||
* $Revision: 1.1 $
|
||||
*
|
||||
* Purpose: Global XVT macro definitions.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef XVT_INCL_DEFS
|
||||
#define XVT_INCL_DEFS
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Machine-related constants noramlly found in limits.h
|
||||
---------------------------------------------------------------------------*/
|
||||
#ifndef UINT_MAX
|
||||
#define UINT_MAX (unsigned)(~0)
|
||||
#endif
|
||||
/* I18N OK - Must leave in because already in the API */
|
||||
#ifndef UCHAR_MAX
|
||||
#define UCHAR_MAX (unsigned char)(~0)
|
||||
#endif
|
||||
#ifndef CHAR_MAX
|
||||
#define CHAR_MAX ((char)(UCHAR_MAX >> 1))
|
||||
#endif
|
||||
#ifndef USHRT_MAX
|
||||
#define USHRT_MAX (unsigned short)(~0)
|
||||
#endif
|
||||
#ifndef ULONG_MAX
|
||||
#define ULONG_MAX (unsigned long)(~0L)
|
||||
#endif
|
||||
#ifndef INT_MAX
|
||||
#define INT_MAX ((int)(UINT_MAX >> 1))
|
||||
#endif
|
||||
#ifndef SHRT_MAX
|
||||
#define SHRT_MAX ((short)(USHRT_MAX >> 1))
|
||||
#endif
|
||||
#ifndef LONG_MAX
|
||||
#define LONG_MAX ((long)(ULONG_MAX >> 1))
|
||||
#endif
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Resource ID constants
|
||||
---------------------------------------------------------------------------*/
|
||||
/* DECLINING usage: Do not rely on MENU_BAR_RID, as support for it may
|
||||
* be discontinued in a future release */
|
||||
#define MENU_BAR_RID 9001 /* ID for default menubar resource */
|
||||
#define ICON_RSRC 9012
|
||||
#define DB_ABOUT 9050
|
||||
#define DB_ASK 9051
|
||||
#define DB_ERROR 9052
|
||||
#define DB_NOTE 9053
|
||||
#define DB_OPEN 9054
|
||||
#define DB_ABORT 9055
|
||||
#define DB_SAVE 9056
|
||||
#define DB_HELPTOPICS 9057
|
||||
#define DB_HELPTEXT 9058
|
||||
#define DB_RESPONSE 9059
|
||||
#define DB_WARNING 9060
|
||||
#define DB_FONTSEL 9061
|
||||
/* Number 9062 reserved for XVT/Mac FontSize dialog */
|
||||
#define STR_HELPTYPE 40000 /* string resource for help file-type */
|
||||
|
||||
/* Define the beginning of the common code and K layer string resources */
|
||||
/* The maximum reserved string res ID is 32767 */
|
||||
#define XVT_STRING_RES_BASE 30000
|
||||
#define XVTV_STRING_RES_BASE XVT_STRING_RES_BASE + 1300
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Standard dialog pushbutton control IDs
|
||||
---------------------------------------------------------------------------*/
|
||||
#define DLG_OK 1 /* default button was clicked */
|
||||
#define DLG_YES DLG_OK /* synonym */
|
||||
#define DLG_CANCEL 2 /* cancel button was clicked */
|
||||
#define DLG_OUTLINE 3 /* ID of userItem on Mac (internal use) */
|
||||
#define DLG_NO 4 /* other button was clicked */
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Colors
|
||||
---------------------------------------------------------------------------*/
|
||||
#ifndef COLOR_RED
|
||||
#define COLOR_RED 0x01FF0000L
|
||||
#endif
|
||||
#ifndef COLOR_GREEN
|
||||
#define COLOR_GREEN 0x0200FF00L
|
||||
#endif
|
||||
#ifndef COLOR_BLUE
|
||||
#define COLOR_BLUE 0x030000FFL
|
||||
#endif
|
||||
#ifndef COLOR_CYAN
|
||||
#define COLOR_CYAN 0x0400FFFFL
|
||||
#endif
|
||||
#ifndef COLOR_MAGENTA
|
||||
#define COLOR_MAGENTA 0x05FF00FFL
|
||||
#endif
|
||||
#ifndef COLOR_YELLOW
|
||||
#define COLOR_YELLOW 0x06FFFF00L
|
||||
#endif
|
||||
#ifndef COLOR_BLACK
|
||||
#define COLOR_BLACK 0x07000000L
|
||||
#endif
|
||||
#ifndef COLOR_DKGRAY
|
||||
#define COLOR_DKGRAY 0x08404040L
|
||||
#endif
|
||||
#ifndef COLOR_GRAY
|
||||
#define COLOR_GRAY 0x09808080L
|
||||
#endif
|
||||
#ifndef COLOR_LTGRAY
|
||||
#define COLOR_LTGRAY 0x0AC0C0C0L
|
||||
#endif
|
||||
#ifndef COLOR_WHITE
|
||||
#define COLOR_WHITE 0x0BFFFFFFL
|
||||
#endif
|
||||
|
||||
#define COLOR_INVALID ((COLOR)~0)
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
String and Character Constants
|
||||
---------------------------------------------------------------------------*/
|
||||
#define XVT_MAX_MB_SIZE XVTK_MAX_MB_SIZE
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Key codes
|
||||
---------------------------------------------------------------------------*/
|
||||
#define K_DEL 127 /* delete (same as ASCII) */
|
||||
#define K_UP 301 /* up arrow */
|
||||
#define K_DOWN 302 /* down arrow */
|
||||
#define K_RIGHT 303 /* right arrow */
|
||||
#define K_LEFT 304 /* left arrow */
|
||||
#define K_PREV 305 /* previous screen */
|
||||
#define K_NEXT 306 /* next screen */
|
||||
#define K_LHOME 307 /* line home */
|
||||
#define K_LEND 308 /* line end */
|
||||
#define K_HOME 309 /* home */
|
||||
#define K_END 310 /* end */
|
||||
#define K_INS 312 /* insert */
|
||||
#define K_WLEFT 313 /* word left */
|
||||
#define K_WRIGHT 314 /* word right */
|
||||
#define K_BTAB 315 /* back tab */
|
||||
#define K_HELP 316 /* help */
|
||||
#define K_CLEAR 317 /* clear */
|
||||
#define K_KP0 318 /* keypad '0' */
|
||||
#define K_KP1 319
|
||||
#define K_KP2 320
|
||||
#define K_KP3 321
|
||||
#define K_KP4 322
|
||||
#define K_KP5 323
|
||||
#define K_KP6 324
|
||||
#define K_KP7 325
|
||||
#define K_KP8 326
|
||||
#define K_KP9 327 /* keypad '9' */
|
||||
#define K_COPY 328 /* copy */
|
||||
#define K_CUT 329 /* cut */
|
||||
#define K_PASTE 330 /* paste */
|
||||
#define K_F1 331 /* function key 1 */
|
||||
#define K_F2 332
|
||||
#define K_F3 333
|
||||
#define K_F4 334
|
||||
#define K_F5 335
|
||||
#define K_F6 336
|
||||
#define K_F7 337
|
||||
#define K_F8 338
|
||||
#define K_F9 339
|
||||
#define K_F10 340
|
||||
#define K_F11 341
|
||||
#define K_F12 342
|
||||
#define K_F13 343
|
||||
#define K_F14 344
|
||||
#define K_F15 345 /* function key 15 */
|
||||
#define K_F16 346
|
||||
#define K_F17 347
|
||||
#define K_F18 348
|
||||
#define K_F19 349
|
||||
#define K_F20 350
|
||||
#define K_F21 351
|
||||
#define K_F22 352
|
||||
#define K_F23 353
|
||||
#define K_F24 354
|
||||
|
||||
#define K_KPMULT 372 /* keypad '*' */
|
||||
#define K_KPSUB 373 /* keypad '-' */
|
||||
#define K_KPADD 374 /* keypad '+' */
|
||||
#define K_KPDIV 375 /* keypad '/' */
|
||||
#define K_KPDOT 376 /* keypad '.' */
|
||||
#define K_KPEQ 377 /* keypad '=' */
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Text edit module
|
||||
---------------------------------------------------------------------------*/
|
||||
#define TX_READONLY 0x0001 /* text is not editable */
|
||||
#define TX_WRAP 0x0002 /* wrap text to margin */
|
||||
#define TX_AUTOVSCROLL 0x0004 /* autoscroll vertically */
|
||||
#define TX_AUTOHSCROLL 0x0008 /* autoscroll horizontally */
|
||||
#define TX_BORDER 0x0010 /* rectangular border */
|
||||
#define TX_VSCROLLBAR 0x0020 /* vertical scroll bar */
|
||||
#define TX_HSCROLLBAR 0x0040 /* horizontal scroll bar */
|
||||
#define TX_ONEPAR 0x0080 /* one paragraph only (no \r) */
|
||||
#define TX_NOCOPY 0x0100 /* no copy allowed */
|
||||
#define TX_NOCUT 0x0200 /* no cut allowed */
|
||||
#define TX_NOPASTE 0x0400 /* no paste allowed */
|
||||
#define TX_NOMENU 0x0800 /* no edit menu changes */
|
||||
#define TX_ENABLECLEAR 0x1000 /* leave CLEAR enabled always */
|
||||
#define TX_OVERTYPE 0x2000 /* overtype mode */
|
||||
#define TX_DISABLED 0x4000
|
||||
#define TX_INVISIBLE 0x8000
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Cursors
|
||||
---------------------------------------------------------------------------*/
|
||||
#define CURSOR_ARROW 0 /* arrow */
|
||||
#define CURSOR_IBEAM 1 /* I-beam */
|
||||
#define CURSOR_CROSS 2 /* cross hair */
|
||||
#define CURSOR_PLUS 3 /* plus sign (fatter than cross hair) */
|
||||
#define CURSOR_WAIT 4 /* waiting symbol (e.g., hourglass) */
|
||||
#define CURSOR_HELP 5 /* help system */
|
||||
#define CURSOR_USER 11 /* user defined shape (>= 11) */
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Event masks
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
#define EM_NONE ((EVENT_MASK)0L)
|
||||
#define EM_ALL ((EVENT_MASK)~0L)
|
||||
#define EM_CREATE ((EVENT_MASK)(1L << E_CREATE))
|
||||
#define EM_DESTROY ((EVENT_MASK)(1L << E_DESTROY))
|
||||
#define EM_FOCUS ((EVENT_MASK)(1L << E_FOCUS))
|
||||
#define EM_SIZE ((EVENT_MASK)(1L << E_SIZE))
|
||||
#define EM_UPDATE ((EVENT_MASK)(1L << E_UPDATE))
|
||||
#define EM_CLOSE ((EVENT_MASK)(1L << E_CLOSE))
|
||||
#define EM_MOUSE_DOWN ((EVENT_MASK)(1L << E_MOUSE_DOWN))
|
||||
#define EM_MOUSE_UP ((EVENT_MASK)(1L << E_MOUSE_UP))
|
||||
#define EM_MOUSE_MOVE ((EVENT_MASK)(1L << E_MOUSE_MOVE))
|
||||
#define EM_MOUSE_DBL ((EVENT_MASK)(1L << E_MOUSE_DBL))
|
||||
#define EM_CHAR ((EVENT_MASK)(1L << E_CHAR))
|
||||
#define EM_VSCROLL ((EVENT_MASK)(1L << E_VSCROLL))
|
||||
#define EM_HSCROLL ((EVENT_MASK)(1L << E_HSCROLL))
|
||||
#define EM_COMMAND ((EVENT_MASK)(1L << E_COMMAND))
|
||||
#define EM_FONT ((EVENT_MASK)(1L << E_FONT))
|
||||
#define EM_CONTROL ((EVENT_MASK)(1L << E_CONTROL))
|
||||
#define EM_TIMER ((EVENT_MASK)(1L << E_TIMER))
|
||||
#define EM_QUIT ((EVENT_MASK)(1L << E_QUIT))
|
||||
#define EM_HELP ((EVENT_MASK)(1L << E_HELP))
|
||||
#define EM_USER ((EVENT_MASK)(1L << E_USER))
|
||||
#define EM_CXO ((EVENT_MASK)(1L << E_CXO))
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
XVT escape code value ranges
|
||||
---------------------------------------------------------------------------*/
|
||||
#define XVT_ESC_COMMON_BASE 8000
|
||||
#define XVT_ESC_INTERNAL_BASE 30000
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Control, window, and dialog creation flags
|
||||
---------------------------------------------------------------------------*/
|
||||
#define CTL_FLAG_DISABLED 0x00000001L
|
||||
#define CTL_FLAG_CHECKED 0x00000004L
|
||||
#define CTL_FLAG_DEFAULT 0x00000008L
|
||||
#define CTL_FLAG_INVISIBLE 0x00000010L
|
||||
#define CTL_FLAG_GROUP 0x00000020L
|
||||
#define CTL_FLAG_MAC_MULTILINE 0x00000080L /* opt3 */
|
||||
#define CTL_FLAG_MAC_WORDWRAP 0x00000100L /* opt4 */
|
||||
#define CTL_FLAG_READONLY 0x00000200L
|
||||
#define CTL_FLAG_MULTIPLE 0x00000400L
|
||||
#define CTL_FLAG_MAC_GENEVA9 0x00000800L /* was opt1 */
|
||||
#define CTL_FLAG_PM_SYSICON 0x00000800L
|
||||
#define CTL_FLAG_MAC_MONACO9 0x00001000L /* was opt2 */
|
||||
#define CTL_FLAG_NATIVE_JUST 0x0L /* default */
|
||||
#define CTL_FLAG_LEFT_JUST 0x00002000L /* left text */
|
||||
#define CTL_FLAG_CENTER_JUST 0x00004000L /* centered text */
|
||||
#define CTL_FLAG_RIGHT_JUST 0x00008000L /* right justified text */
|
||||
#define CTL_FLAG_PASSWORD 0x00010000L
|
||||
|
||||
#define WSF_NONE 0x00000000L
|
||||
#define WSF_SIZE 0x00000001L /* is user sizeable */
|
||||
#define WSF_CLOSE 0x00000002L /* is user closeable */
|
||||
#define WSF_HSCROLL 0x00000004L /* has horz. scrolbar outside client area */
|
||||
#define WSF_VSCROLL 0x00000008L /* has vert. scrolbar outside client area */
|
||||
#define WSF_DECORATED 0x0000000FL /* all of above four flags */
|
||||
#define WSF_INVISIBLE 0x00000010L /* is initially invisible */
|
||||
#define WSF_DISABLED 0x00000020L /* is initially disabled */
|
||||
#define WSF_FLOATING 0x00000040L /* is floating */
|
||||
#define WSF_ICONIZABLE 0x00000080L
|
||||
#define WSF_ICONIZED 0x00000100L /* is initially iconized */
|
||||
#define WSF_SIZEONLY 0x00000200L /* lacks border rectangles (Mac only) */
|
||||
#define WSF_NO_MENUBAR 0x00000800L /* has no menu bar of its own */
|
||||
#define WSF_MAXIMIZED 0x00001000L /* initially maximized */
|
||||
#define WSF_PLACE_EXACT 0x00002000L /* do not auto-place */
|
||||
#define WSF_DEFER_MODAL 0x00008000L /* defer modal state for W_MODAL windows */
|
||||
|
||||
#define DLG_FLAG_DISABLED 0x00000001L
|
||||
#define DLG_FLAG_INVISIBLE 0x00000002L
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Standard tool constants
|
||||
---------------------------------------------------------------------------*/
|
||||
#define TL_PEN_BLACK 1L
|
||||
#define TL_PEN_HOLLOW 2L
|
||||
#define TL_PEN_RUBBER 3L
|
||||
#define TL_PEN_WHITE 4L
|
||||
|
||||
#define TL_BRUSH_BLACK 0L
|
||||
#define TL_BRUSH_WHITE 1L
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Font support
|
||||
---------------------------------------------------------------------------*/
|
||||
/* Font style */
|
||||
#define XVT_FS_NONE 0L
|
||||
#define XVT_FS_BOLD (1L<<0)
|
||||
#define XVT_FS_ITALIC (1L<<1)
|
||||
#define XVT_FS_UNDERLINE (1L<<4)
|
||||
#define XVT_FS_OUTLINE (1L<<5)
|
||||
#define XVT_FS_SHADOW (1L<<6)
|
||||
#define XVT_FS_INVERSE (1L<<7)
|
||||
#define XVT_FS_BLINK (1L<<8)
|
||||
#define XVT_FS_STRIKEOUT (1L<<9)
|
||||
#define XVT_FS_USER1 (1L<<15)
|
||||
#define XVT_FS_USER2 (1L<<16)
|
||||
#define XVT_FS_USER3 (1L<<17)
|
||||
#define XVT_FS_USER4 (1L<<18)
|
||||
#define XVT_FS_USER5 (1L<<19)
|
||||
#define XVT_FS_WILDCARD (1L<<25)
|
||||
|
||||
/* Font attribute type */
|
||||
#define XVT_FA_FAMILY (XVT_FONT_ATTR_MASK)(1L<<0)
|
||||
#define XVT_FA_SIZE (XVT_FONT_ATTR_MASK)(1L<<1)
|
||||
#define XVT_FA_STYLE (XVT_FONT_ATTR_MASK)(1L<<2)
|
||||
#define XVT_FA_NATIVE (XVT_FONT_ATTR_MASK)(1L<<3)
|
||||
#define XVT_FA_APP_DATA (XVT_FONT_ATTR_MASK)(1L<<4)
|
||||
#define XVT_FA_WIN (XVT_FONT_ATTR_MASK)(1L<<5)
|
||||
#define XVT_FA_ALL (XVT_FONT_ATTR_MASK)~(0L)
|
||||
|
||||
/* Guaranteed support for these font families */
|
||||
#define XVT_FFN_TIMES "times"
|
||||
#define XVT_FFN_HELVETICA "helvetica"
|
||||
#define XVT_FFN_COURIER "courier"
|
||||
#define XVT_FFN_FIXED "fixed"
|
||||
#define XVT_FFN_SYSTEM "system"
|
||||
|
||||
/* Convenience macro for identifying a NULL font id */
|
||||
#define NULL_FNTID ((XVT_FNTID)NULL)
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
COLOR macros
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
/* allocated nbr of entries in image->v.cl8.clut */
|
||||
|
||||
#define XVT_CLUT_SIZE 256
|
||||
#define XVT_PALETTE_SIZE 256
|
||||
|
||||
/* macros for COLOR values */
|
||||
#define XVT_MAKE_COLOR(r,g,b) ((COLOR)((((ULONG)(r)&0xFF) << 16) | \
|
||||
(((ULONG)(g)&0xFF) << 8) | \
|
||||
(((ULONG)(b)&0xFF))))
|
||||
#define XVT_COLOR_GET_RED(color) ((unsigned char)(((color) >> 16) & 0xFF))
|
||||
#define XVT_COLOR_GET_GREEN(color) ((unsigned char)(((color) >> 8) & 0xFF))
|
||||
#define XVT_COLOR_GET_BLUE(color) ((unsigned char)((color) & 0xFF))
|
||||
|
||||
/* old MAKE_COLOR macro */
|
||||
#define MAKE_COLOR(r,g,b) XVT_MAKE_COLOR(r,g,b)
|
||||
|
||||
/* Do not use the following, obsoleted macros */
|
||||
#define XVT_RED_OF_COLOR(color) ((unsigned char)(((color) >> 16) & 0xFF))
|
||||
#define XVT_GREEN_OF_COLOR(color) ((unsigned char)(((color) >> 8) & 0xFF))
|
||||
#define XVT_BLUE_OF_COLOR(color) ((unsigned char)((color) & 0xFF))
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
File attributes
|
||||
---------------------------------------------------------------------------*/
|
||||
/* definitions for attributes used in the xvt_fsys_*_file_attr calls */
|
||||
|
||||
#define XVT_FILE_ATTR_MINIMUM 1L
|
||||
|
||||
#define XVT_FILE_ATTR_EXIST 1L
|
||||
#define XVT_FILE_ATTR_READ 2L
|
||||
#define XVT_FILE_ATTR_WRITE 3L
|
||||
#define XVT_FILE_ATTR_EXECUTE 4L
|
||||
#define XVT_FILE_ATTR_DIRECTORY 5L
|
||||
#define XVT_FILE_ATTR_NUMLINKS 6L
|
||||
#define XVT_FILE_ATTR_SIZE 7L
|
||||
#define XVT_FILE_ATTR_ATIME 8L
|
||||
#define XVT_FILE_ATTR_MTIME 9L
|
||||
#define XVT_FILE_ATTR_CTIME 10L
|
||||
#define XVT_FILE_ATTR_CREATORSTR 11L
|
||||
#define XVT_FILE_ATTR_DIRSTR 12L
|
||||
#define XVT_FILE_ATTR_FILESTR 13L
|
||||
#define XVT_FILE_ATTR_TYPESTR 14L
|
||||
|
||||
#define XVT_FILE_ATTR_MAXIMUM 14L
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Miscellaneous
|
||||
---------------------------------------------------------------------------*/
|
||||
#define XVT_TIMER_ERROR (-1L)
|
||||
#define XVT_MAX_WINDOW_RECT ((RCT *)NULL)
|
||||
#define DIR_TYPE "/\1\2\3" /* used with list_files */
|
||||
#ifndef NULL
|
||||
#define NULL 0L
|
||||
#endif
|
||||
#define NULL_WIN ((WINDOW)NULL)
|
||||
#define NULL_PICTURE ((PICTURE)NULL)
|
||||
#define NULL_PIXMAP ((XVT_PIXMAP)NULL)
|
||||
#define NULL_PALETTE ((XVT_PALETTE)NULL)
|
||||
#define NULL_IMAGE ((XVT_IMAGE)NULL)
|
||||
#define NULL_TID ((XVT_HELP_TID)NULL)
|
||||
#define NULL_TXEDIT NULL_WIN
|
||||
#define BAD_TXEDIT NULL_TXEDIT
|
||||
|
||||
#define TASK_WIN ((WINDOW)xvt_vobj_get_attr(NULL_WIN, ATTR_TASK_WINDOW))
|
||||
#define SCREEN_WIN ((WINDOW)xvt_vobj_get_attr(NULL_WIN, ATTR_SCREEN_WINDOW))
|
||||
|
||||
#define PTR_LONG(p) ((long)(char *)(p))
|
||||
|
||||
#ifndef max
|
||||
#define max(x, y) ((x) > (y) ? (x) : (y))
|
||||
#endif
|
||||
#ifndef min
|
||||
#define min(x, y) ((x) < (y) ? (x) : (y))
|
||||
#endif
|
||||
|
||||
#define XVT_MAKE_VERSION(major, minor, patch) ((major)*10000L + (minor)*100L + (patch))
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Attribute definitions for get/set_value()
|
||||
Note that non-portable constants are defined by the platform header.
|
||||
---------------------------------------------------------------------------*/
|
||||
#define ATTR_BASE 0
|
||||
/* system config attributes */
|
||||
#define ATTR_BACK_COLOR (ATTR_BASE + 100)
|
||||
#define ATTR_HAVE_COLOR (ATTR_BASE + 101)
|
||||
#define ATTR_HAVE_MOUSE (ATTR_BASE + 102)
|
||||
#define ATTR_NUM_TIMERS (ATTR_BASE + 103)
|
||||
#define ATTR_XVT_CONFIG (ATTR_BASE + 104)
|
||||
#define ATTR_DISPLAY_TYPE (ATTR_BASE + 105)
|
||||
|
||||
/* Object size attributes */
|
||||
#define ATTR_CTL_BUTTON_HEIGHT (ATTR_BASE + 200)
|
||||
#define ATTR_CTL_CHECKBOX_HEIGHT (ATTR_BASE + 201)
|
||||
#define ATTR_CTL_EDIT_TEXT_HEIGHT (ATTR_BASE + 202)
|
||||
#define ATTR_CTL_HORZ_SBAR_HEIGHT (ATTR_BASE + 203)
|
||||
#define ATTR_CTL_VERT_SBAR_WIDTH (ATTR_BASE + 204)
|
||||
#define ATTR_CTL_RADIOBUTTON_HEIGHT (ATTR_BASE + 205)
|
||||
#define ATTR_CTL_STATIC_TEXT_HEIGHT (ATTR_BASE + 206)
|
||||
#define ATTR_ICON_WIDTH (ATTR_BASE + 207)
|
||||
#define ATTR_ICON_HEIGHT (ATTR_BASE + 208)
|
||||
|
||||
/* Predefined windows */
|
||||
#define ATTR_SCREEN_WINDOW (ATTR_BASE + 300)
|
||||
#define ATTR_TASK_WINDOW (ATTR_BASE + 301)
|
||||
|
||||
/* System metric attributes */
|
||||
#define ATTR_SCREEN_HEIGHT (ATTR_BASE + 400)
|
||||
#define ATTR_SCREEN_WIDTH (ATTR_BASE + 401)
|
||||
#define ATTR_SCREEN_HRES (ATTR_BASE + 402)
|
||||
#define ATTR_SCREEN_VRES (ATTR_BASE + 403)
|
||||
#define ATTR_PRINTER_HEIGHT (ATTR_BASE + 404)
|
||||
#define ATTR_PRINTER_WIDTH (ATTR_BASE + 405)
|
||||
#define ATTR_PRINTER_HRES (ATTR_BASE + 406)
|
||||
#define ATTR_PRINTER_VRES (ATTR_BASE + 407)
|
||||
#define ATTR_DOC_STAGGER_HORZ (ATTR_BASE + 408)
|
||||
#define ATTR_DOC_STAGGER_VERT (ATTR_BASE + 409)
|
||||
|
||||
/* Window metric attributes */
|
||||
#define ATTR_DOCFRAME_WIDTH (ATTR_BASE + 500)
|
||||
#define ATTR_DOCFRAME_HEIGHT (ATTR_BASE + 501)
|
||||
#define ATTR_FRAME_WIDTH (ATTR_BASE + 502)
|
||||
#define ATTR_FRAME_HEIGHT (ATTR_BASE + 503)
|
||||
#define ATTR_DBLFRAME_WIDTH (ATTR_BASE + 504)
|
||||
#define ATTR_DBLFRAME_HEIGHT (ATTR_BASE + 505)
|
||||
#define ATTR_MENU_HEIGHT (ATTR_BASE + 506)
|
||||
#define ATTR_TITLE_HEIGHT (ATTR_BASE + 507)
|
||||
|
||||
/* Window attributes */
|
||||
#define ATTR_NATIVE_GRAPHIC_CONTEXT (ATTR_BASE + 601)
|
||||
#define ATTR_NATIVE_WINDOW (ATTR_BASE + 602)
|
||||
#define ATTR_PROPAGATE_NAV_CHARS (ATTR_BASE + 603)
|
||||
|
||||
/* Misc attributes */
|
||||
#define ATTR_DEBUG_FILENAME (ATTR_BASE + 700)
|
||||
#define ATTR_MALLOC_ERR_HANDLER (ATTR_BASE + 701) /* DECLINING */
|
||||
#define ATTR_KEY_HOOK (ATTR_BASE + 702)
|
||||
#define ATTR_EVENT_HOOK (ATTR_BASE + 703)
|
||||
#define ATTR_SUPPRESS_UPDATE_CHECK (ATTR_BASE + 704)
|
||||
#define ATTR_FATAL_ERR_HANDLER (ATTR_BASE + 705) /* DECLINING */
|
||||
#define ATTR_ERRMSG_HANDLER (ATTR_BASE + 706)
|
||||
#define ATTR_MEMORY_MANAGER (ATTR_BASE + 707)
|
||||
#define ATTR_DEFAULT_PALETTE_TYPE (ATTR_BASE + 708)
|
||||
#define ATTR_ERRMSG_FILENAME (ATTR_BASE + 709)
|
||||
#define ATTR_HELP_HOOK (ATTR_BASE + 710)
|
||||
#define ATTR_HELP_CONTEXT (ATTR_BASE + 711)
|
||||
#define ATTR_COLLATE_HOOK (ATTR_BASE + 712)
|
||||
#define ATTR_MULTIBYTE_AWARE (ATTR_BASE + 713)
|
||||
#define ATTR_RESOURCE_FILENAME (ATTR_BASE + 714)
|
||||
#define ATTR_APP_CTL_COLORS (ATTR_BASE + 715)
|
||||
#define ATTR_APPL_NAME_RID (ATTR_BASE + 716)
|
||||
#define ATTR_TASKWIN_TITLE_RID (ATTR_BASE + 717)
|
||||
#define ATTR_R40_TXEDIT_BEHAVIOR (ATTR_BASE + 718)
|
||||
#define ATTR_APP_CTL_FONT_RID (ATTR_BASE + 719)
|
||||
|
||||
/* Font attributes */
|
||||
#define ATTR_FONT_MAPPER (ATTR_BASE + 800)
|
||||
#define ATTR_FONT_DIALOG (ATTR_BASE + 801)
|
||||
#define ATTR_FONT_CACHE_SIZE (ATTR_BASE + 802)
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Values for the "modifier" field of the E_CHAR event.
|
||||
---------------------------------------------------------------------------*/
|
||||
#define XVT_MOD_KEY_NONE 0L
|
||||
#define XVT_MOD_KEY_SHIFT (1L<<1)
|
||||
#define XVT_MOD_KEY_CTL (1L<<2)
|
||||
#define XVT_MOD_KEY_ALT (1L<<3)
|
||||
#define XVT_MOD_KEY_LSHIFT (1L<<4)
|
||||
#define XVT_MOD_KEY_RSHIFT (1L<<5)
|
||||
#define XVT_MOD_KEY_CMD (1L<<6)
|
||||
#define XVT_MOD_KEY_OPTION (1L<<7)
|
||||
#define XVT_MOD_KEY_COMPOSE (1L<<8)
|
||||
#define XVT_MOD_KEY_LALT (1L<<9)
|
||||
#define XVT_MOD_KEY_RALT (1L<<10)
|
||||
#define XVT_MOD_KEY_ALTGRAF (1L<<11)
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Values for the type XVT_COLOR_TYPE.
|
||||
---------------------------------------------------------------------------*/
|
||||
#define XVT_COLOR_NULL (XVT_COLOR_TYPE)(0L)
|
||||
#define XVT_COLOR_FOREGROUND (XVT_COLOR_TYPE)(1L<<1)
|
||||
#define XVT_COLOR_BACKGROUND (XVT_COLOR_TYPE)(1L<<2)
|
||||
#define XVT_COLOR_BLEND (XVT_COLOR_TYPE)(1L<<3)
|
||||
#define XVT_COLOR_HIGHLIGHT (XVT_COLOR_TYPE)(1L<<4)
|
||||
#define XVT_COLOR_BORDER (XVT_COLOR_TYPE)(1L<<5)
|
||||
#define XVT_COLOR_TROUGH (XVT_COLOR_TYPE)(1L<<6)
|
||||
#define XVT_COLOR_SELECT (XVT_COLOR_TYPE)(1L<<7)
|
||||
|
||||
|
||||
#endif /* XVT_INCL_DEFS */
|
21
xvaga/xvt_env.h
Executable file
21
xvaga/xvt_env.h
Executable file
@ -0,0 +1,21 @@
|
||||
#define XVT_OS_WIN 300
|
||||
#define XVT_OS_WIN32 400
|
||||
|
||||
#define XVT_OS XVT_OS_WIN32
|
||||
|
||||
#define ATTR_WIN_BASE 10000
|
||||
#define ATTR_WIN_CMD_LINE (ATTR_WIN_BASE + 0)
|
||||
#define ATTR_WIN_INSTANCE (ATTR_WIN_BASE + 1)
|
||||
#define ATTR_WIN_PREV_INSTANCE (ATTR_WIN_BASE + 2)
|
||||
#define ATTR_WIN_MDI (ATTR_WIN_BASE + 3)
|
||||
#define ATTR_WIN_FCN_PRINT_INIT (ATTR_WIN_BASE + 4)
|
||||
#define ATTR_WIN_PM_CLASS_ICON (ATTR_WIN_BASE + 5)
|
||||
#define ATTR_WIN_PM_DRAWABLE_TWIN (ATTR_WIN_BASE + 6)
|
||||
#define ATTR_WIN_PM_SPECIAL_1ST_DOC (ATTR_WIN_BASE + 7)
|
||||
#define ATTR_WIN_PM_NO_TWIN (ATTR_WIN_BASE + 8)
|
||||
#define ATTR_WIN_PM_TWIN_STARTUP_DATA (ATTR_WIN_BASE + 9)
|
||||
#define ATTR_WIN_PM_TWIN_STARTUP_MASK (ATTR_WIN_BASE + 10)
|
||||
#define ATTR_WIN_PM_TWIN_STARTUP_RCT (ATTR_WIN_BASE + 11)
|
||||
#define ATTR_WIN_PM_TWIN_STARTUP_STYLE (ATTR_WIN_BASE + 12)
|
||||
|
||||
#define main xvt_main
|
280
xvaga/xvt_help.h
Executable file
280
xvaga/xvt_help.h
Executable file
@ -0,0 +1,280 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copyright 1987-1996 XVT Software. All rights reserved.
|
||||
* May be used only in accordance with a valid Source Code License
|
||||
* Agreement with XVT Software.
|
||||
*
|
||||
* $RCSfile: xvt_help.h,v $
|
||||
* $Revision: 1.1 $
|
||||
*
|
||||
* Purpose: XVT help subsystem macros and types.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef XVT_INCL_HELP
|
||||
#define XVT_INCL_HELP
|
||||
|
||||
|
||||
/*
|
||||
* Help Versions
|
||||
*/
|
||||
#define XVT_HELP_VERSION_MAJOR 4
|
||||
#define XVT_HELP_VERSION_MINOR 57
|
||||
#define XVT_HELP_VERSION_PATCH 0
|
||||
#define XVT_HELP_VERSION XVT_MAKE_VERSION(XVT_HELP_VERSION_MAJOR,XVT_HELP_VERSION_MINOR,XVT_HELP_VERSION_PATCH)
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Types
|
||||
*/
|
||||
|
||||
typedef struct s_xvt_help_info {long* fake;} *XVT_HELP_INFO;
|
||||
#define NULL_HELP_INFO (XVT_HELP_INFO)0
|
||||
|
||||
|
||||
typedef enum e_xvt_help_flavor
|
||||
{
|
||||
XVT_HELP_FLAVOR_NONE,
|
||||
XVT_HELP_FLAVOR_NTVSRV,
|
||||
XVT_HELP_FLAVOR_NTVBND,
|
||||
XVT_HELP_FLAVOR_PORTSRV,
|
||||
XVT_HELP_FLAVOR_PORTBND
|
||||
} XVT_HELP_FLAVOR;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Help System Flags.
|
||||
*/
|
||||
|
||||
/* for xvt_help_open_helpfile */
|
||||
#define HSF_INDEX_ON_DISK 0x001L /* Default value is in-memory */
|
||||
#define HSF_NO_TOPIC_WARNING 0x002L /* No warning for missing topics */
|
||||
#define HSF_NO_HELPMENU_ASSOC 0x004L /* Don't associate topics to helpmenu */
|
||||
#define HSF_APPNAME_TITLE 0x008L /* show APPNAME in title */
|
||||
#define HSF_NO_BEEP_MODAL 0x010L /* don't beep for help on modal dialog*/
|
||||
|
||||
/* internal use, only */
|
||||
#define HSF_EXIT_ON_CLOSE 0x020L /* exit when topic window closes */
|
||||
|
||||
/* for customization */
|
||||
#define HSF_USER 0x040L
|
||||
|
||||
/*
|
||||
* Reserved help topic IDs
|
||||
*/
|
||||
#define XVT_TPC_BASE 32000
|
||||
#define XVT_TPC_HELPONHELP (XVT_TPC_BASE + 0)
|
||||
#define XVT_TPC_INDEX (XVT_TPC_BASE + 1)
|
||||
#define XVT_TPC_TUTORIAL (XVT_TPC_BASE + 2)
|
||||
#define XVT_TPC_BASICSKILLS (XVT_TPC_BASE + 3)
|
||||
#define XVT_TPC_PROCEDURES (XVT_TPC_BASE + 4)
|
||||
#define XVT_TPC_KEYBOARD (XVT_TPC_BASE + 5)
|
||||
#define XVT_TPC_CONTENTS (XVT_TPC_BASE + 6)
|
||||
#define XVT_TPC_ABOUT (XVT_TPC_BASE + 7)
|
||||
#define XVT_TPC_COMMANDS (XVT_TPC_BASE + 8)
|
||||
#define XVT_TPC_GLOSSARY (XVT_TPC_BASE + 9)
|
||||
#define XVT_TPC_ABOUTHELP (XVT_TPC_BASE + 10)
|
||||
|
||||
/* Motif specific */
|
||||
#define XVT_TPC_ONHELP XVT_TPC_HELPONHELP
|
||||
#define XVT_TPC_ONKEYS XVT_TPC_KEYBOARD
|
||||
#define XVT_TPC_ONVERSION XVT_TPC_ABOUT
|
||||
|
||||
/* Other help menu item topics */
|
||||
#define XVT_TPC_ONCONTEXT (XVT_TPC_BASE + 20)
|
||||
#define XVT_TPC_SEARCH (XVT_TPC_BASE + 21)
|
||||
#define XVT_TPC_ONWINDOW (XVT_TPC_BASE + 22)
|
||||
#define XVT_TPC_OBJCLICK (XVT_TPC_BASE + 23)
|
||||
|
||||
/* predefined dialog topics */
|
||||
#define XVT_TPC_FILE_OPEN (XVT_TPC_BASE + 30)
|
||||
#define XVT_TPC_FILE_SAVE (XVT_TPC_BASE + 40)
|
||||
#define XVT_TPC_ASK (XVT_TPC_BASE + 50)
|
||||
#define XVT_TPC_NOTE (XVT_TPC_BASE + 60)
|
||||
#define XVT_TPC_ERROR (XVT_TPC_BASE + 70)
|
||||
#define XVT_TPC_WARNING (XVT_TPC_BASE + 80)
|
||||
#define XVT_TPC_STRING_PROMPT (XVT_TPC_BASE + 90)
|
||||
#define XVT_TPC_FONT_SEL (XVT_TPC_BASE + 100)
|
||||
#define XVT_TPC_PAGE_SETUP (XVT_TPC_BASE + 110)
|
||||
#define XVT_TPC_MESSAGE (XVT_TPC_BASE + 120)
|
||||
#define XVT_TPC_FATAL (XVT_TPC_BASE + 130)
|
||||
|
||||
/* maximum predefined topic */
|
||||
#define XVT_TPC_MAX (XVT_TPC_BASE + 130)
|
||||
|
||||
|
||||
/*
|
||||
* Resource-related macros.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* Help Menu Tags
|
||||
*/
|
||||
|
||||
#define TagBASE M_HELP
|
||||
#define M_HELP_HELPMENU (TagBASE + 0)
|
||||
#define M_HELP_ONCONTEXT (TagBASE + 1)
|
||||
#define M_HELP_HELPONHELP (TagBASE + 2)
|
||||
#define M_HELP_ONWINDOW (TagBASE + 3)
|
||||
#define M_HELP_KEYBOARD (TagBASE + 4)
|
||||
#define M_HELP_INDEX (TagBASE + 5)
|
||||
#define M_HELP_TUTORIAL (TagBASE + 6)
|
||||
#define M_HELP_SEARCH (TagBASE + 7)
|
||||
#define M_HELP_OBJCLICK (TagBASE + 8)
|
||||
#define M_HELP_VERSION (TagBASE + 9)
|
||||
#define M_HELP_GOTO (TagBASE + 10)
|
||||
#define M_HELP_GLOSSARY (TagBASE + 11)
|
||||
#define M_HELP_CONTENTS (TagBASE + 12)
|
||||
/* internal use -- highest help tag */
|
||||
#define M_HELP_LAST (TagBASE + 12)
|
||||
|
||||
|
||||
#ifndef NO_HELP_RESOURCES
|
||||
|
||||
/*
|
||||
* Help menu text strings.
|
||||
*
|
||||
* (Because of the Mac, these are numbered using even values.)
|
||||
*/
|
||||
#define HELP_STR_BASE XVTV_STRING_RES_BASE
|
||||
#define TextHELPMENU (HELP_STR_BASE + 0)
|
||||
#define TextONWINDOW (HELP_STR_BASE + 2)
|
||||
#define TextHELPONHELP (HELP_STR_BASE + 4)
|
||||
#define TextKEYBOARD (HELP_STR_BASE + 6)
|
||||
#define TextINDEX (HELP_STR_BASE + 8)
|
||||
#define TextCONTENTS (HELP_STR_BASE + 10)
|
||||
#define TextTUTORIAL (HELP_STR_BASE + 12)
|
||||
#define TextVERSION (HELP_STR_BASE + 14)
|
||||
#define TextSEARCH (HELP_STR_BASE + 16)
|
||||
#define TextONCONTEXT (HELP_STR_BASE + 18)
|
||||
#define TextOBJCLICK (HELP_STR_BASE + 20)
|
||||
|
||||
/* Topic menubar navigate strings */
|
||||
#define TextNAV_SEARCH (HELP_STR_BASE + 22)
|
||||
#define TextNAV_GOTO (HELP_STR_BASE + 24)
|
||||
#define TextNAV_MARK (HELP_STR_BASE + 26)
|
||||
#define TextNAV_BACKLINK (HELP_STR_BASE + 28)
|
||||
#define TextNAV_FORWLINK (HELP_STR_BASE + 30)
|
||||
#define TextNAV_PREVPAGE (HELP_STR_BASE + 32)
|
||||
#define TextNAV_NEXTPAGE (HELP_STR_BASE + 34)
|
||||
|
||||
/* General strings */
|
||||
#define TextCLIP_ERR (HELP_STR_BASE + 36)
|
||||
#define TextMEM_ERR (HELP_STR_BASE + 38)
|
||||
#define TextCLIP_PUT_ERR (HELP_STR_BASE + 40)
|
||||
#define TextPRINT_ERR (HELP_STR_BASE + 42)
|
||||
#define TextPRINT_OK (HELP_STR_BASE + 44)
|
||||
#define TextCLIP_OK (HELP_STR_BASE + 46)
|
||||
#define TextTHREAD_INFO (HELP_STR_BASE + 48)
|
||||
#define TextMARKED_INFO (HELP_STR_BASE + 50)
|
||||
|
||||
/* Copy selection window */
|
||||
#define TextCOPYPART_NONE (HELP_STR_BASE + 52)
|
||||
|
||||
/* Some labels */
|
||||
#define TextMARK (HELP_STR_BASE + 54)
|
||||
#define TextUNMARK (HELP_STR_BASE + 56)
|
||||
|
||||
/* hyper link & hot link attribute strings */
|
||||
#define TextHYPERLINK (HELP_STR_BASE + 60)
|
||||
#define TextHOTLINK (HELP_STR_BASE + 62)
|
||||
|
||||
|
||||
/*
|
||||
* Define the local resource file constants
|
||||
*/
|
||||
/* Window, dialog identifiers */
|
||||
#define HELP_RES_BASE 29500
|
||||
#define TOPIC_WIN_RID (HELP_RES_BASE + 0)
|
||||
#define GOTO_DLG_RID (HELP_RES_BASE + 3)
|
||||
#define SEARCH_DLG_RID (HELP_RES_BASE + 4)
|
||||
#define TOPIC_SELCOPY_RID (HELP_RES_BASE + 5)
|
||||
#define HELPVIEW_ABOUT_RID (HELP_RES_BASE + 6)
|
||||
|
||||
/* Topic window menubar */
|
||||
#define TOPICWIN_MENUBAR (HELP_RES_BASE + 10)
|
||||
#define MHELP_FILE (HELP_RES_BASE + 11)
|
||||
#define MHELP_FILE_PRINT_SETUP (HELP_RES_BASE + 12)
|
||||
#define MHELP_FILE_PRINT (HELP_RES_BASE + 13)
|
||||
#define MHELP_FILE_EXIT (HELP_RES_BASE + 14)
|
||||
#define MHELP_EDIT (HELP_RES_BASE + 15)
|
||||
#define MHELP_EDIT_COPY M_EDIT_COPY /* (HELP_RES_BASE + 16) */
|
||||
#define MHELP_EDIT_AS_WRAPPED (HELP_RES_BASE + 17)
|
||||
#define MHELP_NAV (HELP_RES_BASE + 18)
|
||||
#define MHELP_NAV_SEARCH (HELP_RES_BASE + 19)
|
||||
#define MHELP_NAV_GOTO (HELP_RES_BASE + 20)
|
||||
#define MHELP_NAV_MARK (HELP_RES_BASE + 21)
|
||||
#define MHELP_NAV_BACKLINK (HELP_RES_BASE + 22)
|
||||
#define MHELP_NAV_FORWLINK (HELP_RES_BASE + 23)
|
||||
#define MHELP_NAV_PREVPAGE (HELP_RES_BASE + 24)
|
||||
#define MHELP_NAV_NEXTPAGE (HELP_RES_BASE + 25)
|
||||
#define MHELP_HELP (HELP_RES_BASE + 26)
|
||||
#define MHELP_HELP_ONHELP M_HELP_HELPONHELP
|
||||
#define MHELP_HELP_ABOUT (HELP_RES_BASE + 27)
|
||||
#define MHELP_EDIT_COPYPART (HELP_RES_BASE + 28)
|
||||
|
||||
/* Topic specific control identifiers */
|
||||
#define TOPIC_SEARCH (HELP_RES_BASE + 30)
|
||||
#define TOPIC_BOOKMARK (HELP_RES_BASE + 31)
|
||||
#define TOPIC_GOTO (HELP_RES_BASE + 32)
|
||||
#define TOPIC_BACKLINK (HELP_RES_BASE + 33)
|
||||
#define TOPIC_FORWLINK (HELP_RES_BASE + 34)
|
||||
#define TOPIC_VSCROLL (HELP_RES_BASE + 35)
|
||||
#define TOPIC_INFOGROUP (HELP_RES_BASE + 36)
|
||||
#define TOPIC_INFOLBL (HELP_RES_BASE + 37)
|
||||
#define TOPIC_CLIENTW (HELP_RES_BASE + 38)
|
||||
#define TOPIC_PREVPAGE (HELP_RES_BASE + 39)
|
||||
#define TOPIC_NEXTPAGE (HELP_RES_BASE + 40)
|
||||
|
||||
/* Shared identifiers */
|
||||
#define CLIENT_AREA (HELP_RES_BASE + 50)
|
||||
|
||||
/* Search dialog ids */
|
||||
#define SEARCH_BY_TOPICNAME (HELP_RES_BASE + 60)
|
||||
#define SEARCH_BY_KEYWORD (HELP_RES_BASE + 61)
|
||||
#define SEARCH_SELECT_LIST (HELP_RES_BASE + 62)
|
||||
#define SEARCH_MATCH_LIST (HELP_RES_BASE + 63)
|
||||
#define SEARCH_GOTO_MATCH (HELP_RES_BASE + 64)
|
||||
#define SEARCH_CANCEL DLG_CANCEL
|
||||
#define SEARCH_RADIO_LBL (HELP_RES_BASE + 66)
|
||||
#define SEARCH_ITEMS_LBL (HELP_RES_BASE + 67)
|
||||
#define SEARCH_MATCH_LBL (HELP_RES_BASE + 68)
|
||||
|
||||
/* Goto dialog ids */
|
||||
#define GOTO_CONTENTS M_HELP_CONTENTS
|
||||
#define GOTO_INDEX M_HELP_INDEX
|
||||
#define GOTO_CONTENTS M_HELP_CONTENTS
|
||||
#define GOTO_GLOSSARY M_HELP_GLOSSARY
|
||||
#define GOTO_KEYBOARD M_HELP_KEYBOARD
|
||||
#define GOTO_BOOKMARK_LIST (HELP_RES_BASE + 70)
|
||||
#define GOTO_BOOKMARK_BTN (HELP_RES_BASE + 71)
|
||||
#define GOTO_CANCEL DLG_CANCEL
|
||||
#define GOTO_GROUP (HELP_RES_BASE + 73)
|
||||
#define GOTO_BOOK_LBL (HELP_RES_BASE + 74)
|
||||
|
||||
/* Popup window sample definition */
|
||||
#define POPUP_WIN_RID (HELP_RES_BASE + 80)
|
||||
|
||||
/* Topic selection copy menubar */
|
||||
#define EDITSEL_MENUBAR (HELP_RES_BASE + 90)
|
||||
#define MHELP_TSE_EDIT (HELP_RES_BASE + 91)
|
||||
#define MHELP_TSE_EDIT_COPY /* (HELP_RES_BASE + 92) */ M_EDIT_COPY
|
||||
#define MHELP_TSE_HELP (HELP_RES_BASE + 93)
|
||||
#define MHELP_TSE_HELP_ONHELP M_HELP_HELPONHELP
|
||||
#define MHELP_TSE_HELP_ABOUT (HELP_RES_BASE + 94)
|
||||
|
||||
/* Other RID for selection copy window */
|
||||
#define TOPIC_SELCOPY_WIN_TX (HELP_RES_BASE + 100)
|
||||
#define TOPIC_SELCOPY_WIN_LBL (HELP_RES_BASE + 101)
|
||||
|
||||
/* RID's for viewer about box */
|
||||
#define XHV_STATIC_1 (HELP_RES_BASE + 110)
|
||||
#define XHV_STATIC_2 (HELP_RES_BASE + 111)
|
||||
|
||||
#endif /* NO_HELP_RESOURCES */
|
||||
|
||||
#endif /* XVT_INCL_HELP */
|
||||
|
47
xvaga/xvt_menu.h
Executable file
47
xvaga/xvt_menu.h
Executable file
@ -0,0 +1,47 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copyright 1987-1996 XVT Software. All rights reserved.
|
||||
* May be used only in accordance with a valid Source Code License
|
||||
* Agreement with XVT Software.
|
||||
*
|
||||
* $RCSfile: xvt_menu.h,v $
|
||||
* $Revision: 1.1 $
|
||||
*
|
||||
* Purpose: XVT menu subsystem definitions.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef XVT_INCL_XVT_MENU
|
||||
#define XVT_INCL_XVT_MENU
|
||||
|
||||
#define MAX_MENU_TAG 31999 /* max allowable application menu tag */
|
||||
|
||||
#define M_FILE 32000
|
||||
#define M_FILE_NEW (M_FILE+1)
|
||||
#define M_FILE_OPEN (M_FILE+2)
|
||||
#define M_FILE_CLOSE (M_FILE+3)
|
||||
#define M_FILE_SAVE (M_FILE+4)
|
||||
#define M_FILE_SAVE_AS (M_FILE+5)
|
||||
#define M_FILE_REVERT (M_FILE+6)
|
||||
#define M_FILE_PG_SETUP (M_FILE+7)
|
||||
#define M_FILE_PRINT (M_FILE+8)
|
||||
#define M_FILE_QUIT (M_FILE+9)
|
||||
#define M_FILE_ABOUT (M_FILE+10)
|
||||
|
||||
#define M_EDIT 32025
|
||||
#define M_EDIT_UNDO (M_EDIT+1)
|
||||
#define M_EDIT_CUT (M_EDIT+2)
|
||||
#define M_EDIT_COPY (M_EDIT+3)
|
||||
#define M_EDIT_PASTE (M_EDIT+4)
|
||||
#define M_EDIT_CLEAR (M_EDIT+5)
|
||||
#define M_EDIT_SEL_ALL (M_EDIT+6)
|
||||
#define M_EDIT_CLIPBOARD (M_EDIT+7)
|
||||
|
||||
#define M_FONT 32050 /* needs range of 300 for Mac */
|
||||
#define M_STYLE 32350
|
||||
#define M_HELP 32450 /* reserve about 50 for Help */
|
||||
#define M_DEFAULT_SEPARATOR 32765 /* indicates no tag value set */
|
||||
#define FONT_MENU_TAG 32766 /* magic cookie */
|
||||
/* XVT/Mac reserves 32767 */
|
||||
|
||||
#endif /* XVT_INCL_XVT_MENU */
|
443
xvaga/xvt_type.h
Executable file
443
xvaga/xvt_type.h
Executable file
@ -0,0 +1,443 @@
|
||||
#define BOOLEAN short
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#define TRUE 1
|
||||
#endif
|
||||
|
||||
typedef unsigned long WINDOW;
|
||||
typedef unsigned int UNIT_TYPE;
|
||||
typedef unsigned long ULONG;
|
||||
typedef unsigned long XVT_ERRMSG;
|
||||
|
||||
typedef wchar_t XVT_WCHAR;
|
||||
typedef short MENU_TAG;
|
||||
typedef short CURSOR;
|
||||
typedef char* DATA_PTR;
|
||||
|
||||
#define EOL_SEQ "\015\012"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
short top, left, bottom, right;
|
||||
} RCT;
|
||||
|
||||
typedef long XVT_HELP_TID;
|
||||
typedef unsigned long COLOR;
|
||||
typedef unsigned long XVT_COLOR_TYPE;
|
||||
typedef unsigned long XVT_FONT_ATTR_MASK;
|
||||
typedef unsigned long XVT_FONT_STYLE_MASK;
|
||||
typedef long PICTURE;
|
||||
typedef void* XVT_IMAGE;
|
||||
|
||||
typedef enum {
|
||||
XVT_IMAGE_NONE,
|
||||
XVT_IMAGE_CL8,
|
||||
XVT_IMAGE_RGB,
|
||||
XVT_IMAGE_MONO,
|
||||
} XVT_IMAGE_FORMAT;
|
||||
|
||||
#define XVT_FNTID void*
|
||||
typedef void* XVT_PALETTE;
|
||||
typedef unsigned long XVT_PALETTE_ATTR;
|
||||
|
||||
#define XVT_ESC_GET_PRINTER_INFO 883
|
||||
|
||||
typedef enum e_display_type {
|
||||
XVT_DISPLAY_MONO, /* monochromatic display */
|
||||
XVT_DISPLAY_GRAY_16, /* 16-entry grayscale */
|
||||
XVT_DISPLAY_GRAY_256, /* 256-entry grayscale */
|
||||
XVT_DISPLAY_COLOR_16, /* 16-entry color */
|
||||
XVT_DISPLAY_COLOR_256, /* 256-entry color */
|
||||
XVT_DISPLAY_DIRECT_COLOR, /* full color capabilities */
|
||||
} XVT_DISPLAY_TYPE;
|
||||
|
||||
typedef enum {
|
||||
|
||||
XVT_PALETTE_NONE,
|
||||
XVT_PALETTE_STOCK,
|
||||
XVT_PALETTE_CURRENT,
|
||||
XVT_PALETTE_CUBE16,
|
||||
XVT_PALETTE_CUBE256,
|
||||
XVT_PALETTE_USER
|
||||
} XVT_PALETTE_TYPE;
|
||||
|
||||
typedef enum { /* response from ask fcn */
|
||||
RESP_DEFAULT, /* default button */
|
||||
RESP_2, /* second button */
|
||||
RESP_3, /* third button */
|
||||
} ASK_RESPONSE;
|
||||
|
||||
typedef enum { /* result from file open & save dialogs */
|
||||
FL_BAD, /* error occurred */
|
||||
FL_CANCEL, /* cancel button clicked */
|
||||
FL_OK, /* OK button clicked */
|
||||
} FL_STATUS;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char path[_MAX_DIR];
|
||||
} DIRECTORY;
|
||||
|
||||
typedef struct s_mitem {
|
||||
|
||||
MENU_TAG tag; /* menu tag */
|
||||
char *text; /* text to appear in menu */
|
||||
short mkey; /* mnemonic */
|
||||
unsigned enabled: 1; /* enabled? */
|
||||
unsigned checked: 1; /* checked? */
|
||||
unsigned checkable: 1; /* checkable? */
|
||||
unsigned separator: 1; /* separator? */
|
||||
struct s_mitem *child; /* pointer to submenu */
|
||||
} MENU_ITEM;
|
||||
|
||||
#define SZ_FNAME _MAX_FNAME
|
||||
|
||||
typedef struct { /* file specification */
|
||||
DIRECTORY dir; /* directory */
|
||||
char type[6]; /* file type/extension */
|
||||
char name[_MAX_FNAME]; /* filename */
|
||||
char creator[6]; /* file creator */
|
||||
} FILE_SPEC;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
void* pr;
|
||||
} PRINT_RCD;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
short v, h;
|
||||
} PNT;
|
||||
|
||||
typedef struct { char* str; long data; void* next; } SLIST_ITEM;
|
||||
typedef SLIST_ITEM* SLIST_ELT;
|
||||
|
||||
typedef struct { SLIST_ELT head; long count; } xvtList;
|
||||
typedef xvtList* SLIST;
|
||||
|
||||
typedef enum { /* drawing (transfer) mode */
|
||||
M_COPY,
|
||||
M_OR,
|
||||
M_XOR,
|
||||
M_CLEAR,
|
||||
M_NOT_COPY,
|
||||
M_NOT_OR,
|
||||
M_NOT_XOR,
|
||||
M_NOT_CLEAR
|
||||
} DRAW_MODE;
|
||||
|
||||
typedef enum e_pen_style { /* pen style */
|
||||
P_SOLID, /* solid */
|
||||
P_DOT, /* dotted line */
|
||||
P_DASH /* dashed line */
|
||||
} PEN_STYLE;
|
||||
|
||||
typedef enum {
|
||||
PAT_NONE, /* no pattern */
|
||||
PAT_HOLLOW, /* hollow */
|
||||
PAT_SOLID, /* solid fill */
|
||||
PAT_HORZ, /* horizontal lines */
|
||||
PAT_VERT, /* vertical lines */
|
||||
PAT_FDIAG, /* diagonal lines -- top-left to bottom-right */
|
||||
PAT_BDIAG, /* diagonal lines -- top-right to bottom-left */
|
||||
PAT_CROSS, /* horizontal and vertical crossing lines */
|
||||
PAT_DIAGCROSS, /* diagonol crossing lines */
|
||||
PAT_RUBBER, /* rubber banding */
|
||||
PAT_SPECIAL
|
||||
} PAT_STYLE;
|
||||
|
||||
typedef struct { /* color pen tool */
|
||||
short width; /* width */
|
||||
PAT_STYLE pat; /* pattern */
|
||||
PEN_STYLE style; /* style */
|
||||
COLOR color; /* color */
|
||||
} CPEN;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
PAT_STYLE pat;
|
||||
COLOR color;
|
||||
} CBRUSH;
|
||||
|
||||
typedef struct { /* color drawing tools */
|
||||
CPEN pen; /* color pen */
|
||||
CBRUSH brush; /* color brush */
|
||||
DRAW_MODE mode; /* drawing mode */
|
||||
COLOR fore_color; /* foreground color */
|
||||
COLOR back_color; /* background color */
|
||||
BOOLEAN opaque_text; /* is text opaque*/
|
||||
} DRAW_CTOOLS;
|
||||
|
||||
typedef enum { /* scrollbar activity */
|
||||
SC_NONE, /* nowhere (ignore) */
|
||||
SC_LINE_UP, /* one line up */
|
||||
SC_LINE_DOWN, /* one line down */
|
||||
SC_PAGE_UP, /* previous page */
|
||||
SC_PAGE_DOWN, /* next page */
|
||||
SC_THUMB, /* thumb repositioning */
|
||||
SC_THUMBTRACK /* thumb tracking */
|
||||
} SCROLL_CONTROL;
|
||||
|
||||
typedef enum { /* type of window */
|
||||
|
||||
W_NONE, /* marker for end of WIN_DEF array */
|
||||
W_DOC, /* document window */
|
||||
W_PLAIN, /* window with plain border */
|
||||
W_DBL, /* window with double border */
|
||||
W_PRINT, /* XVT internal use only */
|
||||
W_TASK, /* task window */
|
||||
W_SCREEN, /* screen window */
|
||||
W_NO_BORDER, /* no border */
|
||||
W_PIXMAP, /* pixmap */
|
||||
W_MODAL, /* modal window */
|
||||
WD_MODAL, /* modal dialog */
|
||||
WD_MODELESS, /* modeless dialog */
|
||||
WC_PUSHBUTTON, /* button control */
|
||||
WC_RADIOBUTTON, /* radio button control */
|
||||
WC_CHECKBOX, /* check box control */
|
||||
WC_HSCROLL, /* horizontal scrollbar control */
|
||||
WC_VSCROLL, /* vertical scrollbar control */
|
||||
WC_EDIT, /* edit control */
|
||||
WC_TEXT, /* static text control */
|
||||
WC_LBOX, /* list box control */
|
||||
WC_LISTBUTTON, /* button with list */
|
||||
|
||||
WC_LISTEDIT, /* edit with field list */
|
||||
WC_GROUPBOX, /* group box */
|
||||
WC_TEXTEDIT, /* text edit object */
|
||||
WC_ICON, /* icon control */
|
||||
|
||||
WO_TE, /* text edit */
|
||||
} WIN_TYPE;
|
||||
|
||||
typedef enum {
|
||||
SEV_NONE,
|
||||
SEV_WARNING,
|
||||
SEV_ERROR,
|
||||
SEV_FATAL,
|
||||
} XVT_ERRSEV;
|
||||
|
||||
typedef enum { /* type of scrollbar */
|
||||
|
||||
HSCROLL, /* horizontal */
|
||||
VSCROLL, /* vertical */
|
||||
HVSCROLL, /* either */
|
||||
|
||||
} SCROLL_TYPE;
|
||||
|
||||
typedef struct s_ctlinfo {
|
||||
|
||||
WIN_TYPE type;
|
||||
WINDOW win;
|
||||
union {
|
||||
|
||||
struct s_scroll {
|
||||
|
||||
SCROLL_CONTROL what;
|
||||
short pos;
|
||||
|
||||
} scroll;
|
||||
struct s_edit {
|
||||
|
||||
BOOLEAN focus_change;
|
||||
BOOLEAN active;
|
||||
|
||||
} edit;
|
||||
struct s_lbox {
|
||||
|
||||
BOOLEAN dbl_click;
|
||||
|
||||
} lbox;
|
||||
struct s_listedit {
|
||||
|
||||
BOOLEAN focus_change;
|
||||
BOOLEAN active;
|
||||
|
||||
} listedit;
|
||||
|
||||
} v;
|
||||
|
||||
} CONTROL_INFO;
|
||||
|
||||
typedef struct s_xvt_color_component {
|
||||
|
||||
XVT_COLOR_TYPE type; /* color component being defined */
|
||||
COLOR color; /* RGB color value */
|
||||
|
||||
} XVT_COLOR_COMPONENT;
|
||||
|
||||
typedef struct s_win_def {
|
||||
|
||||
WIN_TYPE wtype; /* WC_* or WO_* type */
|
||||
|
||||
RCT rct;
|
||||
char *text;
|
||||
UNIT_TYPE units;
|
||||
XVT_COLOR_COMPONENT * ctlcolors;
|
||||
union {
|
||||
|
||||
struct s_win_def_win { /* WINDOW's */
|
||||
|
||||
short int menu_rid; /* menu resource id */
|
||||
MENU_ITEM *menu_p; /* pointer to menu tree */
|
||||
long flags; /* WSF_* flags */
|
||||
XVT_FNTID ctl_font_id; /* control font id */
|
||||
|
||||
} win;
|
||||
|
||||
struct s_win_def_dlg { /* DIALOG's */
|
||||
|
||||
long flags; /* WSF_* flags */
|
||||
XVT_FNTID ctl_font_id; /* control font id */
|
||||
|
||||
} dlg;
|
||||
|
||||
struct s_win_def_ctl { /* CONTROL's */
|
||||
|
||||
short int ctrl_id;
|
||||
|
||||
short int icon_id; /* for icons only */
|
||||
long flags; /* CTL_* flags */
|
||||
XVT_FNTID font_id; /* logical font */
|
||||
|
||||
} ctl;
|
||||
|
||||
struct s_win_def_tx { /* text edit objects */
|
||||
|
||||
unsigned short attrib; /* TX_* flags */
|
||||
XVT_FNTID font_id; /* logical font */
|
||||
short margin; /* right margin */
|
||||
short limit; /* max chars */
|
||||
short int tx_id; /* text ID */
|
||||
|
||||
} tx;
|
||||
|
||||
} v;
|
||||
|
||||
} WIN_DEF;
|
||||
|
||||
typedef enum {
|
||||
E_CREATE, /* creation */
|
||||
E_DESTROY, /* destruction */
|
||||
E_FOCUS, /* window focus gain/loss */
|
||||
E_SIZE, /* resize */
|
||||
E_UPDATE, /* update */
|
||||
E_CLOSE, /* close window request */
|
||||
E_MOUSE_DOWN, /* mouse down */
|
||||
E_MOUSE_UP, /* mouse up */
|
||||
E_MOUSE_MOVE, /* mouse move */
|
||||
E_MOUSE_DBL, /* mouse double click */
|
||||
E_CHAR, /* character typed */
|
||||
E_VSCROLL, /* vert. window scrollbar activity */
|
||||
E_HSCROLL, /* horz. window scrollbar activity */
|
||||
E_COMMAND, /* menu command */
|
||||
E_FONT, /* font menu selection */
|
||||
E_CONTROL, /* control activity */
|
||||
E_TIMER, /* timer */
|
||||
E_QUIT, /* application shutdown request */
|
||||
E_HELP, /* help invoked */
|
||||
E_USER, /* user defined */
|
||||
} EVENT_TYPE;
|
||||
|
||||
typedef struct s_event {
|
||||
|
||||
EVENT_TYPE type;
|
||||
union {
|
||||
|
||||
struct s_mouse {
|
||||
|
||||
PNT where;
|
||||
BOOLEAN shift;
|
||||
BOOLEAN control;
|
||||
short button;
|
||||
|
||||
} mouse;
|
||||
struct s_char {
|
||||
|
||||
XVT_WCHAR ch;
|
||||
BOOLEAN shift;
|
||||
BOOLEAN control;
|
||||
BOOLEAN virtual_key;
|
||||
unsigned long modifiers;
|
||||
|
||||
} chr;
|
||||
BOOLEAN active;
|
||||
BOOLEAN query;
|
||||
struct s_scroll_info {
|
||||
|
||||
SCROLL_CONTROL what;
|
||||
short pos;
|
||||
|
||||
} scroll;
|
||||
struct s_cmd {
|
||||
|
||||
MENU_TAG tag;
|
||||
BOOLEAN shift;
|
||||
BOOLEAN control;
|
||||
|
||||
} cmd;
|
||||
struct s_size {
|
||||
|
||||
short height;
|
||||
short width;
|
||||
|
||||
} size;
|
||||
struct s_efont {
|
||||
|
||||
XVT_FNTID font_id;
|
||||
|
||||
} font;
|
||||
struct s_ctl {
|
||||
|
||||
short id;
|
||||
CONTROL_INFO ci;
|
||||
|
||||
} ctl;
|
||||
struct s_update {
|
||||
|
||||
RCT rct;
|
||||
|
||||
} update;
|
||||
struct s_timer {
|
||||
|
||||
long id;
|
||||
|
||||
} timer;
|
||||
struct s_user {
|
||||
|
||||
long id;
|
||||
void *ptr;
|
||||
|
||||
} user;
|
||||
struct s_help {
|
||||
|
||||
WINDOW obj;
|
||||
MENU_TAG tag;
|
||||
XVT_HELP_TID tid;
|
||||
|
||||
}help;
|
||||
|
||||
} v;
|
||||
|
||||
} EVENT;
|
||||
|
||||
typedef unsigned long EVENT_MASK;
|
||||
typedef long (* EVENT_HANDLER) (WINDOW win, EVENT *ep);
|
||||
|
||||
typedef BOOLEAN (* XVT_ERRMSG_HANDLER) (XVT_ERRMSG err, DATA_PTR context);
|
||||
|
||||
typedef enum { /* std. clipboard format */
|
||||
CB_TEXT, /* ASCII text */
|
||||
CB_PICT, /* encapsulated picture */
|
||||
CB_APPL /* app's own (must have name) */
|
||||
} CB_FORMAT;
|
||||
|
||||
typedef struct s_xvt_config {
|
||||
|
||||
short menu_bar_ID; /* task menubar ResID */
|
||||
short about_box_ID; /* default aboutbox ResID */
|
||||
char *base_appl_name; /* application's "filename" */
|
||||
char *appl_name; /* application's name */
|
||||
char *taskwin_title; /* title for task window */
|
||||
|
||||
} XVT_CONFIG;
|
306
xvaga/xvtextra.cpp
Executable file
306
xvaga/xvtextra.cpp
Executable file
@ -0,0 +1,306 @@
|
||||
#include "wxinc.h"
|
||||
#include "wx/print.h"
|
||||
#include "wx/printdlg.h"
|
||||
|
||||
#include "xvt.h"
|
||||
#include "xvtextra.h"
|
||||
#include "oswin32.h"
|
||||
|
||||
#include "xvintern.h"
|
||||
|
||||
struct TPRINT_RCD : public PRINT_RCD
|
||||
{
|
||||
char m_data[4096];
|
||||
|
||||
TPRINT_RCD() { pr = NULL; memset(m_data, 0, sizeof(m_data)); }
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TwxPrintOut
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TwxPrintOut : public wxPrintout
|
||||
{
|
||||
protected:
|
||||
virtual bool HasPage(int pageNum);
|
||||
virtual bool OnPrintPage(int pageNum);
|
||||
|
||||
TPRINT_RCD* m_prcd;
|
||||
|
||||
public:
|
||||
void InitDC(TPRINT_RCD* prcd);
|
||||
TwxPrintOut(TPRINT_RCD* prcd = NULL);
|
||||
virtual ~TwxPrintOut();
|
||||
};
|
||||
|
||||
static TwxPrintOut* m_po = NULL;
|
||||
|
||||
bool TwxPrintOut::HasPage(int pageNum)
|
||||
{ return TRUE; }
|
||||
|
||||
bool TwxPrintOut::OnPrintPage(int pageNum)
|
||||
{ return FALSE; }
|
||||
|
||||
void TwxPrintOut::InitDC(TPRINT_RCD* prcd)
|
||||
{
|
||||
wxDC* dc = GetDC();
|
||||
if (dc != NULL)
|
||||
delete dc;
|
||||
|
||||
m_prcd = prcd;
|
||||
|
||||
if (m_prcd == NULL)
|
||||
{
|
||||
wxPrinter printer;
|
||||
dc = new wxPrinterDC(printer.GetPrintDialogData().GetPrintData());
|
||||
}
|
||||
else
|
||||
{
|
||||
wxPrintData data;
|
||||
#ifdef WIN32
|
||||
data.SetNativeData(OsWin32_ConvertToNativePrinterInfo(prcd->m_data));
|
||||
#else
|
||||
data.SetNativeData(prcd->m_data);
|
||||
#endif
|
||||
data.ConvertFromNative();
|
||||
dc = new wxPrinterDC(data);
|
||||
}
|
||||
|
||||
wxSize s = dc->GetPPI();
|
||||
SetPPIPrinter(s.x, s.y);
|
||||
|
||||
s = dc->GetSize();
|
||||
SetPageSizePixels(s.x, s.y);
|
||||
|
||||
SetDC(dc);
|
||||
}
|
||||
|
||||
TwxPrintOut::TwxPrintOut(TPRINT_RCD* prcd)
|
||||
{
|
||||
InitDC(prcd);
|
||||
}
|
||||
|
||||
TwxPrintOut::~TwxPrintOut()
|
||||
{
|
||||
wxDC* dc = GetDC();
|
||||
if (dc != NULL)
|
||||
delete dc;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TPrintDC
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
wxDC& TPrintDC::GetDC(bool)
|
||||
{
|
||||
_dc = m_po->GetDC(); // Forza display context corrente
|
||||
return TDC::GetDC(false);
|
||||
}
|
||||
|
||||
TPrintDC::TPrintDC(wxWindow* owner) : TDC(owner)
|
||||
{ }
|
||||
|
||||
TPrintDC::~TPrintDC()
|
||||
{
|
||||
_dc = NULL; // Evita distruzione!
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// Printing management :-(((((
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
BOOLEAN xvt_app_escape(int esc_code, PRINT_RCD* rcd, long* ph, long* pw, long* pvr, long* phr)
|
||||
{
|
||||
switch (esc_code)
|
||||
{
|
||||
case XVT_ESC_GET_PRINTER_INFO:
|
||||
{
|
||||
const bool temp = m_po == NULL;
|
||||
if (temp)
|
||||
m_po = new TwxPrintOut((TPRINT_RCD*)rcd);
|
||||
int w, h;
|
||||
m_po->GetPPIPrinter(&w, &h);
|
||||
*phr = w; *pvr = h;
|
||||
m_po->GetPageSizePixels(&w, &h);
|
||||
*pw = w; *ph = h;
|
||||
if (temp)
|
||||
{
|
||||
delete m_po;
|
||||
m_po = NULL;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOLEAN xvt_dm_post_page_setup(PRINT_RCD* precp)
|
||||
{
|
||||
wxPageSetupDialog dlg((wxWindow*)TASK_WIN);
|
||||
TPRINT_RCD* rcd = (TPRINT_RCD*)precp;
|
||||
|
||||
wxPageSetupData& pdd = dlg.GetPageSetupData();
|
||||
pdd.EnablePrinter(false); // Vieta di cambiare stampante
|
||||
wxPrintData& data = pdd.GetPrintData();
|
||||
|
||||
#ifdef WIN32
|
||||
data.SetNativeData(OsWin32_ConvertToNativePrinterInfo(rcd->m_data));
|
||||
#else
|
||||
data.SetNativeData(rcd->m_data);
|
||||
#endif
|
||||
data.ConvertFromNative();
|
||||
|
||||
if (dlg.ShowModal() == wxID_OK)
|
||||
{
|
||||
data.ConvertToNative();
|
||||
void* pHandle = data.GetNativeData();
|
||||
#ifdef WIN32
|
||||
void* ptr = OsWin32_ConvertFromNativePrinterInfo(pHandle);
|
||||
memcpy(rcd->m_data, ptr, sizeof(rcd->m_data));
|
||||
delete ptr;
|
||||
#else
|
||||
memcpy(rcd->m_data, pHandle, sizeof(rcd->m_data));
|
||||
#endif
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
long xvt_fmap_get_family_sizes(PRINT_RCD *precp, char *family, long *size_array, BOOLEAN *scalable, long max_sizes)
|
||||
{
|
||||
long size = 1;
|
||||
size_array[0] = 13;
|
||||
*scalable = FALSE;
|
||||
|
||||
#ifdef WIN32
|
||||
if (precp != NULL)
|
||||
{
|
||||
TwxPrintOut* po = new TwxPrintOut((TPRINT_RCD*)precp);
|
||||
size = OsWin32_EnumerateSizes(po->GetDC()->GetHDC(), family, size_array, scalable, max_sizes);
|
||||
}
|
||||
#endif
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
long xvt_fmap_get_families(PRINT_RCD *precp, char **family_array, long max_families)
|
||||
{
|
||||
long size = 1;
|
||||
family_array[0] = xvt_str_duplicate(XVT_FFN_COURIER);
|
||||
|
||||
#ifdef WIN32
|
||||
if (precp != NULL)
|
||||
{
|
||||
TwxPrintOut* po = new TwxPrintOut((TPRINT_RCD*)precp);
|
||||
size = OsWin32_EnumerateFamilies(po->GetDC()->GetHDC(), family_array, max_families);
|
||||
}
|
||||
#endif
|
||||
return size;
|
||||
}
|
||||
|
||||
|
||||
void xvt_print_close(void)
|
||||
{
|
||||
// Nothing to do
|
||||
}
|
||||
|
||||
BOOLEAN xvt_print_close_page(PRINT_RCD* /*precp*/)
|
||||
{
|
||||
BOOLEAN ok = m_po != NULL;
|
||||
if (ok)
|
||||
m_po->GetDC()->EndPage();
|
||||
return ok;
|
||||
}
|
||||
|
||||
PRINT_RCD* xvt_print_create(int *sizep)
|
||||
{
|
||||
TPRINT_RCD* pr = new TPRINT_RCD;
|
||||
#ifdef WIN32
|
||||
*sizep = OsWin32_GetDefaultPrinterInfo(pr->m_data, sizeof(pr->m_data));
|
||||
#endif
|
||||
*sizep += 4; // Unused pointer size
|
||||
return pr;
|
||||
}
|
||||
|
||||
WINDOW xvt_print_create_win(PRINT_RCD* precp, char* /* title */)
|
||||
{
|
||||
WINDOW win = NULL_WIN;
|
||||
if (m_po != NULL)
|
||||
{
|
||||
m_po->InitDC((TPRINT_RCD*)precp);
|
||||
m_po->OnBeginPrinting();
|
||||
m_po->OnBeginDocument(1, 32000);
|
||||
win = _print_win;
|
||||
}
|
||||
return win;
|
||||
}
|
||||
|
||||
void xvt_print_destroy(PRINT_RCD *precp)
|
||||
{
|
||||
// Nothing to do!
|
||||
}
|
||||
|
||||
RCT* xvt_print_get_next_band(void)
|
||||
{
|
||||
static bool yes = false;
|
||||
static RCT rct;
|
||||
yes = !yes;
|
||||
|
||||
if (m_po == NULL || !yes)
|
||||
return NULL;
|
||||
|
||||
int w, h;
|
||||
m_po->GetPageSizePixels(&w, &h);
|
||||
rct.left = rct.top = 0;
|
||||
rct.right = w;
|
||||
rct.bottom = h;
|
||||
|
||||
return &rct;
|
||||
}
|
||||
|
||||
BOOLEAN xvt_print_is_valid(PRINT_RCD* precp)
|
||||
{
|
||||
BOOLEAN ok = precp != NULL;
|
||||
if (ok)
|
||||
{
|
||||
#ifdef WIN32
|
||||
ok = OsWin32_CheckPrinterInfo(((TPRINT_RCD*)precp)->m_data);
|
||||
#endif
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
BOOLEAN xvt_print_open(void)
|
||||
{
|
||||
return m_po == NULL;
|
||||
}
|
||||
|
||||
BOOLEAN xvt_print_start_thread(BOOLEAN(*print_fcn)(long), long data)
|
||||
{
|
||||
wxWindow* tw = (wxWindow*)TASK_WIN;
|
||||
m_po = new TwxPrintOut;
|
||||
|
||||
// Operations delayed until printwin creation!
|
||||
// m_po->OnBeginPrinting();
|
||||
// m_po->OnBeginDocument(1, 32000);
|
||||
|
||||
print_fcn(data);
|
||||
|
||||
m_po->OnEndDocument();
|
||||
m_po->OnEndPrinting();
|
||||
|
||||
delete m_po; m_po = NULL;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOLEAN xvt_print_open_page(PRINT_RCD* /* precp */)
|
||||
{
|
||||
BOOLEAN ok = m_po != NULL;
|
||||
if (ok)
|
||||
m_po->GetDC()->StartPage();
|
||||
return ok;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user