// Created: 12/07/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#include "wx/ogl/ogl.h"
-
-#include <math.h>
-
+#if wxUSE_PROLOGIO
static void IntToHex(unsigned int dec, wxChar *buf);
static unsigned long HexToInt(wxChar *buf);
+#endif
+
extern wxChar *oglBuffer;
#define gyTYPE_PEN 40
wxDrawnShape::wxDrawnShape():wxRectangleShape(100.0, 50.0)
{
- m_saveToFile = TRUE;
+ m_saveToFile = true;
m_currentAngle = oglDRAWN_ANGLE_0;
}
scaleY = 1.0;
else scaleY = h/GetHeight();
- int i = 0;
- for (i = 0; i < 4; i++)
+ for (int i = 0; i < 4; i++)
{
if (m_metafiles[i].IsValid())
m_metafiles[i].Scale(scaleX, scaleY);
int wxDrawnShape::DetermineMetaFile(double rotation)
{
double tolerance = 0.0001;
- const double pi = 3.1415926535897932384626433832795 ;
+ const double pi = M_PI ;
double angle1 = 0.0;
double angle2 = pi/2.0;
double angle3 = pi;
wxDrawOp* op = (wxDrawOp*) node->GetData();
if (op->GetPerimeterPoint(x1, y1, x2, y2, x3, y3, GetX(), GetY(), GetAttachmentMode()))
- return TRUE;
+ return true;
}
// Default... just use a rectangle
clause->AddAttributeValue(_T("save_metafile"), (long)m_saveToFile);
if (m_saveToFile)
{
- int i = 0;
- for (i = 0; i < 4; i++)
+ for (int i = 0; i < 4; i++)
{
if (m_metafiles[i].IsValid())
m_metafiles[i].WriteAttributes(clause, i);
if (m_saveToFile)
{
- int i = 0;
- for (i = 0; i < 4; i++)
+ for (int i = 0; i < 4; i++)
{
m_metafiles[i].ReadAttributes(clause, i);
}
wxDrawnShape& drawnCopy = (wxDrawnShape&) copy;
- int i = 0;
- for (i = 0; i < 4; i++)
+ for (int i = 0; i < 4; i++)
{
m_metafiles[i].Copy(drawnCopy.m_metafiles[i]);
}
*/
wxOpDraw::wxOpDraw(int theOp, double theX1, double theY1, double theX2, double theY2,
- double theRadius, wxChar *s) : wxDrawOp(theOp)
+ double theRadius, const wxString& s) : wxDrawOp(theOp)
{
m_x1 = theX1;
m_y1 = theY1;
m_x3 = 0.0;
m_y3 = 0.0;
m_radius = theRadius;
- if (s) m_textString = copystring(s);
- else m_textString = NULL;
+ m_textString = s;
}
wxOpDraw::~wxOpDraw()
{
- if (m_textString) delete[] m_textString;
}
wxDrawOp *wxOpDraw::Copy(wxPseudoMetaFile *WXUNUSED(newImage))
}
case DRAWOP_DRAW_ELLIPTIC_ARC:
{
- const double pi = 3.1415926535897932384626433832795 ;
+ const double pi = M_PI ;
// Convert back to degrees
dc.DrawEllipticArc(
double newX2 = m_x2*cosTheta - m_y2*sinTheta + x*(1.0 - cosTheta) + y*sinTheta;
double newY2 = m_x2*sinTheta + m_y2*cosTheta + y*(1.0 - cosTheta) + x*sinTheta;
- m_x1 = newX1;
- m_y1 = newY1;
- m_x2 = newX2;
- m_y2 = newY2;
+ m_x1 = newX1;
+ m_y1 = newY1;
+ m_x2 = newX2;
+ m_y2 = newY2;
break;
}
case DRAWOP_DRAW_RECT:
double newX3 = m_x3*cosTheta - m_y3*sinTheta + x*(1.0 - cosTheta) + y*sinTheta;
double newY3 = m_x3*sinTheta + m_y3*cosTheta + y*(1.0 - cosTheta) + x*sinTheta;
- m_x1 = newX1;
- m_y1 = newY1;
- m_x2 = newX2;
- m_y2 = newY2;
- m_x3 = newX3;
- m_y3 = newY3;
+ m_x1 = newX1;
+ m_y1 = newY1;
+ m_x2 = newX2;
+ m_y2 = newY2;
+ m_x3 = newX3;
+ m_y3 = newY3;
break;
}
{
m_x1 = expr->Nth(1)->RealValue();
m_y1 = expr->Nth(2)->RealValue();
- wxString str(expr->Nth(3)->StringValue());
- m_textString = copystring(str);
+ m_textString = wxString(expr->Nth(3)->StringValue());
break;
}
case DRAWOP_DRAW_ARC:
long signedY = (long)(m_points[i].y*100.0);
// Scale to 0 -> 64K
- long unSignedX = (long)(signedX + 32767.0);
- long unSignedY = (long)(signedY + 32767.0);
+ unsigned int unSignedX = (unsigned int)(signedX + 32767.0);
+ unsigned int unSignedY = (unsigned int)(signedY + 32767.0);
-// IntToHex((unsigned int)signedX, buf2);
-// IntToHex((unsigned int)signedY, buf3);
- IntToHex((int)unSignedX, buf2);
- IntToHex((int)unSignedY, buf3);
+ IntToHex(unSignedX, buf2);
+ IntToHex(unSignedY, buf3);
// Don't overrun the buffer
if ((i*8) < 3000)
}
dc.DrawPolygon(n, intPoints, (long) x, (long) y);
delete[] intPoints;
- return TRUE;
+ return true;
}
// Assume (x1, y1) is centre of box (most generally, line end at box)
{
*x3 = point->x + xOffset;
*y3 = point->y + yOffset;
- return TRUE;
+ return true;
}
else if ((y2 < y1) && (point->y < 0.0))
{
*x3 = point->x + xOffset;
*y3 = point->y + yOffset;
- return TRUE;
+ return true;
}
}
}
double *xpoints = new double[n];
double *ypoints = new double[n];
- int i = 0;
- for (i = 0; i < n; i++)
+ for (int i = 0; i < n; i++)
{
wxRealPoint *point = & (m_points[i]);
xpoints[i] = point->x + xOffset;
delete[] xpoints;
delete[] ypoints;
- return TRUE;
+ return true;
}
*
*/
-static char hexArray[] = {
- _T('0'), _T('1'), _T('2'), _T('3'), _T('4'), _T('5'), _T('6'), _T('7'),
+#if wxUSE_PROLOGIO
+
+static char hexArray[] = {
+ _T('0'), _T('1'), _T('2'), _T('3'), _T('4'), _T('5'), _T('6'), _T('7'),
_T('8'), _T('9'), _T('A'), _T('B'), _T('C'), _T('D'), _T('E'), _T('F') };
// Convert unsigned 16-bit integer to 4-character hex string
return 14;
case _T('F'):
return 15;
- #if 0
- // handling this default outside switch removes warning under Borland
- default:
- return 0;
- #endif
}
return 0;
return n;
}
+#endif // wxUSE_PROLOGIO
+
/*
* wxPseudo meta-file
*
wxPseudoMetaFile::wxPseudoMetaFile()
{
m_currentRotation = 0;
- m_rotateable = TRUE;
+ m_rotateable = true;
m_width = 0.0;
m_height = 0.0;
m_outlinePen = NULL;
m_outlineOp = -1;
}
-wxPseudoMetaFile::wxPseudoMetaFile(wxPseudoMetaFile& mf)
+wxPseudoMetaFile::wxPseudoMetaFile(wxPseudoMetaFile& mf):wxObject()
{
mf.Copy(*this);
}
// Read GDI objects
wxChar buf[50];
int i = 1;
- bool keepGoing = TRUE;
+ bool keepGoing = true;
while (keepGoing)
{
wxSprintf(buf, _T("gdi%d_%d"), whichAngle, i);
clause->GetAttributeValue(buf, &expr);
if (!expr)
{
- keepGoing = FALSE;
+ keepGoing = false;
}
else
{
{
int penWidth = (int)expr->Nth(1)->IntegerValue();
int penStyle = (int)expr->Nth(2)->IntegerValue();
- int penRed = (int)expr->Nth(3)->IntegerValue();
- int penGreen = (int)expr->Nth(4)->IntegerValue();
- int penBlue = (int)expr->Nth(5)->IntegerValue();
+ unsigned char penRed = (unsigned char)expr->Nth(3)->IntegerValue();
+ unsigned char penGreen = (unsigned char)expr->Nth(4)->IntegerValue();
+ unsigned char penBlue = (unsigned char)expr->Nth(5)->IntegerValue();
wxColour col(penRed, penGreen, penBlue);
wxPen *p = wxThePenList->FindOrCreatePen(col, penWidth, penStyle);
if (!p)
case gyTYPE_BRUSH:
{
int brushStyle = (int)expr->Nth(1)->IntegerValue();
- int brushRed = (int)expr->Nth(2)->IntegerValue();
- int brushGreen = (int)expr->Nth(3)->IntegerValue();
- int brushBlue = (int)expr->Nth(4)->IntegerValue();
+ unsigned char brushRed = (unsigned char)expr->Nth(2)->IntegerValue();
+ unsigned char brushGreen = (unsigned char)expr->Nth(3)->IntegerValue();
+ unsigned char brushBlue = (unsigned char)expr->Nth(4)->IntegerValue();
wxColour col(brushRed, brushGreen, brushBlue);
wxBrush *b = wxTheBrushList->FindOrCreateBrush(col, brushStyle);
if (!b)
}
// Now read in the operations
- keepGoing = TRUE;
+ keepGoing = true;
i = 1;
while (keepGoing)
{
clause->GetAttributeValue(buf, &expr);
if (!expr)
{
- keepGoing = FALSE;
+ keepGoing = false;
}
else
{
bool wxPseudoMetaFile::LoadFromMetaFile(const wxString& filename, double *rwidth, double *rheight)
{
if (!wxFileExists(filename))
- return FALSE;
+ return false;
wxXMetaFile *metaFile = new wxXMetaFile;
if (!metaFile->ReadFile(filename))
{
delete metaFile;
- return FALSE;
+ return false;
}
double lastX = 0.0;
m_height = *rheight;
delete metaFile;
- return TRUE;
+ return true;
}
// Scale to fit size
case DRAWOP_DRAW_RECT:
case DRAWOP_DRAW_ROUNDED_RECT:
case DRAWOP_DRAW_ELLIPSE:
+ case DRAWOP_DRAW_ELLIPTIC_ARC:
case DRAWOP_DRAW_POINT:
case DRAWOP_DRAW_TEXT:
{
}
else if (op->GetOp() == DRAWOP_DRAW_RECT ||
op->GetOp() == DRAWOP_DRAW_ROUNDED_RECT ||
- op->GetOp() == DRAWOP_DRAW_ELLIPSE)
+ op->GetOp() == DRAWOP_DRAW_ELLIPSE ||
+ op->GetOp() == DRAWOP_DRAW_ELLIPTIC_ARC)
{
if ((opDraw->m_x1 + opDraw->m_x2) < minX) minX = (opDraw->m_x1 + opDraw->m_x2);
if ((opDraw->m_x1 + opDraw->m_x2) > maxX) maxX = (opDraw->m_x1 + opDraw->m_x2);
void wxPseudoMetaFile::DrawEllipticArc(const wxRect& rect, double startAngle, double endAngle)
{
- const double pi = 3.1415926535897932384626433832795 ;
+ const double pi = M_PI ;
double startAngleRadians = startAngle* (pi*2.0/360.0);
double endAngleRadians = endAngle* (pi*2.0/360.0);
wxOpDraw *theOp = new wxOpDraw(DRAWOP_DRAW_TEXT,
(double) pt.x, (double) pt.y, 0.0, 0.0);
- theOp->m_textString = copystring(text);
+ theOp->m_textString = text;
m_ops.Append(theOp);
}