git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23514
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
m_ownsImageListState;
wxListHeaderWindow *m_headerWin;
wxListMainWindow *m_mainWin;
m_ownsImageListState;
wxListHeaderWindow *m_headerWin;
wxListMainWindow *m_mainWin;
+ wxCoord m_headerHeight;
protected:
// return the text for the given column of the given item
protected:
// return the text for the given column of the given item
// create the header window
void CreateHeaderWindow();
// create the header window
void CreateHeaderWindow();
+ // calculate and set height of the header
+ void CalculateAndSetHeaderHeight();
+
// reposition the header and the main window in the report view depending
// on whether it should be shown or not
void ResizeReportView(bool showHeader);
// reposition the header and the main window in the report view depending
// on whether it should be shown or not
void ResizeReportView(bool showHeader);
// constants
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
-// the height of the header window (FIXME: should depend on its font!)
-static const int HEADER_HEIGHT = 23;
+// // the height of the header window (FIXME: should depend on its font!)
+// static const int HEADER_HEIGHT = 23;
// the scrollbar units
static const int SCROLL_UNIT_X = 15;
// the scrollbar units
static const int SCROLL_UNIT_X = 15;
m_mainWin = (wxListMainWindow*) NULL;
m_headerWin = (wxListHeaderWindow*) NULL;
m_mainWin = (wxListMainWindow*) NULL;
m_headerWin = (wxListHeaderWindow*) NULL;
}
wxGenericListCtrl::~wxGenericListCtrl()
}
wxGenericListCtrl::~wxGenericListCtrl()
delete m_imageListState;
}
delete m_imageListState;
}
+void wxGenericListCtrl::CalculateAndSetHeaderHeight()
+{
+ // we use the letter "H" for calculating the needed space, basing on the current font
+ int w, h;
+ m_headerWin->GetTextExtent(wxT("H"), &w, &h);
+ m_headerHeight = h + 2 * HEADER_OFFSET_Y + EXTRA_HEIGHT;
+ m_headerWin->SetSize(m_headerWin->GetSize().x, m_headerHeight);
+}
+
void wxGenericListCtrl::CreateHeaderWindow()
{
m_headerWin = new wxListHeaderWindow
(
this, -1, m_mainWin,
wxPoint(0, 0),
void wxGenericListCtrl::CreateHeaderWindow()
{
m_headerWin = new wxListHeaderWindow
(
this, -1, m_mainWin,
wxPoint(0, 0),
- wxSize(GetClientSize().x, HEADER_HEIGHT),
+ wxSize(GetClientSize().x, m_headerHeight),
+ CalculateAndSetHeaderHeight();
}
bool wxGenericListCtrl::Create(wxWindow *parent,
}
bool wxGenericListCtrl::Create(wxWindow *parent,
{
m_mainWin->GetItemRect( item, rect );
if ( m_mainWin->HasHeader() )
{
m_mainWin->GetItemRect( item, rect );
if ( m_mainWin->HasHeader() )
- rect.y += HEADER_HEIGHT + 1;
+ rect.y += m_headerHeight + 1;
- m_headerWin->SetSize( 0, 0, cw, HEADER_HEIGHT );
- m_mainWin->SetSize( 0, HEADER_HEIGHT + 1, cw, ch - HEADER_HEIGHT - 1 );
+ m_headerWin->SetSize( 0, 0, cw, m_headerHeight );
+ m_mainWin->SetSize( 0, m_headerHeight + 1, cw, ch - m_headerHeight - 1 );
}
else // no header window
{
}
else // no header window
{
if (m_headerWin)
{
m_headerWin->SetFont( font );
if (m_headerWin)
{
m_headerWin->SetFont( font );
+ CalculateAndSetHeaderHeight();