X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/12d9e30820444b48882ab9e29139611b99a84495..4818141bb228bbb59df63de12a5ea31801314b57:/contrib/utils/wxrcedit/pe_basic.cpp diff --git a/contrib/utils/wxrcedit/pe_basic.cpp b/contrib/utils/wxrcedit/pe_basic.cpp index 7bef53dc7a..d6cb8b6982 100644 --- a/contrib/utils/wxrcedit/pe_basic.cpp +++ b/contrib/utils/wxrcedit/pe_basic.cpp @@ -24,23 +24,28 @@ #include "xmlhelpr.h" #include "editor.h" #include "preview.h" +#include "nodehnd.h" BEGIN_EVENT_TABLE(PropEditCtrlTxt, PropEditCtrl) - EVT_TEXT(-1, PropEditCtrlTxt::OnText) + EVT_TEXT(wxID_ANY, PropEditCtrlTxt::OnText) END_EVENT_TABLE() wxWindow *PropEditCtrlTxt::CreateEditCtrl() { - return (m_TextCtrl = new wxTextCtrl(this, -1)); + return (m_TextCtrl = new wxTextCtrl(this, wxID_ANY)); } -void PropEditCtrlTxt::OnText(wxCommandEvent& event) +void PropEditCtrlTxt::OnText(wxCommandEvent& WXUNUSED(event)) { - if (CanSave()) WriteValue(); + if (CanSave()) + { + WriteValue(); + EditorFrame::Get()->NotifyChanged(CHANGED_PROPS); + } } @@ -56,7 +61,7 @@ void PropEditCtrlTxt::WriteValue() { wxString newv = m_TextCtrl->GetValue(); XmlWriteValue(GetNode(), m_PropInfo->Name, newv); - m_TreeCtrl->SetItemBold(m_TreeItem, TRUE); + m_TreeCtrl->SetItemBold(m_TreeItem, true); } @@ -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; } @@ -75,12 +82,12 @@ wxWindow *PropEditCtrlInt::CreateEditCtrl() BEGIN_EVENT_TABLE(PropEditCtrlBool, PropEditCtrl) - EVT_CHOICE(-1, PropEditCtrlBool::OnChoice) + EVT_CHOICE(wxID_ANY, PropEditCtrlBool::OnChoice) END_EVENT_TABLE() wxWindow *PropEditCtrlBool::CreateEditCtrl() { - m_Choice = new wxChoice(this, -1); + m_Choice = new wxChoice(this, wxID_ANY); m_Choice->Append(_T("false")); m_Choice->Append(_T("true")); return m_Choice; @@ -103,7 +110,7 @@ void PropEditCtrlBool::WriteValue() wxString newv = m_Choice->GetSelection() == 0 ? _T("0") : _T("1"); XmlWriteValue(GetNode(), m_PropInfo->Name, newv); - m_TreeCtrl->SetItemBold(m_TreeItem, TRUE); + m_TreeCtrl->SetItemBold(m_TreeItem, true); } @@ -119,9 +126,13 @@ wxString PropEditCtrlBool::GetValueAsText(wxTreeItemId ti) -void PropEditCtrlBool::OnChoice(wxCommandEvent& event) +void PropEditCtrlBool::OnChoice(wxCommandEvent& WXUNUSED(event)) { - if (CanSave()) WriteValue(); + if (CanSave()) + { + WriteValue(); + EditorFrame::Get()->NotifyChanged(CHANGED_PROPS); + } } @@ -134,7 +145,7 @@ class PropEditCtrlCoordXY : public PropEditCtrlInt public: PropEditCtrlCoordXY(PropertiesFrame *propFrame, int which) : PropEditCtrlInt(propFrame), m_which(which) {} - + virtual void ReadValue() { wxString s = XmlReadValue(GetNode(), m_PropInfo->Name); @@ -150,7 +161,7 @@ class PropEditCtrlCoordXY : public PropEditCtrlInt } m_TextCtrl->SetValue(m_c[m_which]); } - + virtual void WriteValue() { m_c[m_which] = m_TextCtrl->GetValue(); @@ -158,11 +169,12 @@ 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); + m_TreeCtrl->SetItemBold(m_TreeCtrl->GetItemParent(m_TreeItem), true); } - + virtual wxString GetValueAsText(wxTreeItemId ti) { PropertyInfo *pi = &(((PETreeData*)m_TreeCtrl->GetItemData(ti))->PropInfo); @@ -179,19 +191,18 @@ class PropEditCtrlCoordXY : public PropEditCtrlInt } return m_c[m_which]; } - - virtual wxString GetPropName(const PropertyInfo& pinfo) + + virtual wxString GetPropName(const PropertyInfo& WXUNUSED(pinfo)) { if (m_which == 0) return _T("x"); else return _T("y"); } - virtual bool HasClearButton() { return FALSE; } - virtual bool IsPresent(const PropertyInfo& pinfo) { return FALSE; } + virtual bool HasClearButton() { return false; } + virtual bool IsPresent(const PropertyInfo& WXUNUSED(pinfo)) { return false; } + - protected: wxString m_c[2]; - bool m_dlg; int m_which; }; @@ -201,42 +212,44 @@ class PropEditCtrlCoordDlg : public PropEditCtrlBool public: PropEditCtrlCoordDlg(PropertiesFrame *propFrame) : PropEditCtrlBool(propFrame) {} - + 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 m_Choice->SetSelection(0); } - + virtual void WriteValue() { wxString s = XmlReadValue(GetNode(), m_PropInfo->Name).BeforeFirst(_T('d')); if (m_Choice->GetSelection() == 1) s << _T('d'); XmlWriteValue(GetNode(), m_PropInfo->Name, s); - m_TreeCtrl->SetItemBold(m_TreeCtrl->GetParent(m_TreeItem), TRUE); + m_TreeCtrl->SetItemBold(m_TreeCtrl->GetItemParent(m_TreeItem), true); } - + virtual wxString GetValueAsText(wxTreeItemId ti) { 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"); } - - virtual wxString GetPropName(const PropertyInfo& pinfo) + + virtual wxString GetPropName(const PropertyInfo& WXUNUSED(pinfo)) { return _T("dlg"); } - virtual bool HasClearButton() { return FALSE; } - virtual bool IsPresent(const PropertyInfo& pinfo) { return FALSE; } + virtual bool HasClearButton() { return false; } + virtual bool IsPresent(const PropertyInfo& WXUNUSED(pinfo)) { return false; } }; @@ -280,14 +293,14 @@ class PropEditCtrlDimX : public PropEditCtrlInt public: PropEditCtrlDimX(PropertiesFrame *propFrame) : PropEditCtrlInt(propFrame){} - + virtual void ReadValue() { wxString s = XmlReadValue(GetNode(), m_PropInfo->Name); m_c = s.BeforeFirst(_T('d')); m_TextCtrl->SetValue(m_c); } - + virtual void WriteValue() { wxString s = XmlReadValue(GetNode(), m_PropInfo->Name); @@ -296,24 +309,24 @@ class PropEditCtrlDimX : public PropEditCtrlInt s = m_c; if (dlg) s << _T('d'); XmlWriteValue(GetNode(), m_PropInfo->Name, s); - m_TreeCtrl->SetItemBold(m_TreeCtrl->GetParent(m_TreeItem), TRUE); + m_TreeCtrl->SetItemBold(m_TreeCtrl->GetItemParent(m_TreeItem), true); } - + virtual wxString GetValueAsText(wxTreeItemId ti) { PropertyInfo *pi = &(((PETreeData*)m_TreeCtrl->GetItemData(ti))->PropInfo); return XmlReadValue(GetNode(), pi->Name).BeforeFirst(_T('d')); } - - virtual wxString GetPropName(const PropertyInfo& pinfo) + + virtual wxString GetPropName(const PropertyInfo& WXUNUSED(pinfo)) { return _T("val"); } - virtual bool HasClearButton() { return FALSE; } - virtual bool IsPresent(const PropertyInfo& pinfo) { return FALSE; } + virtual bool HasClearButton() { return false; } + virtual bool IsPresent(const PropertyInfo& WXUNUSED(pinfo)) { return false; } + - protected: wxString m_c; }; @@ -346,47 +359,49 @@ 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); + m_TreeCtrl->SetItemBold(m_TreeItem, true); EditorFrame::Get()->NotifyChanged(CHANGED_TREE_SELECTED); } -void PropEditCtrlXMLID::Clear() +void PropEditCtrlXRCID::Clear() { EndEdit(); - GetNode()->DeleteProperty(_T("name")); - m_TreeCtrl->SetItemBold(m_TreeItem, FALSE); + 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) + #define stdID(id) , wxString(_T(#id)) stdID(wxID_OK) stdID(wxID_CANCEL) stdID(wxID_YES) stdID(wxID_NO) - stdID(wxID_APPLY) stdID(wxID_HELP) + stdID(wxID_APPLY) stdID(wxID_HELP) stdID(wxID_HELP_CONTEXT) stdID(wxID_OPEN) stdID(wxID_CLOSE) stdID(wxID_NEW) @@ -397,35 +412,35 @@ void PropEditCtrlXMLID::OnDetails() stdID(wxID_HELP_COMMANDS) stdID(wxID_HELP_PROCEDURES) stdID(wxID_CUT) stdID(wxID_COPY) stdID(wxID_PASTE) stdID(wxID_CLEAR) stdID(wxID_FIND) stdID(wxID_DUPLICATE) - stdID(wxID_SELECTALL) + stdID(wxID_SELECTALL) stdID(wxID_STATIC) stdID(wxID_FORWARD) stdID(wxID_BACKWARD) stdID(wxID_DEFAULT) stdID(wxID_MORE) stdID(wxID_SETUP) - stdID(wxID_RESET) + stdID(wxID_RESET) #undef stdID }; - wxString s = - wxGetSingleChoice(_("Choose from predefined IDs:"), _("XMLID"), + wxString s = + 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 WXUNUSED(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& WXUNUSED(pinfo)) { - return GetNode()->HasProp(_T("name")); + return REAL_NODE->HasProp(_T("name")); } - - +#undef REAL_NODE