Various bug fixes to OGL; wxStripExtension prototype added to filefn.h

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@437 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
1998-08-05 07:13:08 +00:00
parent 7a4b9130e3
commit 2bb0cd285a
19 changed files with 539 additions and 426 deletions

View File

@@ -360,28 +360,32 @@ void wxCompositeShape::RemoveChildFromConstraints(wxShape *child)
}
}
void wxCompositeShape::Copy(wxCompositeShape& copy)
void wxCompositeShape::Copy(wxShape& copy)
{
wxRectangleShape::Copy(copy);
// Associate old and new copies for copying constraints and division geometry
wxObjectCopyMapping.Append((long)this, &copy);
wxASSERT( copy.IsKindOf(CLASSINFO(wxCompositeShape)) ) ;
wxCompositeShape& compositeCopy = (wxCompositeShape&) copy;
// Associate old and new copies for compositeCopying constraints and division geometry
wxObjectCopyMapping.Append((long)this, &compositeCopy);
// Copy the children
wxNode *node = m_children.First();
while (node)
{
wxShape *object = (wxShape *)node->Data();
wxShape *newObject = object->PrivateCopy();
wxShape *newObject = object->CreateNewCopy(FALSE, FALSE);
if (newObject->GetId() == 0)
newObject->SetId(NewId());
newObject->SetParent(&copy);
copy.m_children.Append(newObject);
newObject->SetParent(&compositeCopy);
compositeCopy.m_children.Append(newObject);
// Some m_children may be divisions
if (m_divisions.Member(object))
copy.m_divisions.Append(newObject);
compositeCopy.m_divisions.Append(newObject);
wxObjectCopyMapping.Append((long)object, newObject);
@@ -414,12 +418,12 @@ void wxCompositeShape::Copy(wxCompositeShape& copy)
newConstraint->m_constraintName = constraint->m_constraintName;
}
newConstraint->SetSpacing(constraint->m_xSpacing, constraint->m_ySpacing);
copy.m_constraints.Append(newConstraint);
compositeCopy.m_constraints.Append(newConstraint);
node = node->Next();
}
// Now copy the division geometry
// Now compositeCopy the division geometry
node = m_divisions.First();
while (node)
{
@@ -453,13 +457,6 @@ void wxCompositeShape::Copy(wxCompositeShape& copy)
}
}
wxShape *wxCompositeShape::PrivateCopy()
{
wxCompositeShape *obj = new wxCompositeShape;
Copy(*obj);
return obj;
}
OGLConstraint *wxCompositeShape::AddConstraint(OGLConstraint *constraint)
{
m_constraints.Append(constraint);
@@ -971,29 +968,26 @@ void wxDivisionShape::CalculateSize()
{
}
void wxDivisionShape::Copy(wxDivisionShape& copy)
void wxDivisionShape::Copy(wxShape& copy)
{
wxCompositeShape::Copy(copy);
copy.m_leftSideStyle = m_leftSideStyle;
copy.m_topSideStyle = m_topSideStyle;
copy.m_leftSideColour = m_leftSideColour;
copy.m_topSideColour = m_topSideColour;
wxASSERT( copy.IsKindOf(CLASSINFO(wxDivisionShape)) ) ;
copy.m_leftSidePen = m_leftSidePen;
copy.m_topSidePen = m_topSidePen;
copy.m_handleSide = m_handleSide;
wxDivisionShape& divisionCopy = (wxDivisionShape&) copy;
divisionCopy.m_leftSideStyle = m_leftSideStyle;
divisionCopy.m_topSideStyle = m_topSideStyle;
divisionCopy.m_leftSideColour = m_leftSideColour;
divisionCopy.m_topSideColour = m_topSideColour;
divisionCopy.m_leftSidePen = m_leftSidePen;
divisionCopy.m_topSidePen = m_topSidePen;
divisionCopy.m_handleSide = m_handleSide;
// Division geometry copying is handled at the wxCompositeShape level.
}
wxShape *wxDivisionShape::PrivateCopy()
{
wxDivisionShape *obj = new wxDivisionShape;
Copy(*obj);
return obj;
}
#ifdef PROLOGIO
void wxDivisionShape::WritePrologAttributes(wxExpr *clause)
{