Made SetFont for wxCheckListBox more intelligent.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2592 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
1999-05-28 17:27:55 +00:00
parent 861ccde481
commit 0c35333e9e
2 changed files with 16 additions and 8 deletions

View File

@@ -2,7 +2,7 @@
// Name: checklst.h // Name: checklst.h
// Purpose: wxCheckListBox class - a listbox with checkable items // Purpose: wxCheckListBox class - a listbox with checkable items
// Author: Vadim Zeitlin // Author: Vadim Zeitlin
// Modified by: // Modified by:
// Created: 16.11.97 // Created: 16.11.97
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> // Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
@@ -35,7 +35,7 @@ public:
wxCheckListBox(wxWindow *parent, wxWindowID id, wxCheckListBox(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
int nStrings = 0, int nStrings = 0,
const wxString choices[] = NULL, const wxString choices[] = NULL,
long style = 0, long style = 0,
const wxValidator& validator = wxDefaultValidator, const wxValidator& validator = wxDefaultValidator,
@@ -45,6 +45,8 @@ public:
virtual void Delete(int n); virtual void Delete(int n);
virtual void InsertItems(int nItems, const wxString items[], int pos); virtual void InsertItems(int nItems, const wxString items[], int pos);
virtual bool SetFont( const wxFont &font );
// items may be checked // items may be checked
bool IsChecked(size_t uiIndex) const; bool IsChecked(size_t uiIndex) const;
void Check(size_t uiIndex, bool bCheck = TRUE); void Check(size_t uiIndex, bool bCheck = TRUE);

View File

@@ -101,7 +101,6 @@ wxCheckListBoxItem::wxCheckListBoxItem(wxCheckListBox *pParent, size_t nIndex)
// know that there will always be OnMeasure before OnDraw // know that there will always be OnMeasure before OnDraw
// fix appearance // fix appearance
SetFont(wxSystemSettings::GetSystemFont(wxSYS_ANSI_VAR_FONT));
SetMarginWidth(GetDefaultMarginWidth()); SetMarginWidth(GetDefaultMarginWidth());
} }
@@ -231,7 +230,7 @@ void wxCheckListBoxItem::Check(bool check)
#ifdef __WIN32__ #ifdef __WIN32__
RECT rcUpdate; RECT rcUpdate;
if ( ::SendMessage(hwndListbox, LB_GETITEMRECT, if ( ::SendMessage(hwndListbox, LB_GETITEMRECT,
m_nIndex, (LPARAM)&rcUpdate) == LB_ERR ) m_nIndex, (LPARAM)&rcUpdate) == LB_ERR )
{ {
@@ -245,7 +244,7 @@ void wxCheckListBoxItem::Check(bool check)
#endif // Win32/16 #endif // Win32/16
InvalidateRect(hwndListbox, &rcUpdate, FALSE); InvalidateRect(hwndListbox, &rcUpdate, FALSE);
wxCommandEvent event(wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, m_pParent->GetId()); wxCommandEvent event(wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, m_pParent->GetId());
event.SetInt(m_nIndex); event.SetInt(m_nIndex);
event.SetEventObject(m_pParent); event.SetEventObject(m_pParent);
@@ -312,6 +311,16 @@ void wxCheckListBox::InsertItems(int nItems, const wxString items[], int pos)
} }
} }
bool wxCheckListBox::SetFont( const wxFont &font )
{
size_t i;
for (i=0; i < m_aItems.GetCount(); i++)
m_aItems[i]->SetFont(font);
wxListBox::SetFont(font);
return TRUE;
}
// create/retrieve item // create/retrieve item
// -------------------- // --------------------
@@ -319,9 +328,6 @@ void wxCheckListBox::InsertItems(int nItems, const wxString items[], int pos)
wxOwnerDrawn *wxCheckListBox::CreateItem(size_t nIndex) wxOwnerDrawn *wxCheckListBox::CreateItem(size_t nIndex)
{ {
wxCheckListBoxItem *pItem = new wxCheckListBoxItem(this, nIndex); wxCheckListBoxItem *pItem = new wxCheckListBoxItem(this, nIndex);
if ( m_font.Ok() )
pItem->SetFont(m_font);
return pItem; return pItem;
} }