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:
guy 2002-02-28 14:26:23 +00:00
parent bf0690bda0
commit b3b79ff0d8
16 changed files with 5625 additions and 0 deletions

37
xvaga/agasys.cpp Executable file
View 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
View 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
View 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
View 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
View 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
View 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

File diff suppressed because it is too large Load Diff

163
xvaga/xvaga.dsp Executable file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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;
}