X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5de76427c87d8289f5c343cef16e9375056fc49f..2356708db31b737c6eae53c2316b642aa5a2e68d:/utils/ogl/src/constrnt.cpp diff --git a/utils/ogl/src/constrnt.cpp b/utils/ogl/src/constrnt.cpp index 6f90bc2067..101e4a1782 100644 --- a/utils/ogl/src/constrnt.cpp +++ b/utils/ogl/src/constrnt.cpp @@ -24,103 +24,101 @@ #include #endif -#ifdef PROLOGIO #include -#endif #include "basic.h" #include "constrnt.h" #include "canvas.h" -wxList *OGLConstraintTypes = NULL; +wxList *wxOGLConstraintTypes = NULL; /* * Constraint type * */ -IMPLEMENT_DYNAMIC_CLASS(OGLConstraintType, wxObject) +IMPLEMENT_DYNAMIC_CLASS(wxOGLConstraintType, wxObject) -OGLConstraintType::OGLConstraintType(int theType, const wxString& theName, const wxString& thePhrase) +wxOGLConstraintType::wxOGLConstraintType(int theType, const wxString& theName, const wxString& thePhrase) { m_type = theType; m_name = theName; m_phrase = thePhrase; } -OGLConstraintType::~OGLConstraintType() +wxOGLConstraintType::~wxOGLConstraintType() { } void OGLInitializeConstraintTypes() { - if (!OGLConstraintTypes) + if (!wxOGLConstraintTypes) return; - OGLConstraintTypes = new wxList(wxKEY_INTEGER); + wxOGLConstraintTypes = new wxList(wxKEY_INTEGER); - OGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_VERTICALLY, - new OGLConstraintType(gyCONSTRAINT_CENTRED_VERTICALLY, "Centre vertically", "centred vertically w.r.t.")); + wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_VERTICALLY, + new wxOGLConstraintType(gyCONSTRAINT_CENTRED_VERTICALLY, "Centre vertically", "centred vertically w.r.t.")); - OGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_HORIZONTALLY, - new OGLConstraintType(gyCONSTRAINT_CENTRED_HORIZONTALLY, "Centre horizontally", "centred horizontally w.r.t.")); + wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_HORIZONTALLY, + new wxOGLConstraintType(gyCONSTRAINT_CENTRED_HORIZONTALLY, "Centre horizontally", "centred horizontally w.r.t.")); - OGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_BOTH, - new OGLConstraintType(gyCONSTRAINT_CENTRED_BOTH, "Centre", "centred w.r.t.")); + wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_BOTH, + new wxOGLConstraintType(gyCONSTRAINT_CENTRED_BOTH, "Centre", "centred w.r.t.")); - OGLConstraintTypes->Append(gyCONSTRAINT_LEFT_OF, - new OGLConstraintType(gyCONSTRAINT_LEFT_OF, "Left of", "left of")); + wxOGLConstraintTypes->Append(gyCONSTRAINT_LEFT_OF, + new wxOGLConstraintType(gyCONSTRAINT_LEFT_OF, "Left of", "left of")); - OGLConstraintTypes->Append(gyCONSTRAINT_RIGHT_OF, - new OGLConstraintType(gyCONSTRAINT_RIGHT_OF, "Right of", "right of")); + wxOGLConstraintTypes->Append(gyCONSTRAINT_RIGHT_OF, + new wxOGLConstraintType(gyCONSTRAINT_RIGHT_OF, "Right of", "right of")); - OGLConstraintTypes->Append(gyCONSTRAINT_ABOVE, - new OGLConstraintType(gyCONSTRAINT_ABOVE, "Above", "above")); + wxOGLConstraintTypes->Append(gyCONSTRAINT_ABOVE, + new wxOGLConstraintType(gyCONSTRAINT_ABOVE, "Above", "above")); - OGLConstraintTypes->Append(gyCONSTRAINT_BELOW, - new OGLConstraintType(gyCONSTRAINT_BELOW, "Below", "below")); + wxOGLConstraintTypes->Append(gyCONSTRAINT_BELOW, + new wxOGLConstraintType(gyCONSTRAINT_BELOW, "Below", "below")); // Alignment - OGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_TOP, - new OGLConstraintType(gyCONSTRAINT_ALIGNED_TOP, "Top-aligned", "aligned to the top of")); + wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_TOP, + new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_TOP, "Top-aligned", "aligned to the top of")); - OGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_BOTTOM, - new OGLConstraintType(gyCONSTRAINT_ALIGNED_BOTTOM, "Bottom-aligned", "aligned to the bottom of")); + wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_BOTTOM, + new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_BOTTOM, "Bottom-aligned", "aligned to the bottom of")); - OGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_LEFT, - new OGLConstraintType(gyCONSTRAINT_ALIGNED_LEFT, "Left-aligned", "aligned to the left of")); + wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_LEFT, + new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_LEFT, "Left-aligned", "aligned to the left of")); - OGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_RIGHT, - new OGLConstraintType(gyCONSTRAINT_ALIGNED_RIGHT, "Right-aligned", "aligned to the right of")); + wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_RIGHT, + new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_RIGHT, "Right-aligned", "aligned to the right of")); // Mid-alignment - OGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_TOP, - new OGLConstraintType(gyCONSTRAINT_MIDALIGNED_TOP, "Top-midaligned", "centred on the top of")); + wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_TOP, + new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_TOP, "Top-midaligned", "centred on the top of")); - OGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_BOTTOM, - new OGLConstraintType(gyCONSTRAINT_MIDALIGNED_BOTTOM, "Bottom-midaligned", "centred on the bottom of")); + wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_BOTTOM, + new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_BOTTOM, "Bottom-midaligned", "centred on the bottom of")); - OGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_LEFT, - new OGLConstraintType(gyCONSTRAINT_MIDALIGNED_LEFT, "Left-midaligned", "centred on the left of")); + wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_LEFT, + new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_LEFT, "Left-midaligned", "centred on the left of")); - OGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_RIGHT, - new OGLConstraintType(gyCONSTRAINT_MIDALIGNED_RIGHT, "Right-midaligned", "centred on the right of")); + wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_RIGHT, + new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_RIGHT, "Right-midaligned", "centred on the right of")); } void OGLCleanUpConstraintTypes() { - if (!OGLConstraintTypes) + if (!wxOGLConstraintTypes) return; - wxNode* node = OGLConstraintTypes->First(); + wxNode* node = wxOGLConstraintTypes->First(); while (node) { - OGLConstraintType* ct = (OGLConstraintType*) node->Data(); + wxOGLConstraintType* ct = (wxOGLConstraintType*) node->Data(); delete ct; node = node->Next(); } - delete OGLConstraintTypes; - OGLConstraintTypes = NULL; + delete wxOGLConstraintTypes; + wxOGLConstraintTypes = NULL; } /* @@ -128,9 +126,9 @@ void OGLCleanUpConstraintTypes() * */ -IMPLEMENT_DYNAMIC_CLASS(OGLConstraint, wxObject) +IMPLEMENT_DYNAMIC_CLASS(wxOGLConstraint, wxObject) -OGLConstraint::OGLConstraint(int type, wxShape *constraining, wxList& constrained) +wxOGLConstraint::wxOGLConstraint(int type, wxShape *constraining, wxList& constrained) { m_xSpacing = 0.0; m_ySpacing = 0.0; @@ -149,22 +147,22 @@ OGLConstraint::OGLConstraint(int type, wxShape *constraining, wxList& constraine } } -OGLConstraint::~OGLConstraint() +wxOGLConstraint::~wxOGLConstraint() { } -bool OGLConstraint::Equals(float a, float b) +bool wxOGLConstraint::Equals(double a, double b) { - float marg = 0.5; + double marg = 0.5; bool eq = ((b <= a + marg) && (b >= a - marg)); return eq; } // Return TRUE if anything changed -bool OGLConstraint::Evaluate() +bool wxOGLConstraint::Evaluate() { - float maxWidth, maxHeight, minWidth, minHeight, x, y; + double maxWidth, maxHeight, minWidth, minHeight, x, y; m_constrainingObject->GetBoundingBoxMax(&maxWidth, &maxHeight); m_constrainingObject->GetBoundingBoxMin(&minWidth, &minHeight); x = m_constrainingObject->GetX(); @@ -178,30 +176,30 @@ bool OGLConstraint::Evaluate() case gyCONSTRAINT_CENTRED_VERTICALLY: { int n = m_constrainedObjects.Number(); - float totalObjectHeight = 0.0; + double totalObjectHeight = 0.0; wxNode *node = m_constrainedObjects.First(); while (node) { wxShape *constrainedObject = (wxShape *)node->Data(); - float width2, height2; + double width2, height2; constrainedObject->GetBoundingBoxMax(&width2, &height2); totalObjectHeight += height2; node = node->Next(); } - float startY; - float spacingY; + double startY; + double spacingY; // Check if within the constraining object... if ((totalObjectHeight + (n + 1)*m_ySpacing) <= minHeight) { - spacingY = (float)((minHeight - totalObjectHeight)/(n + 1)); - startY = (float)(y - (minHeight/2.0)); + spacingY = (double)((minHeight - totalObjectHeight)/(n + 1)); + startY = (double)(y - (minHeight/2.0)); } // Otherwise, use default spacing else { spacingY = m_ySpacing; - startY = (float)(y - ((totalObjectHeight + (n+1)*spacingY)/2.0)); + startY = (double)(y - ((totalObjectHeight + (n+1)*spacingY)/2.0)); } // Now position the objects @@ -210,15 +208,15 @@ bool OGLConstraint::Evaluate() while (node) { wxShape *constrainedObject = (wxShape *)node->Data(); - float width2, height2; + double width2, height2; constrainedObject->GetBoundingBoxMax(&width2, &height2); - startY += (float)(spacingY + (height2/2.0)); + startY += (double)(spacingY + (height2/2.0)); if (!Equals(startY, constrainedObject->GetY())) { constrainedObject->Move(dc, constrainedObject->GetX(), startY, FALSE); changed = TRUE; } - startY += (float)(height2/2.0); + startY += (double)(height2/2.0); node = node->Next(); } return changed; @@ -226,30 +224,30 @@ bool OGLConstraint::Evaluate() case gyCONSTRAINT_CENTRED_HORIZONTALLY: { int n = m_constrainedObjects.Number(); - float totalObjectWidth = 0.0; + double totalObjectWidth = 0.0; wxNode *node = m_constrainedObjects.First(); while (node) { wxShape *constrainedObject = (wxShape *)node->Data(); - float width2, height2; + double width2, height2; constrainedObject->GetBoundingBoxMax(&width2, &height2); totalObjectWidth += width2; node = node->Next(); } - float startX; - float spacingX; + double startX; + double spacingX; // Check if within the constraining object... if ((totalObjectWidth + (n + 1)*m_xSpacing) <= minWidth) { - spacingX = (float)((minWidth - totalObjectWidth)/(n + 1)); - startX = (float)(x - (minWidth/2.0)); + spacingX = (double)((minWidth - totalObjectWidth)/(n + 1)); + startX = (double)(x - (minWidth/2.0)); } // Otherwise, use default spacing else { spacingX = m_xSpacing; - startX = (float)(x - ((totalObjectWidth + (n+1)*spacingX)/2.0)); + startX = (double)(x - ((totalObjectWidth + (n+1)*spacingX)/2.0)); } // Now position the objects @@ -258,15 +256,15 @@ bool OGLConstraint::Evaluate() while (node) { wxShape *constrainedObject = (wxShape *)node->Data(); - float width2, height2; + double width2, height2; constrainedObject->GetBoundingBoxMax(&width2, &height2); - startX += (float)(spacingX + (width2/2.0)); + startX += (double)(spacingX + (width2/2.0)); if (!Equals(startX, constrainedObject->GetX())) { constrainedObject->Move(dc, startX, constrainedObject->GetY(), FALSE); changed = TRUE; } - startX += (float)(width2/2.0); + startX += (double)(width2/2.0); node = node->Next(); } return changed; @@ -274,48 +272,48 @@ bool OGLConstraint::Evaluate() case gyCONSTRAINT_CENTRED_BOTH: { int n = m_constrainedObjects.Number(); - float totalObjectWidth = 0.0; - float totalObjectHeight = 0.0; + double totalObjectWidth = 0.0; + double totalObjectHeight = 0.0; wxNode *node = m_constrainedObjects.First(); while (node) { wxShape *constrainedObject = (wxShape *)node->Data(); - float width2, height2; + double width2, height2; constrainedObject->GetBoundingBoxMax(&width2, &height2); totalObjectWidth += width2; totalObjectHeight += height2; node = node->Next(); } - float startX; - float spacingX; - float startY; - float spacingY; + double startX; + double spacingX; + double startY; + double spacingY; // Check if within the constraining object... if ((totalObjectWidth + (n + 1)*m_xSpacing) <= minWidth) { - spacingX = (float)((minWidth - totalObjectWidth)/(n + 1)); - startX = (float)(x - (minWidth/2.0)); + spacingX = (double)((minWidth - totalObjectWidth)/(n + 1)); + startX = (double)(x - (minWidth/2.0)); } // Otherwise, use default spacing else { spacingX = m_xSpacing; - startX = (float)(x - ((totalObjectWidth + (n+1)*spacingX)/2.0)); + startX = (double)(x - ((totalObjectWidth + (n+1)*spacingX)/2.0)); } // Check if within the constraining object... if ((totalObjectHeight + (n + 1)*m_ySpacing) <= minHeight) { - spacingY = (float)((minHeight - totalObjectHeight)/(n + 1)); - startY = (float)(y - (minHeight/2.0)); + spacingY = (double)((minHeight - totalObjectHeight)/(n + 1)); + startY = (double)(y - (minHeight/2.0)); } // Otherwise, use default spacing else { spacingY = m_ySpacing; - startY = (float)(y - ((totalObjectHeight + (n+1)*spacingY)/2.0)); + startY = (double)(y - ((totalObjectHeight + (n+1)*spacingY)/2.0)); } // Now position the objects @@ -324,10 +322,10 @@ bool OGLConstraint::Evaluate() while (node) { wxShape *constrainedObject = (wxShape *)node->Data(); - float width2, height2; + double width2, height2; constrainedObject->GetBoundingBoxMax(&width2, &height2); - startX += (float)(spacingX + (width2/2.0)); - startY += (float)(spacingY + (height2/2.0)); + startX += (double)(spacingX + (width2/2.0)); + startY += (double)(spacingY + (height2/2.0)); if ((!Equals(startX, constrainedObject->GetX())) || (!Equals(startY, constrainedObject->GetY()))) { @@ -335,8 +333,8 @@ bool OGLConstraint::Evaluate() changed = TRUE; } - startX += (float)(width2/2.0); - startY += (float)(height2/2.0); + startX += (double)(width2/2.0); + startY += (double)(height2/2.0); node = node->Next(); } @@ -351,10 +349,10 @@ bool OGLConstraint::Evaluate() { wxShape *constrainedObject = (wxShape *)node->Data(); - float width2, height2; + double width2, height2; constrainedObject->GetBoundingBoxMax(&width2, &height2); - float x3 = (float)(x - (minWidth/2.0) - (width2/2.0) - m_xSpacing); + double x3 = (double)(x - (minWidth/2.0) - (width2/2.0) - m_xSpacing); if (!Equals(x3, constrainedObject->GetX())) { changed = TRUE; @@ -374,10 +372,10 @@ bool OGLConstraint::Evaluate() { wxShape *constrainedObject = (wxShape *)node->Data(); - float width2, height2; + double width2, height2; constrainedObject->GetBoundingBoxMax(&width2, &height2); - float x3 = (float)(x + (minWidth/2.0) + (width2/2.0) + m_xSpacing); + double x3 = (double)(x + (minWidth/2.0) + (width2/2.0) + m_xSpacing); if (!Equals(x3, constrainedObject->GetX())) { changed = TRUE; @@ -399,10 +397,10 @@ bool OGLConstraint::Evaluate() { wxShape *constrainedObject = (wxShape *)node->Data(); - float width2, height2; + double width2, height2; constrainedObject->GetBoundingBoxMax(&width2, &height2); - float y3 = (float)(y - (minHeight/2.0) - (height2/2.0) - m_ySpacing); + double y3 = (double)(y - (minHeight/2.0) - (height2/2.0) - m_ySpacing); if (!Equals(y3, constrainedObject->GetY())) { changed = TRUE; @@ -422,10 +420,10 @@ bool OGLConstraint::Evaluate() { wxShape *constrainedObject = (wxShape *)node->Data(); - float width2, height2; + double width2, height2; constrainedObject->GetBoundingBoxMax(&width2, &height2); - float y3 = (float)(y + (minHeight/2.0) + (height2/2.0) + m_ySpacing); + double y3 = (double)(y + (minHeight/2.0) + (height2/2.0) + m_ySpacing); if (!Equals(y3, constrainedObject->GetY())) { changed = TRUE; @@ -445,10 +443,10 @@ bool OGLConstraint::Evaluate() { wxShape *constrainedObject = (wxShape *)node->Data(); - float width2, height2; + double width2, height2; constrainedObject->GetBoundingBoxMax(&width2, &height2); - float x3 = (float)(x - (minWidth/2.0) + (width2/2.0) + m_xSpacing); + double x3 = (double)(x - (minWidth/2.0) + (width2/2.0) + m_xSpacing); if (!Equals(x3, constrainedObject->GetX())) { changed = TRUE; @@ -468,10 +466,10 @@ bool OGLConstraint::Evaluate() { wxShape *constrainedObject = (wxShape *)node->Data(); - float width2, height2; + double width2, height2; constrainedObject->GetBoundingBoxMax(&width2, &height2); - float x3 = (float)(x + (minWidth/2.0) - (width2/2.0) - m_xSpacing); + double x3 = (double)(x + (minWidth/2.0) - (width2/2.0) - m_xSpacing); if (!Equals(x3, constrainedObject->GetX())) { changed = TRUE; @@ -493,10 +491,10 @@ bool OGLConstraint::Evaluate() { wxShape *constrainedObject = (wxShape *)node->Data(); - float width2, height2; + double width2, height2; constrainedObject->GetBoundingBoxMax(&width2, &height2); - float y3 = (float)(y - (minHeight/2.0) + (height2/2.0) + m_ySpacing); + double y3 = (double)(y - (minHeight/2.0) + (height2/2.0) + m_ySpacing); if (!Equals(y3, constrainedObject->GetY())) { changed = TRUE; @@ -516,10 +514,10 @@ bool OGLConstraint::Evaluate() { wxShape *constrainedObject = (wxShape *)node->Data(); - float width2, height2; + double width2, height2; constrainedObject->GetBoundingBoxMax(&width2, &height2); - float y3 = (float)(y + (minHeight/2.0) - (height2/2.0) - m_ySpacing); + double y3 = (double)(y + (minHeight/2.0) - (height2/2.0) - m_ySpacing); if (!Equals(y3, constrainedObject->GetY())) { changed = TRUE; @@ -539,7 +537,7 @@ bool OGLConstraint::Evaluate() { wxShape *constrainedObject = (wxShape *)node->Data(); - float x3 = (float)(x - (minWidth/2.0)); + double x3 = (double)(x - (minWidth/2.0)); if (!Equals(x3, constrainedObject->GetX())) { changed = TRUE; @@ -559,7 +557,7 @@ bool OGLConstraint::Evaluate() { wxShape *constrainedObject = (wxShape *)node->Data(); - float x3 = (float)(x + (minWidth/2.0)); + double x3 = (double)(x + (minWidth/2.0)); if (!Equals(x3, constrainedObject->GetX())) { changed = TRUE; @@ -581,7 +579,7 @@ bool OGLConstraint::Evaluate() { wxShape *constrainedObject = (wxShape *)node->Data(); - float y3 = (float)(y - (minHeight/2.0)); + double y3 = (double)(y - (minHeight/2.0)); if (!Equals(y3, constrainedObject->GetY())) { changed = TRUE; @@ -601,7 +599,7 @@ bool OGLConstraint::Evaluate() { wxShape *constrainedObject = (wxShape *)node->Data(); - float y3 = (float)(y + (minHeight/2.0)); + double y3 = (double)(y + (minHeight/2.0)); if (!Equals(y3, constrainedObject->GetY())) { changed = TRUE;