various bugfixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8823 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
2f34c1a97e
commit
9354814833
@ -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)
|
bool EditorFrame::SelectNode(wxXmlNode *node, wxTreeItemId *root)
|
||||||
{
|
{
|
||||||
if (root == NULL)
|
if (root == NULL)
|
||||||
@ -335,14 +348,16 @@ bool EditorFrame::SelectNode(wxXmlNode *node, wxTreeItemId *root)
|
|||||||
nd = (dt) ? dt->Node : NULL;
|
nd = (dt) ? dt->Node : NULL;
|
||||||
if (nd == node)
|
if (nd == node)
|
||||||
{
|
{
|
||||||
|
RecursivelyExpand(m_TreeCtrl, *root);
|
||||||
m_TreeCtrl->SelectItem(item);
|
m_TreeCtrl->SelectItem(item);
|
||||||
m_TreeCtrl->EnsureVisible(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)
|
void EditorFrame::OnTreeSel(wxTreeEvent& event)
|
||||||
{
|
{
|
||||||
XmlTreeData *dt = (XmlTreeData*)(m_TreeCtrl->GetItemData(event.GetItem()));
|
XmlTreeData *dt = (XmlTreeData*)(m_TreeCtrl->GetItemData(event.GetItem()));
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include "xmlhelpr.h"
|
#include "xmlhelpr.h"
|
||||||
#include "editor.h"
|
#include "editor.h"
|
||||||
#include "preview.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");
|
if (m_c[1].IsEmpty()) m_c[1] = _T("-1");
|
||||||
wxString s;
|
wxString s;
|
||||||
s << m_c[0] << _T(',') << m_c[1];
|
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);
|
XmlWriteValue(GetNode(), m_PropInfo->Name, s);
|
||||||
m_TreeCtrl->SetItemBold(m_TreeCtrl->GetParent(m_TreeItem), TRUE);
|
m_TreeCtrl->SetItemBold(m_TreeCtrl->GetParent(m_TreeItem), TRUE);
|
||||||
}
|
}
|
||||||
@ -199,7 +201,6 @@ class PropEditCtrlCoordXY : public PropEditCtrlInt
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
wxString m_c[2];
|
wxString m_c[2];
|
||||||
bool m_dlg;
|
|
||||||
int m_which;
|
int m_which;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -213,7 +214,7 @@ class PropEditCtrlCoordDlg : public PropEditCtrlBool
|
|||||||
virtual void ReadValue()
|
virtual void ReadValue()
|
||||||
{
|
{
|
||||||
wxString s = XmlReadValue(GetNode(), m_PropInfo->Name);
|
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'))
|
else if (s[s.Length()-1] == _T('d'))
|
||||||
m_Choice->SetSelection(1);
|
m_Choice->SetSelection(1);
|
||||||
else
|
else
|
||||||
@ -232,7 +233,9 @@ class PropEditCtrlCoordDlg : public PropEditCtrlBool
|
|||||||
{
|
{
|
||||||
PropertyInfo *pi = &(((PETreeData*)m_TreeCtrl->GetItemData(ti))->PropInfo);
|
PropertyInfo *pi = &(((PETreeData*)m_TreeCtrl->GetItemData(ti))->PropInfo);
|
||||||
wxString s = XmlReadValue(GetNode(), pi->Name);
|
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");
|
return _("false");
|
||||||
else
|
else
|
||||||
return _("true");
|
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();
|
wxString s =m_TextCtrl->GetValue();
|
||||||
if (s.IsEmpty()) s = _T("-1");
|
if (s.IsEmpty()) s = _T("-1");
|
||||||
|
|
||||||
GetNode()->DeleteProperty(_T("name"));
|
REAL_NODE->DeleteProperty(_T("name"));
|
||||||
GetNode()->AddProperty(_T("name"), s);
|
REAL_NODE->AddProperty(_T("name"), s);
|
||||||
|
|
||||||
m_TreeCtrl->SetItemBold(m_TreeItem, TRUE);
|
m_TreeCtrl->SetItemBold(m_TreeItem, TRUE);
|
||||||
EditorFrame::Get()->NotifyChanged(CHANGED_TREE_SELECTED);
|
EditorFrame::Get()->NotifyChanged(CHANGED_TREE_SELECTED);
|
||||||
@ -381,7 +386,7 @@ void PropEditCtrlXMLID::WriteValue()
|
|||||||
void PropEditCtrlXMLID::Clear()
|
void PropEditCtrlXMLID::Clear()
|
||||||
{
|
{
|
||||||
EndEdit();
|
EndEdit();
|
||||||
GetNode()->DeleteProperty(_T("name"));
|
REAL_NODE->DeleteProperty(_T("name"));
|
||||||
m_TreeCtrl->SetItemBold(m_TreeItem, FALSE);
|
m_TreeCtrl->SetItemBold(m_TreeItem, FALSE);
|
||||||
EditorFrame::Get()->NotifyChanged(CHANGED_TREE_SELECTED);
|
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
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user