Update column width in wxHeaderCtrlSimple while resizing the column

In EVT_HEADER_RESIZING event handler there is necessary to update actual
column width and redraw the control to show the column with new width.

Closes #18331.
This commit is contained in:
Artur Wieczorek 2019-01-20 13:07:48 +01:00
parent 3000091cd2
commit 9ff9442226
2 changed files with 13 additions and 0 deletions

View File

@ -345,6 +345,8 @@ protected:
return -1;
}
void OnHeaderResizing(wxHeaderCtrlEvent& evt);
private:
// functions implementing our public API
void DoInsert(const wxHeaderColumnSimple& col, unsigned int idx);
@ -371,6 +373,7 @@ private:
wxDECLARE_NO_COPY_CLASS(wxHeaderCtrlSimple);
wxDECLARE_EVENT_TABLE();
};
// ----------------------------------------------------------------------------

View File

@ -386,6 +386,10 @@ bool wxHeaderCtrlBase::ShowCustomizeDialog()
// wxHeaderCtrlSimple implementation
// ============================================================================
wxBEGIN_EVENT_TABLE(wxHeaderCtrlSimple, wxHeaderCtrl)
EVT_HEADER_RESIZING(wxID_ANY, wxHeaderCtrlSimple::OnHeaderResizing)
wxEND_EVENT_TABLE()
void wxHeaderCtrlSimple::Init()
{
m_sortKey = wxNO_COLUMN;
@ -466,6 +470,12 @@ wxHeaderCtrlSimple::UpdateColumnWidthToFit(unsigned int idx, int widthTitle)
return true;
}
void wxHeaderCtrlSimple::OnHeaderResizing(wxHeaderCtrlEvent& evt)
{
m_cols[evt.GetColumn()].SetWidth(evt.GetWidth());
Refresh();
}
// ============================================================================
// wxHeaderCtrlEvent implementation
// ============================================================================