X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/12d9e30820444b48882ab9e29139611b99a84495..0d1dff0172e94487c4aa2d830c714f93be73c7ec:/contrib/utils/wxrcedit/pe_basic.cpp diff --git a/contrib/utils/wxrcedit/pe_basic.cpp b/contrib/utils/wxrcedit/pe_basic.cpp index 7bef53dc7a..876c4f80fe 100644 --- a/contrib/utils/wxrcedit/pe_basic.cpp +++ b/contrib/utils/wxrcedit/pe_basic.cpp @@ -18,12 +18,13 @@ #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) @@ -40,7 +41,11 @@ wxWindow *PropEditCtrlTxt::CreateEditCtrl() void PropEditCtrlTxt::OnText(wxCommandEvent& event) { - if (CanSave()) WriteValue(); + if (CanSave()) + { + WriteValue(); + EditorFrame::Get()->NotifyChanged(CHANGED_PROPS); + } } @@ -64,7 +69,9 @@ void PropEditCtrlTxt::WriteValue() wxWindow *PropEditCtrlInt::CreateEditCtrl() { PropEditCtrlTxt::CreateEditCtrl(); +#if wxUSE_VALIDATORS m_TextCtrl->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); +#endif return m_TextCtrl; } @@ -121,7 +128,11 @@ wxString PropEditCtrlBool::GetValueAsText(wxTreeItemId ti) void PropEditCtrlBool::OnChoice(wxCommandEvent& event) { - if (CanSave()) WriteValue(); + if (CanSave()) + { + WriteValue(); + EditorFrame::Get()->NotifyChanged(CHANGED_PROPS); + } } @@ -158,7 +169,8 @@ class PropEditCtrlCoordXY : public PropEditCtrlInt 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); } @@ -191,7 +203,6 @@ class PropEditCtrlCoordXY : public PropEditCtrlInt protected: wxString m_c[2]; - bool m_dlg; int m_which; }; @@ -205,7 +216,7 @@ class PropEditCtrlCoordDlg : public PropEditCtrlBool 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 @@ -224,7 +235,9 @@ class PropEditCtrlCoordDlg : public PropEditCtrlBool { 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"); @@ -346,23 +359,25 @@ wxTreeItemId PropEditCtrlDim::CreateTreeEntry(wxTreeItemId parent, const Propert -// --------------------- 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); @@ -370,17 +385,17 @@ void PropEditCtrlXMLID::WriteValue() -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) @@ -405,27 +420,27 @@ void PropEditCtrlXMLID::OnDetails() }; 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