]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/utils/wxrcedit/pe_basic.cpp
Baked bakefiles
[wxWidgets.git] / contrib / utils / wxrcedit / pe_basic.cpp
index 7bef53dc7aa465c193469bd733e06a4a9a6d3db3..ab467eb4537186a324fc3f46b036b951e200c9e7 100644 (file)
@@ -24,6 +24,7 @@
 #include "xmlhelpr.h"
 #include "editor.h"
 #include "preview.h"
+#include "nodehnd.h"
 
 
 BEGIN_EVENT_TABLE(PropEditCtrlTxt, PropEditCtrl)
@@ -38,9 +39,13 @@ wxWindow *PropEditCtrlTxt::CreateEditCtrl()
 
 
 
-void PropEditCtrlTxt::OnText(wxCommandEvent& event)
+void PropEditCtrlTxt::OnText(wxCommandEvent& WXUNUSED(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;
 }
 
@@ -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);
+    }
 }
 
 
@@ -158,9 +169,10 @@ 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)
@@ -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
@@ -217,14 +228,16 @@ class PropEditCtrlCoordDlg : public PropEditCtrlBool
             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");
@@ -296,7 +309,7 @@ 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)
@@ -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,20 +385,20 @@ 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)
+      #define stdID(id) , wxString(_T(#id))
       stdID(wxID_OK) stdID(wxID_CANCEL)
       stdID(wxID_YES) stdID(wxID_NO)
       stdID(wxID_APPLY) stdID(wxID_HELP) 
@@ -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 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