KiCad PCB EDA Suite
Loading...
Searching...
No Matches
WX_DATAVIEWCTRL Class Reference

Extension of the wxDataViewCtrl to include some helper functions for working with items. More...

#include <wx_dataviewctrl.h>

Inheritance diagram for WX_DATAVIEWCTRL:

Public Member Functions

 ~WX_DATAVIEWCTRL () override
 
bool AssociateModel (wxDataViewModel *aModel) override
 Install a WX_ENSURE_VISIBLE_CANCELLER on aModel so deferred scrolls are dropped automatically when it frees items, then associate it as usual.
 
wxDataViewItem GetPrevItem (wxDataViewItem const &aItem)
 Get the previous item in list order.
 
wxDataViewItem GetNextItem (wxDataViewItem const &aItem)
 Get the next item in list order.
 
wxDataViewItem GetPrevSibling (wxDataViewItem const &aItem)
 Get the previous sibling of an item.
 
wxDataViewItem GetNextSibling (wxDataViewItem const &aItem)
 Get the next sibling of an item.
 
void DoSetToolTipText (const wxString &tip) override
 
void ExpandAll ()
 
void CollapseAll ()
 
void CancelPendingEnsureVisible ()
 Cancel any pending deferred EnsureVisible request.
 

Private Attributes

wxDataViewModelNotifier * m_ensureVisibleCanceller = nullptr
 

Detailed Description

Extension of the wxDataViewCtrl to include some helper functions for working with items.

These should probably be sent upstream, since they may be useful to others, but for now just extend the class with them ourselves.

Definition at line 84 of file wx_dataviewctrl.h.

Constructor & Destructor Documentation

◆ ~WX_DATAVIEWCTRL()

WX_DATAVIEWCTRL::~WX_DATAVIEWCTRL ( )
override

Definition at line 179 of file wx_dataviewctrl.cpp.

References m_ensureVisibleCanceller.

Member Function Documentation

◆ AssociateModel()

bool WX_DATAVIEWCTRL::AssociateModel ( wxDataViewModel * aModel)
override

Install a WX_ENSURE_VISIBLE_CANCELLER on aModel so deferred scrolls are dropped automatically when it frees items, then associate it as usual.

Definition at line 187 of file wx_dataviewctrl.cpp.

References CancelPendingEnsureVisible(), and m_ensureVisibleCanceller.

◆ CancelPendingEnsureVisible()

void WX_DATAVIEWCTRL::CancelPendingEnsureVisible ( )

Cancel any pending deferred EnsureVisible request.

On GTK, wxDataViewCtrl::EnsureVisible() records the target item and re-scrolls to it during the next idle cycle (in OnInternalIdle). If the model is rebuilt and the underlying item is freed before that idle runs, OnInternalIdle dereferences the stale pointer in ExpandAncestors and crashes. The installed WX_ENSURE_VISIBLE_CANCELLER invokes this automatically when the model frees items, so call sites normally do not need to. This is a no-op on platforms that do not defer the scroll.

Definition at line 164 of file wx_dataviewctrl.cpp.

Referenced by AssociateModel().

◆ CollapseAll()

void WX_DATAVIEWCTRL::CollapseAll ( )

Definition at line 158 of file wx_dataviewctrl.cpp.

References recursiveDescent().

◆ DoSetToolTipText()

void WX_DATAVIEWCTRL::DoSetToolTipText ( const wxString & tip)
inlineoverride

Definition at line 130 of file wx_dataviewctrl.h.

◆ ExpandAll()

void WX_DATAVIEWCTRL::ExpandAll ( )

Definition at line 152 of file wx_dataviewctrl.cpp.

References recursiveDescent().

◆ GetNextItem()

wxDataViewItem WX_DATAVIEWCTRL::GetNextItem ( wxDataViewItem const & aItem)

Get the next item in list order.

Parameters
aItema valid item in the control's model.
Returns
the item after aItem, or an invalid item if aItem is at the bottom.

Definition at line 44 of file wx_dataviewctrl.cpp.

References GetNextSibling().

◆ GetNextSibling()

wxDataViewItem WX_DATAVIEWCTRL::GetNextSibling ( wxDataViewItem const & aItem)

Get the next sibling of an item.

Parameters
aItema valid item in the control's model.
Returns
the sibling after aItem, or an invalid item if aItem has no siblings after it.

Definition at line 110 of file wx_dataviewctrl.cpp.

Referenced by GetNextItem().

◆ GetPrevItem()

wxDataViewItem WX_DATAVIEWCTRL::GetPrevItem ( wxDataViewItem const & aItem)

Get the previous item in list order.

Parameters
aItema valid item in the control's model.
Returns
the item before aItem, or an invalid item if aItem is at the top.

Definition at line 23 of file wx_dataviewctrl.cpp.

References GetPrevSibling().

◆ GetPrevSibling()

wxDataViewItem WX_DATAVIEWCTRL::GetPrevSibling ( wxDataViewItem const & aItem)

Get the previous sibling of an item.

Parameters
aItema valid item in the control's model.
Returns
the sibling before aItem, or an invalid item if aItem has no siblings before it.

Definition at line 87 of file wx_dataviewctrl.cpp.

Referenced by GetPrevItem().

Member Data Documentation

◆ m_ensureVisibleCanceller

wxDataViewModelNotifier* WX_DATAVIEWCTRL::m_ensureVisibleCanceller = nullptr
private

Definition at line 149 of file wx_dataviewctrl.h.

Referenced by AssociateModel(), and ~WX_DATAVIEWCTRL().


The documentation for this class was generated from the following files: