// wxr2xml.cpp: implementation of the wxr2xml class.
// 8/30/00 Brian Gavin
// only tested on wxMSW so far
-//License: wxWindows Liscense
+// License: wxWindows Liscense
// ////////////////////////////////////////////////////////////////////
/*
wxr2xml trans;
trans->Convert("Myfile.wxr","Myfile.xml");
*/
-#ifdef __GNUG__
-#pragma implementation "wxr2xml.h"
-#endif
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
wxr2xml::wxr2xml()
{
-
}
wxr2xml::~wxr2xml()
{
-
}
bool wxr2xml::Convert(wxString wxrfile, wxString xmlfile)
result = m_xmlfile.Open(xmlfile.c_str(), _T("w+t"));
wxASSERT_MSG(result, _T("Couldn't create XML file"));
if (!result)
- return FALSE;
+ return false;
result = m_table.ParseResourceFile(wxrfile);
wxASSERT_MSG(result, _T("Couldn't Load WXR file"));
if (!result)
- return FALSE;
+ return false;
// Write basic xml header
m_xmlfile.Write(_T("<?xml version=\"1.0\" ?>\n"));
m_xmlfile.Write(_T("<resource>\n"));
bool wxr2xml::ParseResources()
{
m_table.BeginFind();
- wxNode *node;
+ wxHashTable::Node *node;
node = m_table.Next();
- while (node)
+ while (node)
{
wxItemResource *res = (wxItemResource *) node->GetData();
wxString resType(res->GetType());
wxLogError(_T("Found unsupported resource ") + resType);
node = m_table.Next();
}
- return TRUE;
+ return true;
}
void wxr2xml::ParsePanel(wxItemResource * res)
void wxr2xml::ParseControls(wxItemResource * res)
{
wxNode *node = res->GetChildren().GetFirst();
- while (node)
+ while (node)
{
wxItemResource *res = (wxItemResource *) node->GetData();
wxString resType(res->GetType());
if (style & wxNO_FULL_REPAINT_ON_RESIZE)
s += _T("wxNO_FULL_REPAINT_ON_RESIZE|");
- if (restype == _T("wxDialog"))
+ if (restype == _T("wxDialog"))
{
- if (style & wxDIALOG_MODAL)
- s += _T("wxDIALOG_MODAL|");
if (style & wxDEFAULT_DIALOG_STYLE)
s += _T("wxDEFAULT_DIALOG_STYLE|");
+#if WXWIN_COMPATIBILITY_2_6
+ if (style & wxDIALOG_MODAL)
+ s += _T("wxDIALOG_MODAL|");
if (style & wxDIALOG_MODELESS)
s += _T("wxDIALOG_MODELESS|");
if (style & wxNO_3D)
s += _T("wxNO_3D|");
+#endif // WXWIN_COMPATIBILITY_2_6
if (style & wxTAB_TRAVERSAL)
s += _T("wxTAB_TRAVERSAL|");
if (style & wxWS_EX_VALIDATE_RECURSIVELY)
s += _T("wxSTAY_ON_TOP|");
if (style & wxCAPTION)
s += _T("wxCAPTION|");
- if (style & wxTHICK_FRAME)
- s += _T("wxTHICK_FRAME|");
+ if (style & wxRESIZE_BORDER)
+ s += _T("wxRESIZE_BORDER|");
+#if WXWIN_COMPATIBILITY_2_6
if (style & wxRESIZE_BOX)
s += _T("wxRESIZE_BOX|");
+#endif // WXWIN_COMPATIBILITY_2_6
if (style & wxRESIZE_BORDER)
s += _T("wxRESIZE_BORDER|");
if (style & wxSYSTEM_MENU)
s += _T("wxCLIP_CHILDREN|");
}
- if (restype == _T("wxPanel"))
+ if (restype == _T("wxPanel"))
{
if (style & wxCLIP_CHILDREN)
s += _T("wxCLIP_CHILDREN|");
+#if WXWIN_COMPATIBILITY_2_6
if (style & wxNO_3D)
s += _T("wxNO_3D|");
+#endif // WXWIN_COMPATIBILITY_2_6
if (style & wxTAB_TRAVERSAL)
s += _T("wxTAB_TRAVERSAL|");
if (style & wxWS_EX_VALIDATE_RECURSIVELY)
s += _T("wxWS_EX_VALIDATE_RECURSIVELY|");
}
- if (restype == _T("wxComboBox"))
+ if (restype == _T("wxComboBox"))
{
if (style & wxCB_SORT)
s += _T("wxCB_SORT|");
s += _T("wxCB_DROPDOWN|");
}
- if (restype == _T("wxGauge"))
+ if (restype == _T("wxGauge"))
{
if (style & wxGA_HORIZONTAL)
s += _T("wxGA_HORIZONTAL|");
if (style & wxGA_VERTICAL)
s += _T("wxGA_VERTICAL|");
- if (style & wxGA_PROGRESSBAR)
- s += _T("wxGA_PROGRESSBAR|");
// windows only
if (style & wxGA_SMOOTH)
s += _T("wxGA_SMOOTH|");
}
- if (restype == _T("wxRadioButton"))
+ if (restype == _T("wxRadioButton"))
{
if (style & wxRB_GROUP)
s += _T("wxRB_GROUP|");
}
- if (restype == _T("wxStaticText"))
+ if (restype == _T("wxStaticText"))
{
if (style & wxST_NO_AUTORESIZE)
s += _T("wxST_NO_AUTORESIZEL|");
}
- if (restype == _T("wxRadioBox"))
+ if (restype == _T("wxRadioBox"))
{
if (style & wxRA_HORIZONTAL)
s += _T("wxRA_HORIZONTAL|");
s += _T("wxRA_VERTICAL|");
}
- if (restype == _T("wxListBox"))
+ if (restype == _T("wxListBox"))
{
if (style & wxLB_SINGLE)
s += _T("wxLB_SINGLE|");
s += _T("wxLB_SORT|");
}
- if (restype == _T("wxTextCtrl"))
+ if (restype == _T("wxTextCtrl"))
{
if (style & wxTE_PROCESS_ENTER)
s += _T("wxTE_PROCESS_ENTER|");
{
if (style & wxSB_HORIZONTAL)
s += _T("wxSB_HORIZONTAL|");
- if (style & wxSB_VERTICAL)
+ if (style & wxSB_VERTICAL)
s += _T("wxSB_VERTICAL|");
}
- int l;
- l = s.Length();
+ int l = s.length();
// No styles defined
if (l == 11)
- return _T("");
+ return wxEmptyString;
// Trim off last |
s = s.Truncate(l - 1);
{
wxItemResource *child;
wxNode *node = res->GetChildren().GetFirst();
- // Get Menu
+ // Get Menu
m_xmlfile.Write(_T("\t\t\t<object class=\"wxMenu\" "));
wxString menuname;
menuname << _T("name = \"menu_") << res->GetValue1() << _T("\"");
m_xmlfile.Write(_T(">\n"));
m_xmlfile.Write(_T("\t\t\t\t<label>")
+ FixMenuString(res->GetTitle()) + _T("</label>\n"));
- if (res->GetValue4() != _T(""))
+ if (!res->GetValue4().empty())
m_xmlfile.Write(_T("\t\t\t\t<help>") + res->GetValue4() +
_T("</help>\n"));
// Read in menu items and additional menus
void wxr2xml::ParseMenuItem(wxItemResource * res)
{
// Get Menu Item or Separator
- if (res->GetTitle() == _T("")) {
+ if (res->GetTitle().empty()) {
m_xmlfile.Write(_T("\t\t\t<object class=\"separator\"/>\n"));
} else {
m_xmlfile.Write(_T("\t\t\t\t<object class=\"wxMenuItem\" "));
menuname << _T("name = \"menuitem_") << res->GetValue1() << _T("\"");
m_xmlfile.Write(menuname);
m_xmlfile.Write(_T(">\n"));
- m_xmlfile.Write(_T(" <label>")
+ m_xmlfile.Write(_T("\t\t\t<label>")
+ FixMenuString(res->GetTitle()) + _T("</label>\n"));
- if (res->GetValue4() != _T(""))
- m_xmlfile.Write(_T(" <help>") +
+ if (!res->GetValue4().empty())
+ m_xmlfile.Write(_T("\t\t\t<help>") +
res->GetValue4() + _T("</help>\n"));
if (res->GetValue2())
m_xmlfile.Write(_T("\t\t\t\t<checkable>1</checkable>\n"));
void wxr2xml::PanelStuff(wxItemResource * res)
{
if ((res->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) != 0)
- m_dlgunits = TRUE;
+ m_dlgunits = true;
else
- m_dlgunits = FALSE;
+ m_dlgunits = false;
// If this is true ignore fonts, background color and use system
// defaults instead
if ((res->GetResourceStyle() & wxRESOURCE_USE_DEFAULTS) != 0)
- m_systemdefaults = TRUE;
+ m_systemdefaults = true;
else
- m_systemdefaults = FALSE;
+ m_systemdefaults = false;
}
void wxr2xml::ParseBitmapButton(wxItemResource *res)
{
-
+
m_xmlfile.Write(_T("\t\t\t<object class=\"wxBitmapButton\""));
WriteControlInfo(res);
// value4 holds bitmap name
bitmapname += _T(".bmp");
bitmap.SaveFile(bitmapname, wxBITMAP_TYPE_BMP);
m_xmlfile.Write(_T("\t\t\t\t<bitmap>") + bitmapname + _T("</bitmap>\n"));
-
+
m_xmlfile.Write(_T("\t\t\t</object>\n"));
}
GetFontFace(font);
GetFontStyle(font);
GetFontWeight(font);
-
+
if (font.GetUnderlined())
m_xmlfile.Write(_T("\t\t\t\t<underlined>1</underlined>\n"));
-
+
m_xmlfile.Write(_T("\t\t\t</font>\n"));
}
void wxr2xml::GetFontFace(wxFont font)
{
int family=font.GetFamily();
-
+
switch (family)
{
case wxDEFAULT: