// Created: 12/07/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
-#pragma implementation "constrnt.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#endif
#ifndef WX_PRECOMP
-#include <wx/wx.h>
+#include "wx/wx.h"
#endif
-#include <wx/wxexpr.h>
+#if wxUSE_PROLOGIO
+#include "wx/deprecated/wxexpr.h"
+#endif
+
+#include "wx/ogl/ogl.h"
-#include <wx/ogl/basic.h>
-#include <wx/ogl/constrnt.h>
-#include <wx/ogl/canvas.h>
wxList *wxOGLConstraintTypes = NULL;
wxOGLConstraintTypes = new wxList(wxKEY_INTEGER);
wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_VERTICALLY,
- new wxOGLConstraintType(gyCONSTRAINT_CENTRED_VERTICALLY, "Centre vertically", "centred vertically w.r.t."));
+ new wxOGLConstraintType(gyCONSTRAINT_CENTRED_VERTICALLY, wxT("Centre vertically"), wxT("centred vertically w.r.t.")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_HORIZONTALLY,
- new wxOGLConstraintType(gyCONSTRAINT_CENTRED_HORIZONTALLY, "Centre horizontally", "centred horizontally w.r.t."));
+ new wxOGLConstraintType(gyCONSTRAINT_CENTRED_HORIZONTALLY, wxT("Centre horizontally"), wxT("centred horizontally w.r.t.")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_BOTH,
- new wxOGLConstraintType(gyCONSTRAINT_CENTRED_BOTH, "Centre", "centred w.r.t."));
+ new wxOGLConstraintType(gyCONSTRAINT_CENTRED_BOTH, wxT("Centre"), wxT("centred w.r.t.")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_LEFT_OF,
- new wxOGLConstraintType(gyCONSTRAINT_LEFT_OF, "Left of", "left of"));
+ new wxOGLConstraintType(gyCONSTRAINT_LEFT_OF, wxT("Left of"), wxT("left of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_RIGHT_OF,
- new wxOGLConstraintType(gyCONSTRAINT_RIGHT_OF, "Right of", "right of"));
+ new wxOGLConstraintType(gyCONSTRAINT_RIGHT_OF, wxT("Right of"), wxT("right of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_ABOVE,
- new wxOGLConstraintType(gyCONSTRAINT_ABOVE, "Above", "above"));
+ new wxOGLConstraintType(gyCONSTRAINT_ABOVE, wxT("Above"), wxT("above")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_BELOW,
- new wxOGLConstraintType(gyCONSTRAINT_BELOW, "Below", "below"));
+ new wxOGLConstraintType(gyCONSTRAINT_BELOW, wxT("Below"), wxT("below")));
// Alignment
wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_TOP,
- new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_TOP, "Top-aligned", "aligned to the top of"));
+ new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_TOP, wxT("Top-aligned"), wxT("aligned to the top of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_BOTTOM,
- new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_BOTTOM, "Bottom-aligned", "aligned to the bottom of"));
+ new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_BOTTOM, wxT("Bottom-aligned"), wxT("aligned to the bottom of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_LEFT,
- new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_LEFT, "Left-aligned", "aligned to the left of"));
+ new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_LEFT, wxT("Left-aligned"), wxT("aligned to the left of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_RIGHT,
- new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_RIGHT, "Right-aligned", "aligned to the right of"));
+ new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_RIGHT, wxT("Right-aligned"), wxT("aligned to the right of")));
// Mid-alignment
wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_TOP,
- new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_TOP, "Top-midaligned", "centred on the top of"));
+ new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_TOP, wxT("Top-midaligned"), wxT("centred on the top of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_BOTTOM,
- new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_BOTTOM, "Bottom-midaligned", "centred on the bottom of"));
+ new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_BOTTOM, wxT("Bottom-midaligned"), wxT("centred on the bottom of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_LEFT,
- new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_LEFT, "Left-midaligned", "centred on the left of"));
+ new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_LEFT, wxT("Left-midaligned"), wxT("centred on the left of")));
wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_RIGHT,
- new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_RIGHT, "Right-midaligned", "centred on the right of"));
+ new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_RIGHT, wxT("Right-midaligned"), wxT("centred on the right of")));
}
void OGLCleanUpConstraintTypes()
if (!wxOGLConstraintTypes)
return;
- wxNode* node = wxOGLConstraintTypes->First();
+ wxNode* node = wxOGLConstraintTypes->GetFirst();
while (node)
{
- wxOGLConstraintType* ct = (wxOGLConstraintType*) node->Data();
+ wxOGLConstraintType* ct = (wxOGLConstraintType*) node->GetData();
delete ct;
- node = node->Next();
+ node = node->GetNext();
}
delete wxOGLConstraintTypes;
wxOGLConstraintTypes = NULL;
m_constrainingObject = constraining;
m_constraintId = 0;
- m_constraintName = "noname";
+ m_constraintName = wxT("noname");
- wxNode *node = constrained.First();
+ wxNode *node = constrained.GetFirst();
while (node)
{
- m_constrainedObjects.Append(node->Data());
- node = node->Next();
+ m_constrainedObjects.Append(node->GetData());
+ node = node->GetNext();
}
}
return eq;
}
-// Return TRUE if anything changed
+// Return true if anything changed
bool wxOGLConstraint::Evaluate()
{
double maxWidth, maxHeight, minWidth, minHeight, x, y;
{
case gyCONSTRAINT_CENTRED_VERTICALLY:
{
- int n = m_constrainedObjects.Number();
+ int n = m_constrainedObjects.GetCount();
double totalObjectHeight = 0.0;
- wxNode *node = m_constrainedObjects.First();
+ wxNode *node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double width2, height2;
constrainedObject->GetBoundingBoxMax(&width2, &height2);
totalObjectHeight += height2;
- node = node->Next();
+ node = node->GetNext();
}
double startY;
double spacingY;
}
// Now position the objects
- bool changed = FALSE;
- node = m_constrainedObjects.First();
+ bool changed = false;
+ node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double width2, height2;
constrainedObject->GetBoundingBoxMax(&width2, &height2);
startY += (double)(spacingY + (height2/2.0));
if (!Equals(startY, constrainedObject->GetY()))
{
- constrainedObject->Move(dc, constrainedObject->GetX(), startY, FALSE);
- changed = TRUE;
+ constrainedObject->Move(dc, constrainedObject->GetX(), startY, false);
+ changed = true;
}
startY += (double)(height2/2.0);
- node = node->Next();
+ node = node->GetNext();
}
return changed;
}
case gyCONSTRAINT_CENTRED_HORIZONTALLY:
{
- int n = m_constrainedObjects.Number();
+ int n = m_constrainedObjects.GetCount();
double totalObjectWidth = 0.0;
- wxNode *node = m_constrainedObjects.First();
+ wxNode *node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double width2, height2;
constrainedObject->GetBoundingBoxMax(&width2, &height2);
totalObjectWidth += width2;
- node = node->Next();
+ node = node->GetNext();
}
double startX;
double spacingX;
}
// Now position the objects
- bool changed = FALSE;
- node = m_constrainedObjects.First();
+ bool changed = false;
+ node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double width2, height2;
constrainedObject->GetBoundingBoxMax(&width2, &height2);
startX += (double)(spacingX + (width2/2.0));
if (!Equals(startX, constrainedObject->GetX()))
{
- constrainedObject->Move(dc, startX, constrainedObject->GetY(), FALSE);
- changed = TRUE;
+ constrainedObject->Move(dc, startX, constrainedObject->GetY(), false);
+ changed = true;
}
startX += (double)(width2/2.0);
- node = node->Next();
+ node = node->GetNext();
}
return changed;
}
case gyCONSTRAINT_CENTRED_BOTH:
{
- int n = m_constrainedObjects.Number();
+ int n = m_constrainedObjects.GetCount();
double totalObjectWidth = 0.0;
double totalObjectHeight = 0.0;
- wxNode *node = m_constrainedObjects.First();
+ wxNode *node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double width2, height2;
constrainedObject->GetBoundingBoxMax(&width2, &height2);
totalObjectWidth += width2;
totalObjectHeight += height2;
- node = node->Next();
+ node = node->GetNext();
}
double startX;
double spacingX;
}
// Now position the objects
- bool changed = FALSE;
- node = m_constrainedObjects.First();
+ bool changed = false;
+ node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double width2, height2;
constrainedObject->GetBoundingBoxMax(&width2, &height2);
startX += (double)(spacingX + (width2/2.0));
startY += (double)(spacingY + (height2/2.0));
if ((!Equals(startX, constrainedObject->GetX())) || (!Equals(startY, constrainedObject->GetY())))
- {
- constrainedObject->Move(dc, startX, startY, FALSE);
- changed = TRUE;
- }
+ {
+ constrainedObject->Move(dc, startX, startY, false);
+ changed = true;
+ }
startX += (double)(width2/2.0);
startY += (double)(height2/2.0);
- node = node->Next();
+ node = node->GetNext();
}
return changed;
}
case gyCONSTRAINT_LEFT_OF:
{
- bool changed = FALSE;
+ bool changed = false;
- wxNode *node = m_constrainedObjects.First();
+ wxNode *node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double width2, height2;
constrainedObject->GetBoundingBoxMax(&width2, &height2);
double x3 = (double)(x - (minWidth/2.0) - (width2/2.0) - m_xSpacing);
if (!Equals(x3, constrainedObject->GetX()))
- {
- changed = TRUE;
- constrainedObject->Move(dc, x3, constrainedObject->GetY(), FALSE);
- }
+ {
+ changed = true;
+ constrainedObject->Move(dc, x3, constrainedObject->GetY(), false);
+ }
- node = node->Next();
+ node = node->GetNext();
}
return changed;
}
case gyCONSTRAINT_RIGHT_OF:
{
- bool changed = FALSE;
+ bool changed = false;
- wxNode *node = m_constrainedObjects.First();
+ wxNode *node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double width2, height2;
constrainedObject->GetBoundingBoxMax(&width2, &height2);
double x3 = (double)(x + (minWidth/2.0) + (width2/2.0) + m_xSpacing);
if (!Equals(x3, constrainedObject->GetX()))
- {
- changed = TRUE;
- constrainedObject->Move(dc, x3, constrainedObject->GetY(), FALSE);
- }
+ {
+ changed = true;
+ constrainedObject->Move(dc, x3, constrainedObject->GetY(), false);
+ }
- node = node->Next();
+ node = node->GetNext();
}
return changed;
-
- return FALSE;
}
case gyCONSTRAINT_ABOVE:
{
- bool changed = FALSE;
+ bool changed = false;
- wxNode *node = m_constrainedObjects.First();
+ wxNode *node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double width2, height2;
constrainedObject->GetBoundingBoxMax(&width2, &height2);
double y3 = (double)(y - (minHeight/2.0) - (height2/2.0) - m_ySpacing);
if (!Equals(y3, constrainedObject->GetY()))
- {
- changed = TRUE;
- constrainedObject->Move(dc, constrainedObject->GetX(), y3, FALSE);
- }
+ {
+ changed = true;
+ constrainedObject->Move(dc, constrainedObject->GetX(), y3, false);
+ }
- node = node->Next();
+ node = node->GetNext();
}
return changed;
}
case gyCONSTRAINT_BELOW:
{
- bool changed = FALSE;
+ bool changed = false;
- wxNode *node = m_constrainedObjects.First();
+ wxNode *node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double width2, height2;
constrainedObject->GetBoundingBoxMax(&width2, &height2);
double y3 = (double)(y + (minHeight/2.0) + (height2/2.0) + m_ySpacing);
if (!Equals(y3, constrainedObject->GetY()))
- {
- changed = TRUE;
- constrainedObject->Move(dc, constrainedObject->GetX(), y3, FALSE);
- }
+ {
+ changed = true;
+ constrainedObject->Move(dc, constrainedObject->GetX(), y3, false);
+ }
- node = node->Next();
+ node = node->GetNext();
}
return changed;
}
case gyCONSTRAINT_ALIGNED_LEFT:
{
- bool changed = FALSE;
+ bool changed = false;
- wxNode *node = m_constrainedObjects.First();
+ wxNode *node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double width2, height2;
constrainedObject->GetBoundingBoxMax(&width2, &height2);
double x3 = (double)(x - (minWidth/2.0) + (width2/2.0) + m_xSpacing);
if (!Equals(x3, constrainedObject->GetX()))
- {
- changed = TRUE;
- constrainedObject->Move(dc, x3, constrainedObject->GetY(), FALSE);
- }
+ {
+ changed = true;
+ constrainedObject->Move(dc, x3, constrainedObject->GetY(), false);
+ }
- node = node->Next();
+ node = node->GetNext();
}
return changed;
}
case gyCONSTRAINT_ALIGNED_RIGHT:
{
- bool changed = FALSE;
+ bool changed = false;
- wxNode *node = m_constrainedObjects.First();
+ wxNode *node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double width2, height2;
constrainedObject->GetBoundingBoxMax(&width2, &height2);
double x3 = (double)(x + (minWidth/2.0) - (width2/2.0) - m_xSpacing);
if (!Equals(x3, constrainedObject->GetX()))
- {
- changed = TRUE;
- constrainedObject->Move(dc, x3, constrainedObject->GetY(), FALSE);
- }
+ {
+ changed = true;
+ constrainedObject->Move(dc, x3, constrainedObject->GetY(), false);
+ }
- node = node->Next();
+ node = node->GetNext();
}
return changed;
-
- return FALSE;
+ #if 0
+ // two returned values ?
+ return false;
+ #endif
}
case gyCONSTRAINT_ALIGNED_TOP:
{
- bool changed = FALSE;
+ bool changed = false;
- wxNode *node = m_constrainedObjects.First();
+ wxNode *node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double width2, height2;
constrainedObject->GetBoundingBoxMax(&width2, &height2);
double y3 = (double)(y - (minHeight/2.0) + (height2/2.0) + m_ySpacing);
if (!Equals(y3, constrainedObject->GetY()))
- {
- changed = TRUE;
- constrainedObject->Move(dc, constrainedObject->GetX(), y3, FALSE);
- }
+ {
+ changed = true;
+ constrainedObject->Move(dc, constrainedObject->GetX(), y3, false);
+ }
- node = node->Next();
+ node = node->GetNext();
}
return changed;
}
case gyCONSTRAINT_ALIGNED_BOTTOM:
{
- bool changed = FALSE;
+ bool changed = false;
- wxNode *node = m_constrainedObjects.First();
+ wxNode *node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double width2, height2;
constrainedObject->GetBoundingBoxMax(&width2, &height2);
double y3 = (double)(y + (minHeight/2.0) - (height2/2.0) - m_ySpacing);
if (!Equals(y3, constrainedObject->GetY()))
- {
- changed = TRUE;
- constrainedObject->Move(dc, constrainedObject->GetX(), y3, FALSE);
- }
+ {
+ changed = true;
+ constrainedObject->Move(dc, constrainedObject->GetX(), y3, false);
+ }
- node = node->Next();
+ node = node->GetNext();
}
return changed;
}
case gyCONSTRAINT_MIDALIGNED_LEFT:
{
- bool changed = FALSE;
+ bool changed = false;
- wxNode *node = m_constrainedObjects.First();
+ wxNode *node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double x3 = (double)(x - (minWidth/2.0));
if (!Equals(x3, constrainedObject->GetX()))
- {
- changed = TRUE;
- constrainedObject->Move(dc, x3, constrainedObject->GetY(), FALSE);
- }
+ {
+ changed = true;
+ constrainedObject->Move(dc, x3, constrainedObject->GetY(), false);
+ }
- node = node->Next();
+ node = node->GetNext();
}
return changed;
}
case gyCONSTRAINT_MIDALIGNED_RIGHT:
{
- bool changed = FALSE;
+ bool changed = false;
- wxNode *node = m_constrainedObjects.First();
+ wxNode *node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double x3 = (double)(x + (minWidth/2.0));
if (!Equals(x3, constrainedObject->GetX()))
- {
- changed = TRUE;
- constrainedObject->Move(dc, x3, constrainedObject->GetY(), FALSE);
- }
+ {
+ changed = true;
+ constrainedObject->Move(dc, x3, constrainedObject->GetY(), false);
+ }
- node = node->Next();
+ node = node->GetNext();
}
return changed;
-
- return FALSE;
+ #if 0
+ // two returned values ?
+ return false;
+ #endif
}
case gyCONSTRAINT_MIDALIGNED_TOP:
{
- bool changed = FALSE;
+ bool changed = false;
- wxNode *node = m_constrainedObjects.First();
+ wxNode *node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double y3 = (double)(y - (minHeight/2.0));
if (!Equals(y3, constrainedObject->GetY()))
- {
- changed = TRUE;
- constrainedObject->Move(dc, constrainedObject->GetX(), y3, FALSE);
- }
+ {
+ changed = true;
+ constrainedObject->Move(dc, constrainedObject->GetX(), y3, false);
+ }
- node = node->Next();
+ node = node->GetNext();
}
return changed;
}
case gyCONSTRAINT_MIDALIGNED_BOTTOM:
{
- bool changed = FALSE;
+ bool changed = false;
- wxNode *node = m_constrainedObjects.First();
+ wxNode *node = m_constrainedObjects.GetFirst();
while (node)
{
- wxShape *constrainedObject = (wxShape *)node->Data();
+ wxShape *constrainedObject = (wxShape *)node->GetData();
double y3 = (double)(y + (minHeight/2.0));
if (!Equals(y3, constrainedObject->GetY()))
- {
- changed = TRUE;
- constrainedObject->Move(dc, constrainedObject->GetX(), y3, FALSE);
- }
+ {
+ changed = true;
+ constrainedObject->Move(dc, constrainedObject->GetX(), y3, false);
+ }
- node = node->Next();
+ node = node->GetNext();
}
return changed;
}
-
+ #if 0
+ // default value handled in main function body
default:
- return FALSE;
+ return false;
+ #endif
}
- return FALSE;
+ return false;
}