added wxHeaderCtrlSimple::GetBestFittingWidth() for even more automatic column resizing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57187 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -224,7 +224,17 @@ public:
|
|||||||
void RemoveSortIndicator();
|
void RemoveSortIndicator();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
// implement/override base class methods
|
||||||
virtual wxHeaderColumnBase& GetColumn(unsigned int idx);
|
virtual wxHeaderColumnBase& GetColumn(unsigned int idx);
|
||||||
|
virtual bool UpdateColumnWidthToFit(unsigned int idx, int widthTitle);
|
||||||
|
|
||||||
|
// and define another one to be overridden in the derived classes: it
|
||||||
|
// should return the best width for the given column contents or -1 if not
|
||||||
|
// implemented, we use it to implement UpdateColumnWidthToFit()
|
||||||
|
virtual int GetBestFittingWidth(unsigned int WXUNUSED(idx)) const
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// functions implementing our public API
|
// functions implementing our public API
|
||||||
|
@@ -356,6 +356,22 @@ public:
|
|||||||
The column to remove sort indicator for.
|
The column to remove sort indicator for.
|
||||||
*/
|
*/
|
||||||
void RemoveSortIndicator(unsigned int idx);
|
void RemoveSortIndicator(unsigned int idx);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
/**
|
||||||
|
This function can be overridden in the classes deriving from this
|
||||||
|
control instead of overriding UpdateColumnWidthToFit().
|
||||||
|
|
||||||
|
To implement automatic column resizing to fit its contents width when
|
||||||
|
the column divider is double clicked, you need to simply return the
|
||||||
|
fitting width for the given column @a idx from this method, the control
|
||||||
|
will automatically use the biggest value between the one returned from
|
||||||
|
here and the one needed for the display of the column title itself.
|
||||||
|
|
||||||
|
The base class version returns -1 indicating that this function is not
|
||||||
|
implemented.
|
||||||
|
*/
|
||||||
|
virtual int GetBestFittingWidth(unsigned int idx) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -149,6 +149,19 @@ void wxHeaderCtrlSimple::RemoveSortIndicator()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
wxHeaderCtrlSimple::UpdateColumnWidthToFit(unsigned int idx, int widthTitle)
|
||||||
|
{
|
||||||
|
const int widthContents = GetBestFittingWidth(idx);
|
||||||
|
if ( widthContents == -1 )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
m_cols[idx].SetWidth(wxMax(widthContents, widthTitle));
|
||||||
|
UpdateColumn(idx);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// wxHeaderCtrlEvent implementation
|
// wxHeaderCtrlEvent implementation
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
Reference in New Issue
Block a user