Patch level : 2.1 nopatch

Files correlati     : xvaga.dll
Ricompilazione Demo : [ ]
Commento            :

Risolti conflitti vari


git-svn-id: svn://10.65.10.50/trunk@12007 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2004-04-28 09:49:37 +00:00
parent f92a348dd0
commit 3509dfabbb
6 changed files with 87 additions and 53 deletions

@ -684,6 +684,8 @@ bool OsWin32_GotoUrl(const char* url, const char* action)
return error > 32;
}
/*
// The function that prints one line without formfeed
BOOL OsWin32_SpoolRow(const char* pData,
unsigned int cbBytes,
@ -714,10 +716,6 @@ BOOL OsWin32_SpoolRow(const char* pData,
if (!hPrnDC)
return FALSE;
/*
if (bLocalDC)
Escape (hPrnDC, SETABORTPROC, 0, (LPSTR) PrintAbortProc, NULL);
*/
// PASSTHROUGH is required. If driver doesn't support it, bail out.
bAbort = FALSE;
@ -762,7 +760,31 @@ MPLCleanUp: // Done
return !bAbort;
}
*/
void OsWin32_SpoolNewLine(unsigned int hdc)
{
char output[4];
output[0] = 1; // Lunghezza: byte basso
output[1] = 0; // Lunghezza: byte alto
output[2] = '\n'; // A capo
output[3] = 0; // Shwarzenegger
::Escape((HDC)hdc, PASSTHROUGH, 0, output, NULL );
}
bool OsWin32_IsGenericTextOnly(void* data)
{
LPDEVMODE pdm = (LPDEVMODE)data;
if (pdm->dmYResolution == 6) // Win 9x only
return true;
if (strstr((const char*)pdm->dmDeviceName, "eneric") != NULL)
return true;
return false;
}
#ifdef SPEECH_API

@ -32,7 +32,10 @@ bool OsWin32_SL_Logout() ;
bool OsWin32_SL_ReadBlock(unsigned short reg, unsigned short size, unsigned short* data);
bool OsWin32_SL_WriteBlock(unsigned short reg, unsigned short size, const unsigned short* data);
BOOL OsWin32_SpoolRow(const char* pData, unsigned int cbBytes, unsigned int hPrnDC);
//BOOL OsWin32_SpoolRow(const char* pData, unsigned int cbBytes, unsigned int hPrnDC);
void OsWin32_SpoolNewLine(unsigned int hdc);
bool OsWin32_IsGenericTextOnly(void* devmode);
int OsWin32_GetSessionId();
bool OsWin32_IsWindowsServer();

@ -612,13 +612,14 @@ bool TDCMapper::HasValidDC(WINDOW owner) const
class TwxWindowBase : public wxWindow
{
#ifdef LINUX
wxString Title;
#endif
public:
#ifdef LINUX
wxString & GetTitle() {return Title;}
wxString m_strTitle;
virtual void SetTitle(const wxString& title) { wxWindow::SetTitle(m_strTitle = title); }
virtual wxString GetTitle() const { return m_strTitle; }
#endif
TwxWindowBase() { }
public:
TwxWindowBase() { }
TwxWindowBase(wxWindow *parent, wxWindowID id, const wxString &title,
const wxPoint & pos, const wxSize & size, long style);
@ -631,10 +632,7 @@ TwxWindowBase::TwxWindowBase(wxWindow *parent, wxWindowID id, const wxString &ti
const wxPoint &pos, const wxSize &size, long style)
: wxWindow(parent, id, pos, size, style)
{
SetTitle(title);
#ifdef LINUX
Title = title;
#endif
SetTitle(title);
}
class TwxWindow : public TwxWindowBase
@ -1843,9 +1841,9 @@ class TXVT_IMAGE
public:
const wxImage& Image() const { return m_image; }
wxImage& Image() { m_bDirty = TRUE; return m_image; }
wxImage& Image() { m_bDirty = true; return m_image; }
const wxBitmap& Bitmap();
TXVT_IMAGE() : m_bDirty(FALSE) { }
TXVT_IMAGE() : m_bDirty(false) { }
};
const wxBitmap& TXVT_IMAGE::Bitmap()
@ -2209,7 +2207,7 @@ int xvt_dwin_get_text_width(WINDOW win, const char *s, int len)
str.Truncate(len);
if (str.StartsWith("ABCDEFGH") || str.StartsWith("MMMMMMMM"))
{
const wxString emme('n', str.Length());
const wxString emme('G', str.Length()); // Questa lettera cambia con le mode
str = emme;
}
dc.GetTextExtent(str, &width, &height);
@ -2915,7 +2913,6 @@ void xvt_image_set_clut(XVT_IMAGE image, short index, COLOR color)
if (bmp.HasPalette())
{
const wxPalette& pal = bmp.GetPalette();
CAST_COLOR (color, c);
unsigned char ri, gi, bi;
pal.GetRGB(index, &ri, &gi, &bi);
@ -4206,6 +4203,9 @@ long xvt_vobj_get_attr(WINDOW win, long data)
ret = long(_task_win);
break;
case ATTR_WIN_INSTANCE:
ret = 0;
break;
case ATTR_WIN_OPENFILENAME_HOOK:
ret = 0;
break;
case ATTR_WIN_PM_DRAWABLE_TWIN:

@ -19,7 +19,7 @@ IMPLEMENT_APP(TMainApp)
bool TMainApp::OnInit()
{
xvt_main(argc, argv);
return FALSE; // Prevents entering the Main Loop
return false; // Prevents entering the Main Loop
}
int TMainApp::OnExit()

@ -1,5 +1,5 @@
#define XVT_OS_LINUX 300
#define XVT_OS_WIN32 400
#define XVT_OS_LINUX 595
#ifdef WIN32
#define XVT_OS XVT_OS_WIN32
@ -7,15 +7,35 @@
#define XVT_OS XVT_OS_LINUX
#endif
#define XVT_WS_LINUX 301
#define XVT_WS_WIN_95 401
#define XVT_WS_WIN_98 402
#define XVT_WS_WIN_ME 403
#define XVT_WS_WIN_NT 411
#define XVT_WS_WIN_2000 412
#define XVT_WS_WIN_XP 413
#define XVT_WS_LINUX 301
#define XVT_WS_WIN_95 401
#define XVT_WS_WIN_98 402
#define XVT_WS_WIN_ME 403
#define XVT_WS_WIN_NT 411
#define XVT_WS_WIN_2000 412
#define XVT_WS_WIN_XP 413
#define XVT_WS_WIN_SERVER 414
#define XVT_WS_UNKNOWN 0
#define MACWS 100 /* Apple Macintosh */
#define PMWS 200 /* IBM OS/2 PM */
#define WIN32WS 300 /* MS Windows 3.1 for NT */
#define WIN16WS 400 /* MS Windows 3.x for Win16 */
#define WMWS 450 /* Character */
#define MTFWS 500 /* Motif */
#define XOLWS 501 /* Open Look */
#define WXGTKWS 107
#define NTWS WIN32WS /* for compatibility with docs */
#define WINWS WIN16WS /* for compatibility with docs */
#if defined(WIN32)
#define XVTWS WIN32WS
#elif defined(LINUX)
#define XVTWS WXGTKWS
#else
#define XVTWS XVT_WS_UNKNOWN
#endif
#define ATTR_WIN_BASE 10000
#define ATTR_WIN_CMD_LINE (ATTR_WIN_BASE + 0)
#define ATTR_WIN_INSTANCE (ATTR_WIN_BASE + 1)
@ -30,13 +50,6 @@
#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 WINWS 101
#define MTFWS 102
#define MACWS 103
#define PMWS 104
#define WMWS 105
#define XOLWS 106
#define WXGTKWS 107
#define ATTR_WIN_OPENFILENAME_HOOK (ATTR_WIN_BASE + 13)
#define ATTR_WIN_POPUP_DETACHED (ATTR_WIN_BASE + 14)
#define main xvt_main

@ -4,6 +4,7 @@
#include "xvt.h"
#ifdef WIN32
#include "wx/dcps.h"
#include "oswin32.h"
#else
#include "oslinux.h"
@ -291,7 +292,7 @@ void TwxPrintOut::InitDC(TPRINT_RCD* prcd)
{
wxPrinter printer;
#ifdef WIN32
dc = new wxPrinterDC(printer.GetPrintDialogData().GetPrintData());
dc = new wxPrinterDC(printer.GetPrintDialogData().GetPrintData());
#else
dc = new wxPostScriptDC(printer.GetPrintDialogData().GetPrintData());
#endif
@ -303,7 +304,7 @@ void TwxPrintOut::InitDC(TPRINT_RCD* prcd)
data.SetNativeData(OsWin32_ConvertToNativePrinterInfo(prcd->m_data, prcd->m_size));
data.ConvertFromNative();
dc = new wxPrinterDC(data);
dc = new wxPrinterDC(data);
#else
prcd->GetData(data);
dc = new wxPostScriptDC(data);
@ -524,11 +525,19 @@ void xvt_print_close(void)
// Nothing to do ?
}
BOOLEAN xvt_print_close_page(PRINT_RCD* /*precp*/)
BOOLEAN xvt_print_close_page(PRINT_RCD* precp)
{
BOOLEAN ok = m_po != NULL;
if (ok)
m_po->GetDC()->EndPage();
{
wxDC* dc = m_po->GetDC();
dc->EndPage();
#ifdef WIN32
TPRINT_RCD* prcd = (TPRINT_RCD*)precp;
if (OsWin32_IsGenericTextOnly(prcd->m_data))
OsWin32_SpoolNewLine(dc->GetHDC());
#endif
}
return ok;
}
@ -726,19 +735,6 @@ BOOLEAN xvt_print_start_thread(BOOLEAN(*print_fcn)(long), long data)
const BOOLEAN aborted = print_fcn(data);
DestroyAbortWindow();
#ifdef WIN32
// Stampa un line feed aggiuntivo nella stampa su generica solo testo in Win 98
int w, h;
m_po->GetPPIPrinter(&w, &h);
if (h == 6) // Solo Win 98 torna 6 pixel per pollice = 1 pixel per riga
{
wxDC* dc = m_po->GetDC();
dc->StartPage();
OsWin32_SpoolRow("\n\n", 1, dc->GetHDC()); // Probabilmente basta "\n" (visto che poi specifichiamo 1) ma non ci fidiamo
dc->EndPage();
}
#endif
m_po->OnEndDocument();
m_po->OnEndPrinting();