Implement best size calculation for report mode wxListCtrl.

Use the column labels to determine the minimal width required by the control
to show them all in full.

Also declare all image list and column-related wxListCtrl methods in
wxListCtrlBase now as we need some of them in DoGetBestClientSize()
implementation.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70282 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-01-07 15:09:43 +00:00
parent a9bd911fde
commit 94248d2ed1
10 changed files with 163 additions and 98 deletions

View File

@@ -14,8 +14,6 @@
#include "wx/scrolwin.h"
#include "wx/textctrl.h"
class WXDLLIMPEXP_FWD_CORE wxImageList;
#if wxUSE_DRAG_AND_DROP
class WXDLLIMPEXP_FWD_CORE wxDropTarget;
#endif
@@ -66,7 +64,7 @@ public:
const wxString &name = wxListCtrlNameStr);
bool GetColumn( int col, wxListItem& item ) const;
bool SetColumn( int col, wxListItem& item );
bool SetColumn( int col, const wxListItem& item );
int GetColumnWidth( int col ) const;
bool SetColumnWidth( int col, int width);
int GetCountPerPage() const; // not the same in wxGLC as in Windows, I think
@@ -134,9 +132,6 @@ public:
long InsertItem( long index, const wxString& label );
long InsertItem( long index, int imageIndex );
long InsertItem( long index, const wxString& label, int imageIndex );
long InsertColumn( long col, wxListItem& info );
long InsertColumn( long col, const wxString& heading,
int format = wxLIST_FORMAT_LEFT, int width = -1 );
bool ScrollList( int dx, int dy );
bool SortItems( wxListCtrlCompare fn, wxIntPtr data );
@@ -208,6 +203,10 @@ public:
wxListMainWindow *m_mainWin;
protected:
// Implement base class pure virtual methods.
long DoInsertColumn(long col, const wxListItem& info);
virtual bool DoPopupMenu( wxMenu *menu, int x, int y );
// take into account the coordinates difference between the container