Applied patch [ 651287 ] adds missing wxTreeCtrl::GetEditControl
This patch implements a missing member in the generic version of the wxTreeCtrl. The GetEditControl member is currently not implemented in the generic tree control used by wxGTK. This patch implements the feature by 1. adding a pointer to the wxTextTreeControl as a member (m_textCtrl) of the wxGenericTreeCtrl class 2. making sure pointer was initialized to 0 3. using the member variable instead of the stack variable in the wxGenericTreeCtrl::Edit member 4. making sure the new wxGenericTreeCtrl class member is set to 0 when the control is set up for deletion in Finish by calling a new protected member (ResetTextControl) of the wxGenericTreeCtrl class. These modification were discussed on the wx-dev list under the "wxGTK - wxTreeCtrl::GetEditControl status?" subject. I have tested, but I certainly welcome comments and further testing. Pete Stieber git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18192 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -427,6 +427,8 @@ void wxTreeTextCtrl::Finish()
|
||||
{
|
||||
if ( !m_finished )
|
||||
{
|
||||
m_owner->ResetTextControl();
|
||||
|
||||
wxPendingDelete.Append(this);
|
||||
|
||||
m_finished = TRUE;
|
||||
@@ -755,6 +757,7 @@ void wxGenericTreeCtrl::Init()
|
||||
m_dragCount = 0;
|
||||
m_isDragging = FALSE;
|
||||
m_dropTarget = m_oldSelection = (wxGenericTreeItem *)NULL;
|
||||
m_textCtrl = NULL;
|
||||
|
||||
m_renameTimer = NULL;
|
||||
m_findTimer = NULL;
|
||||
@@ -1265,6 +1268,12 @@ wxTreeItemId wxGenericTreeCtrl::GetPrevVisible(const wxTreeItemId& item) const
|
||||
return wxTreeItemId();
|
||||
}
|
||||
|
||||
// called by wxTextTreeCtrl when it marks itself for deletion
|
||||
void wxGenericTreeCtrl::ResetTextControl()
|
||||
{
|
||||
m_textCtrl = NULL;
|
||||
}
|
||||
|
||||
// find the first item starting with the given prefix after the given item
|
||||
wxTreeItemId wxGenericTreeCtrl::FindItem(const wxTreeItemId& idParent,
|
||||
const wxString& prefixOrig) const
|
||||
@@ -2809,9 +2818,17 @@ void wxGenericTreeCtrl::Edit( const wxTreeItemId& item )
|
||||
if ( m_dirty )
|
||||
wxYieldIfNeeded();
|
||||
|
||||
wxTreeTextCtrl *text = new wxTreeTextCtrl(this, itemEdit);
|
||||
m_textCtrl = new wxTreeTextCtrl(this, itemEdit);
|
||||
|
||||
text->SetFocus();
|
||||
m_textCtrl->SetFocus();
|
||||
}
|
||||
|
||||
// returns a pointer to the text edit control if the item is being
|
||||
// edited, NULL otherwise (it's assumed that no more than one item may
|
||||
// be edited simultaneously)
|
||||
wxTextCtrl* wxGenericTreeCtrl::GetEditControl() const
|
||||
{
|
||||
return m_textCtrl;
|
||||
}
|
||||
|
||||
bool wxGenericTreeCtrl::OnRenameAccept(wxGenericTreeItem *item,
|
||||
|
Reference in New Issue
Block a user