#endif
#include "wx/wx.h"
-#include "wx/xml/xml.h"
+#include "wx/xrc/xml.h"
#include "wx/tokenzr.h"
#include "pe_basic.h"
#include "xmlhelpr.h"
#include "editor.h"
#include "preview.h"
+#include "nodehnd.h"
BEGIN_EVENT_TABLE(PropEditCtrlTxt, PropEditCtrl)
void PropEditCtrlTxt::OnText(wxCommandEvent& event)
{
- if (CanSave()) WriteValue();
+ if (CanSave())
+ {
+ WriteValue();
+ EditorFrame::Get()->NotifyChanged(CHANGED_PROPS);
+ }
}
wxWindow *PropEditCtrlInt::CreateEditCtrl()
{
PropEditCtrlTxt::CreateEditCtrl();
+#if wxUSE_VALIDATORS
m_TextCtrl->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
+#endif
return m_TextCtrl;
}
void PropEditCtrlBool::OnChoice(wxCommandEvent& event)
{
- if (CanSave()) WriteValue();
+ if (CanSave())
+ {
+ WriteValue();
+ EditorFrame::Get()->NotifyChanged(CHANGED_PROPS);
+ }
}
if (m_c[1].IsEmpty()) m_c[1] = _T("-1");
wxString s;
s << m_c[0] << _T(',') << m_c[1];
- if (m_dlg) s << _T('d');
+ wxString prev = XmlReadValue(GetNode(), m_PropInfo->Name);
+ if (prev[prev.Len()-1] == _T('d')) s << _T('d');
XmlWriteValue(GetNode(), m_PropInfo->Name, s);
m_TreeCtrl->SetItemBold(m_TreeCtrl->GetParent(m_TreeItem), TRUE);
}
protected:
wxString m_c[2];
- bool m_dlg;
int m_which;
};
virtual void ReadValue()
{
wxString s = XmlReadValue(GetNode(), m_PropInfo->Name);
- if (s.IsEmpty()) m_Choice->SetSelection(0);
+ if (s.IsEmpty()) m_Choice->SetSelection(1);
else if (s[s.Length()-1] == _T('d'))
m_Choice->SetSelection(1);
else
{
PropertyInfo *pi = &(((PETreeData*)m_TreeCtrl->GetItemData(ti))->PropInfo);
wxString s = XmlReadValue(GetNode(), pi->Name);
- if (s.IsEmpty() || s[s.Length()-1] != _T('d'))
+ if (s.IsEmpty())
+ return _("true");
+ else if (s[s.Length()-1] != _T('d'))
return _("false");
else
return _("true");
-// --------------------- PropEditCtrlXMLID -----------------------------
+// --------------------- PropEditCtrlXRCID -----------------------------
+#define REAL_NODE (NodeHandler::Find(GetNode())->GetRealNode(GetNode()))
-void PropEditCtrlXMLID::ReadValue()
+
+void PropEditCtrlXRCID::ReadValue()
{
- m_TextCtrl->SetValue(GetNode()->GetPropVal(_T("name"), wxEmptyString));
+ m_TextCtrl->SetValue(REAL_NODE->GetPropVal(_T("name"), wxEmptyString));
}
-void PropEditCtrlXMLID::WriteValue()
+void PropEditCtrlXRCID::WriteValue()
{
wxString s =m_TextCtrl->GetValue();
if (s.IsEmpty()) s = _T("-1");
- GetNode()->DeleteProperty(_T("name"));
- GetNode()->AddProperty(_T("name"), s);
+ REAL_NODE->DeleteProperty(_T("name"));
+ REAL_NODE->AddProperty(_T("name"), s);
m_TreeCtrl->SetItemBold(m_TreeItem, TRUE);
EditorFrame::Get()->NotifyChanged(CHANGED_TREE_SELECTED);
-void PropEditCtrlXMLID::Clear()
+void PropEditCtrlXRCID::Clear()
{
EndEdit();
- GetNode()->DeleteProperty(_T("name"));
+ REAL_NODE->DeleteProperty(_T("name"));
m_TreeCtrl->SetItemBold(m_TreeItem, FALSE);
EditorFrame::Get()->NotifyChanged(CHANGED_TREE_SELECTED);
}
-void PropEditCtrlXMLID::OnDetails()
+void PropEditCtrlXRCID::OnDetails()
{
wxString choices[] = {wxString(_T("-1"))
#define stdID(id) , wxString(#id)
};
wxString s =
- wxGetSingleChoice(_("Choose from predefined IDs:"), _("XMLID"),
+ wxGetSingleChoice(_("Choose from predefined IDs:"), _("XRCID"),
38/*sizeof choices*/, choices);
if (!s) return;
m_TextCtrl->SetValue(s);
WriteValue();
+ EditorFrame::Get()->NotifyChanged(CHANGED_PROPS);
}
-wxString PropEditCtrlXMLID::GetValueAsText(wxTreeItemId ti)
+wxString PropEditCtrlXRCID::GetValueAsText(wxTreeItemId ti)
{
- return GetNode()->GetPropVal(_T("name"), wxEmptyString);
+ return REAL_NODE->GetPropVal(_T("name"), wxEmptyString);
}
-bool PropEditCtrlXMLID::IsPresent(const PropertyInfo& pinfo)
+bool PropEditCtrlXRCID::IsPresent(const PropertyInfo& pinfo)
{
- return GetNode()->HasProp(_T("name"));
+ return REAL_NODE->HasProp(_T("name"));
}
-
-
+#undef REAL_NODE