bool wxDiagram::OnShapeSave(wxExprDatabase& db, wxShape& shape, wxExpr& expr) { shape.WriteAttributes(&expr); db.Append(&expr); if (shape.IsKindOf(CLASSINFO(wxCompositeShape))) { wxNode *node = shape.GetChildren().GetFirst(); while (node) { wxShape *childShape = (wxShape *)node->GetData(); wxExpr *childExpr = new wxExpr(_T("shape")); OnShapeSave(db, *childShape, *childExpr); node = node->GetNext(); } } return true; }