// Modified by:
// Created: 04/01/98
// RCS-ID: $Id$
-// Copyright: (c) Julian Smart and Markus Holzem
+// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "dcpsg.h"
#endif
int size = m_font.GetPointSize();
- long by = y + (long)floor( double(size) * 2.0 / 3.0 ); // approximate baseline
-
- // FIXME only correct for 90 degrees
fprintf(m_pstream, "%d %d moveto\n",
- LogicalToDeviceX((wxCoord)(x + size)), LogicalToDeviceY((wxCoord)by) );
+ LogicalToDeviceX(x), LogicalToDeviceY(y));
char buffer[100];
sprintf(buffer, "%.8f rotate\n", angle);
double a, b, c, d, x1, y1, x2, y2, x3, y3;
wxPoint *p, *q;
- wxNode *node = points->GetFirst();
+ wxList::compatibility_iterator node = points->GetFirst();
p = (wxPoint *)node->GetData();
x1 = p->x;
y1 = p->y;
CalcBoundingBox( (wxCoord)x1, (wxCoord)y1 );
CalcBoundingBox( (wxCoord)x3, (wxCoord)y3 );
- while ((node = node->GetNext()) != NULL)
+ while ((node = node->GetNext()))
{
q = (wxPoint *)node->GetData();
// fprintf( m_pstream, "%%%%Pages: %d\n", (wxPageNumber - 1) );
- char *paper = "A4";
+ const char *paper;
switch (m_printData.GetPaperId())
{
case wxPAPER_LETTER: paper = "Letter"; break; // Letter: paper ""; 8 1/2 by 11 inches
wxString command;
command += m_printData.GetPrinterCommand();
command += wxT(" ");
+ command += m_printData.GetPrinterOptions();
+ command += wxT(" ");
command += m_printData.GetFilename();
wxExecute( command, TRUE );
{
if (x) (*x) = 0;
if (y) (*y) = 0;
+ if (descent) (*descent) = 0;
+ if (externalLeading) (*externalLeading) = 0;
return;
}
/ the correct way would be to map the character names
/ like 'adieresis' to corresp. positions of ISOEnc and read
/ these values from AFM files, too. Maybe later ... */
- lastWidths[196] = lastWidths['A']; // Ä
- lastWidths[228] = lastWidths['a']; // ä
- lastWidths[214] = lastWidths['O']; // Ö
- lastWidths[246] = lastWidths['o']; // ö
- lastWidths[220] = lastWidths['U']; // Ü
- lastWidths[252] = lastWidths['u']; // ü
- lastWidths[223] = lastWidths[251]; // ß
+
+ // NB: casts to int are needed to suppress gcc 3.3 warnings
+ lastWidths[196] = lastWidths[(int)'A']; // Ä
+ lastWidths[228] = lastWidths[(int)'a']; // ä
+ lastWidths[214] = lastWidths[(int)'O']; // Ö
+ lastWidths[246] = lastWidths[(int)'o']; // ö
+ lastWidths[220] = lastWidths[(int)'U']; // Ü
+ lastWidths[252] = lastWidths[(int)'u']; // ü
+ lastWidths[223] = lastWidths[(int)251]; // ß
/* JC: calculate UnderlineThickness/UnderlinePosition */
if(lastWidths[*p]== INT_MIN)
{
wxLogDebug(wxT("GetTextExtent: undefined width for character '%c' (%d)"), *p,*p);
- sum += lastWidths[' ']; /* assume space */
+ sum += lastWidths[(unsigned char)' ']; /* assume space */
}
else
{