]> git.saurik.com Git - wxWidgets.git/commitdiff
various bugfixes
authorVáclav Slavík <vslavik@fastmail.fm>
Sat, 25 Nov 2000 23:14:27 +0000 (23:14 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Sat, 25 Nov 2000 23:14:27 +0000 (23:14 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8823 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

contrib/utils/wxrcedit/editor.cpp
contrib/utils/wxrcedit/pe_basic.cpp

index 9e313c75973747b72c01a51bc804d2f845a488a1..04b5cfde657d693dd85dea7d34c2c99fec48f41e 100644 (file)
@@ -315,6 +315,19 @@ void EditorFrame::RefreshTree()
 
 
 
 
 
 
+
+static void RecursivelyExpand(wxTreeCtrl *t, wxTreeItemId item)
+{
+    t->Expand(item);
+    long cookie;
+    wxTreeItemId id = t->GetFirstChild(item, cookie);
+    while (id.IsOk())
+    {
+        RecursivelyExpand(t, id);
+        id = t->GetNextChild(item, cookie);
+    }
+}
+
 bool EditorFrame::SelectNode(wxXmlNode *node, wxTreeItemId *root)
 {
     if (root == NULL)
 bool EditorFrame::SelectNode(wxXmlNode *node, wxTreeItemId *root)
 {
     if (root == NULL)
@@ -335,14 +348,16 @@ bool EditorFrame::SelectNode(wxXmlNode *node, wxTreeItemId *root)
         nd = (dt) ? dt->Node : NULL;
         if (nd == node) 
         {
         nd = (dt) ? dt->Node : NULL;
         if (nd == node) 
         {
+            RecursivelyExpand(m_TreeCtrl, *root);
             m_TreeCtrl->SelectItem(item);
             m_TreeCtrl->EnsureVisible(item);
             m_TreeCtrl->SelectItem(item);
             m_TreeCtrl->EnsureVisible(item);
-            return TRUE;
+            return TRUE; 
         }
         if (m_TreeCtrl->ItemHasChildren(item) && SelectNode(node, &item)) 
         }
         if (m_TreeCtrl->ItemHasChildren(item) && SelectNode(node, &item)) 
-            return TRUE;
+            return TRUE; 
         item = m_TreeCtrl->GetNextChild(*root, cookie);
     }
         item = m_TreeCtrl->GetNextChild(*root, cookie);
     }
+
     return FALSE;
 }
 
     return FALSE;
 }
 
@@ -391,18 +406,6 @@ void EditorFrame::NotifyChanged(int change_type)
 
 
 
 
 
 
-static void RecursivelyExpand(wxTreeCtrl *t, wxTreeItemId item)
-{
-    t->Expand(item);
-    long cookie;
-    wxTreeItemId id = t->GetFirstChild(item, cookie);
-    while (id.IsOk())
-    {
-        RecursivelyExpand(t, id);
-        id = t->GetNextChild(item, cookie);
-    }
-}
-
 void EditorFrame::OnTreeSel(wxTreeEvent& event)
 {
     XmlTreeData *dt = (XmlTreeData*)(m_TreeCtrl->GetItemData(event.GetItem()));
 void EditorFrame::OnTreeSel(wxTreeEvent& event)
 {
     XmlTreeData *dt = (XmlTreeData*)(m_TreeCtrl->GetItemData(event.GetItem()));
index fdc338b06ce33ced7bd95443b64d3367e9346872..8ae8056f4fd46bd5bd3b25a05389aa7285e0039c 100644 (file)
@@ -24,6 +24,7 @@
 #include "xmlhelpr.h"
 #include "editor.h"
 #include "preview.h"
 #include "xmlhelpr.h"
 #include "editor.h"
 #include "preview.h"
+#include "nodehnd.h"
 
 
 BEGIN_EVENT_TABLE(PropEditCtrlTxt, PropEditCtrl)
 
 
 BEGIN_EVENT_TABLE(PropEditCtrlTxt, PropEditCtrl)
@@ -166,7 +167,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_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);
         }
             XmlWriteValue(GetNode(), m_PropInfo->Name, s);
             m_TreeCtrl->SetItemBold(m_TreeCtrl->GetParent(m_TreeItem), TRUE);
         }
@@ -199,7 +201,6 @@ class PropEditCtrlCoordXY : public PropEditCtrlInt
     
     protected:
         wxString m_c[2];
     
     protected:
         wxString m_c[2];
-        bool m_dlg;
         int m_which;
 };
 
         int m_which;
 };
 
@@ -213,7 +214,7 @@ class PropEditCtrlCoordDlg : public PropEditCtrlBool
         virtual void ReadValue()
         {
             wxString s = XmlReadValue(GetNode(), m_PropInfo->Name);
         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
             else if (s[s.Length()-1] == _T('d'))
                 m_Choice->SetSelection(1);
             else
@@ -232,7 +233,9 @@ class PropEditCtrlCoordDlg : public PropEditCtrlBool
         {
             PropertyInfo *pi = &(((PETreeData*)m_TreeCtrl->GetItemData(ti))->PropInfo);
             wxString s = XmlReadValue(GetNode(), pi->Name);
         {
             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");
                 return _("false");
             else
                 return _("true");
@@ -356,10 +359,12 @@ wxTreeItemId PropEditCtrlDim::CreateTreeEntry(wxTreeItemId parent, const Propert
 
 // --------------------- PropEditCtrlXMLID -----------------------------
 
 
 // --------------------- PropEditCtrlXMLID -----------------------------
 
+#define REAL_NODE (NodeHandler::Find(GetNode())->GetRealNode(GetNode()))
+
 
 void PropEditCtrlXMLID::ReadValue()
 {
 
 void PropEditCtrlXMLID::ReadValue()
 {
-    m_TextCtrl->SetValue(GetNode()->GetPropVal(_T("name"), wxEmptyString));
+    m_TextCtrl->SetValue(REAL_NODE->GetPropVal(_T("name"), wxEmptyString));
 }
 
 
 }
 
 
@@ -369,8 +374,8 @@ void PropEditCtrlXMLID::WriteValue()
     wxString s =m_TextCtrl->GetValue();
     if (s.IsEmpty()) s = _T("-1");
 
     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);
 
     m_TreeCtrl->SetItemBold(m_TreeItem, TRUE);
     EditorFrame::Get()->NotifyChanged(CHANGED_TREE_SELECTED);
@@ -381,7 +386,7 @@ void PropEditCtrlXMLID::WriteValue()
 void PropEditCtrlXMLID::Clear()
 {
     EndEdit();
 void PropEditCtrlXMLID::Clear()
 {
     EndEdit();
-    GetNode()->DeleteProperty(_T("name"));
+    REAL_NODE->DeleteProperty(_T("name"));
     m_TreeCtrl->SetItemBold(m_TreeItem, FALSE);
     EditorFrame::Get()->NotifyChanged(CHANGED_TREE_SELECTED);
 }
     m_TreeCtrl->SetItemBold(m_TreeItem, FALSE);
     EditorFrame::Get()->NotifyChanged(CHANGED_TREE_SELECTED);
 }
@@ -425,16 +430,15 @@ void PropEditCtrlXMLID::OnDetails()
 
 wxString PropEditCtrlXMLID::GetValueAsText(wxTreeItemId ti)
 {
 
 wxString PropEditCtrlXMLID::GetValueAsText(wxTreeItemId ti)
 {
-    return GetNode()->GetPropVal(_T("name"), wxEmptyString);
+    return REAL_NODE->GetPropVal(_T("name"), wxEmptyString);
 }
 
 
 
 bool PropEditCtrlXMLID::IsPresent(const PropertyInfo& pinfo)
 {
 }
 
 
 
 bool PropEditCtrlXMLID::IsPresent(const PropertyInfo& pinfo)
 {
-    return GetNode()->HasProp(_T("name"));
+    return REAL_NODE->HasProp(_T("name"));
 }
 
 }
 
-
-
+#undef REAL_NODE