changes in wxExprDatabase.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2937
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
bool wxDiagram::SaveFile(const wxString& filename)
{
wxBeginBusyCursor();
bool wxDiagram::SaveFile(const wxString& filename)
{
wxBeginBusyCursor();
wxExprDatabase *database = new wxExprDatabase;
// First write the diagram type
wxExpr *header = new wxExpr("diagram");
OnHeaderSave(*database, *header);
wxExprDatabase *database = new wxExprDatabase;
// First write the diagram type
wxExpr *header = new wxExpr("diagram");
OnHeaderSave(*database, *header);
database->Append(header);
database->Append(header);
wxNode *node = m_shapeList->First();
while (node)
{
wxShape *shape = (wxShape *)node->Data();
wxNode *node = m_shapeList->First();
while (node)
{
wxShape *shape = (wxShape *)node->Data();
if (!shape->IsKindOf(CLASSINFO(wxControlPoint)))
{
wxExpr *expr = NULL;
if (!shape->IsKindOf(CLASSINFO(wxControlPoint)))
{
wxExpr *expr = NULL;
node = node->Next();
}
OnDatabaseSave(*database);
node = node->Next();
}
OnDatabaseSave(*database);
char tempFile[400];
wxGetTempFileName("diag", tempFile);
char tempFile[400];
wxGetTempFileName("diag", tempFile);
- ofstream stream(tempFile);
- if (stream.bad())
+ FILE* file = fopen(tempFile, "w");
+ if (! file)
{
wxEndBusyCursor();
delete database;
return FALSE;
}
{
wxEndBusyCursor();
delete database;
return FALSE;
}
-
- database->Write(stream);
- stream.close();
+
+ database->Write(file);
+ fclose(file);
bool wxDiagram::LoadFile(const wxString& filename)
{
wxBeginBusyCursor();
bool wxDiagram::LoadFile(const wxString& filename)
{
wxBeginBusyCursor();
wxExprDatabase database(wxExprInteger, "id");
if (!database.Read(filename))
{
wxEndBusyCursor();
return FALSE;
}
wxExprDatabase database(wxExprInteger, "id");
if (!database.Read(filename))
{
wxEndBusyCursor();
return FALSE;
}
DeleteAllShapes();
database.BeginFind();
DeleteAllShapes();
database.BeginFind();
ReadNodes(database);
ReadContainerGeometry(database);
ReadLines(database);
ReadNodes(database);
ReadContainerGeometry(database);
ReadLines(database);
OnDatabaseLoad(database);
wxEndBusyCursor();
OnDatabaseLoad(database);
wxEndBusyCursor();
{
wxShape *shape = (wxShape *)classInfo->CreateObject();
OnShapeLoad(database, *shape, *clause);
{
wxShape *shape = (wxShape *)classInfo->CreateObject();
OnShapeLoad(database, *shape, *clause);
shape->SetCanvas(GetCanvas());
shape->Show(TRUE);
shape->SetCanvas(GetCanvas());
shape->Show(TRUE);
}
if (type)
delete[] type;
}
if (type)
delete[] type;
clause = database.FindClauseByFunctor("shape");
}
return;
clause = database.FindClauseByFunctor("shape");
}
return;