#include <math.h>
#include <string.h>
-#if wxUSE_IOSTREAMH
-#if defined(__WXMSW__) && !defined(__GNUWIN32__)
-#include <strstrea.h>
-#else
-#include <strstream.h>
-#include <fstream.h>
-#endif
-#else
-#include <strstream>
-#include <fstream>
-#endif
-
-
#include "wx/scrolbar.h"
#include "wx/string.h"
+#include "wx/wfstream.h"
+#include "wx/txtstrm.h"
#include "reseditr.h"
return item;
}
-void wxResourceTableWithSaving::OutputFont(ostream& stream, const wxFont& font)
+void wxResourceTableWithSaving::OutputFont(wxTextOutputStream& stream, const wxFont& font)
{
stream << "[" << font.GetPointSize() << ", '";
stream << font.GetFamilyString() << "', '";
bool wxResourceTableWithSaving::Save(const wxString& filename)
{
- ofstream stream(((wxString &) filename).GetData());
- if (stream.bad())
+ wxFileOutputStream file_output( filename.fn_str() );
+ if (file_output.LastError())
return FALSE;
+ wxTextOutputStream stream( file_output );
+
BeginFind();
wxNode *node = NULL;
while ((node = Next()))
return TRUE;
}
-bool wxResourceTableWithSaving::SaveResource(ostream& stream, wxItemResource* item, wxItemResource* parentItem)
+bool wxResourceTableWithSaving::SaveResource(wxTextOutputStream& stream, wxItemResource* item, wxItemResource* parentItem)
{
char styleBuf[400];
wxString itemType(item->GetType());
}
stream << " style = '" << styleBuf << "',\\\n";
- stream << " title = '" << item->GetTitle() << "',\\\n";
+ stream << " title = " << SafeWord(item->GetTitle()) << ",\\\n";
stream << " id = " << item->GetId() << ",\\\n";
stream << " x = " << item->GetX() << ", y = " << item->GetY();
stream << ", width = " << item->GetWidth() << ", height = " << item->GetHeight();
node = node->Next();
}
}
- stream << "], ";
+ stream << "]";
+/* Styles are now in the window style, not in a separate arg
+ stream << ", ";
switch (item->GetValue1())
{
case wxLB_MULTIPLE:
break;
}
}
+ */
+
if (item->GetFont().Ok())
{
stream << ",\\\n ";
}
}
-// Returns quoted string or ''
+// Returns quoted string or '' : convert " to \"
char *SafeWord(const wxString& s)
{
- if (s == "")
- return "''";
- else
- {
- strcpy(wxBuffer, "'");
- strcat(wxBuffer, (const char*) s);
- strcat(wxBuffer, "'");
- return wxBuffer;
- }
+ const char *cp;
+ char *dp;
+
+ if (s == "")
+ return "''";
+ else
+ {
+ dp = wxBuffer;
+ cp = s.c_str();
+ *dp++ = '\'';
+ while(*cp != 0) {
+ if(*cp == '"') {
+ *dp++ = '\\';
+ *dp++ = '"';
+ } else if(*cp == '\'') {
+ *dp++ = '\\';
+ *dp++ = '\'';
+ } else
+ *dp++ = *cp;
+
+ cp++;
+ }
+ *dp++ = '\'';
+ *dp++ = 0;
+
+ return wxBuffer;
+ }
}