Fixed old font-related code that caused problems on wxMAC, also replaced all accesses to m_font with GetFont()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58844 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Jaakko Salli
2009-02-12 16:55:19 +00:00
parent d11c9d86b6
commit 2197ec8012
4 changed files with 10 additions and 37 deletions

View File

@@ -668,7 +668,7 @@ void wxPropertyGrid::OnComboItemPaint( const wxPGComboBox* pCb,
if ( rect.width < 0 ) if ( rect.width < 0 )
{ {
wxCoord x, y; wxCoord x, y;
GetTextExtent(text, &x, &y, 0, 0, &m_font); pCb->GetTextExtent(text, &x, &y, 0, 0);
rect.width = cis.x + wxCC_CUSTOM_IMAGE_MARGIN1 + wxCC_CUSTOM_IMAGE_MARGIN2 + 9 + x; rect.width = cis.x + wxCC_CUSTOM_IMAGE_MARGIN1 + wxCC_CUSTOM_IMAGE_MARGIN2 + 9 + x;
} }
@@ -1333,7 +1333,7 @@ void wxSimpleCheckBox::OnPaint( wxPaintEvent& WXUNUSED(event) )
int state = m_state; int state = m_state;
if ( !(state & wxSCB_STATE_UNSPECIFIED) && if ( !(state & wxSCB_STATE_UNSPECIFIED) &&
m_font.GetWeight() == wxBOLD ) GetFont().GetWeight() == wxBOLD )
state |= wxSCB_STATE_BOLD; state |= wxSCB_STATE_BOLD;
DrawSimpleCheckBox(dc,rect,m_boxHeight,state,txcol); DrawSimpleCheckBox(dc,rect,m_boxHeight,state,txcol);

View File

@@ -1479,7 +1479,7 @@ void wxPropertyGridManager::SetSplitterLeft( bool subProps, bool allPages )
else else
{ {
wxClientDC dc(this); wxClientDC dc(this);
dc.SetFont(m_pPropGrid->m_font); dc.SetFont(m_pPropGrid->GetFont());
int highest = 0; int highest = 0;
unsigned int i; unsigned int i;

View File

@@ -573,16 +573,7 @@ void wxPropertyGrid::Init2()
// adjust bitmap icon y position so they are centered // adjust bitmap icon y position so they are centered
m_vspacing = wxPG_DEFAULT_VSPACING; m_vspacing = wxPG_DEFAULT_VSPACING;
if ( !m_font.Ok() )
{
wxFont useFont = wxScrolledWindow::GetFont();
wxScrolledWindow::SetOwnFont( useFont );
}
else
{
// This should be otherwise called by SetOwnFont
CalculateFontAndBitmapStuff( wxPG_DEFAULT_VSPACING ); CalculateFontAndBitmapStuff( wxPG_DEFAULT_VSPACING );
}
// Allocate cell datas indirectly by calling setter // Allocate cell datas indirectly by calling setter
m_propertyDefaultCell.SetBgCol(*wxBLACK); m_propertyDefaultCell.SetBgCol(*wxBLACK);
@@ -1045,32 +1036,14 @@ bool wxPropertyGrid::SetFont( const wxFont& font )
// Must disable active editor. // Must disable active editor.
ClearSelection(false); ClearSelection(false);
// TODO: Following code is disabled with wxMac because
// it is reported to fail. I (JMS) cannot debug it
// personally right now.
// CS: should be fixed now, leaving old code in just in case, TODO: REMOVE
#if 1 // !defined(__WXMAC__)
bool res = wxScrolledWindow::SetFont( font ); bool res = wxScrolledWindow::SetFont( font );
if ( res ) if ( res )
{ {
CalculateFontAndBitmapStuff( m_vspacing ); CalculateFontAndBitmapStuff( m_vspacing );
if ( m_pState )
m_pState->CalculateFontAndBitmapStuff(m_vspacing);
Refresh(); Refresh();
} }
return res; return res;
#else
// ** wxMAC Only **
// TODO: Remove after SetFont crash fixed.
if ( m_iFlags & wxPG_FL_INITIALIZED )
{
wxLogDebug(wxT("WARNING: propGrid.cpp: wxPropertyGrid::SetFont has been disabled on wxMac since there has been crash reported in it. If you are willing to debug the cause, replace line '#if !defined(__WXMAC__)' with line '#if 1' in wxPropertyGrid::SetFont."));
}
return false;
#endif
} }
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
@@ -1670,7 +1643,7 @@ int wxPropertyGrid::DoDrawItems( wxDC& dc,
int x = m_marginWidth - xRelMod; int x = m_marginWidth - xRelMod;
const wxFont& normalfont = m_font; wxFont normalFont = GetFont();
bool reallyFocused = (m_iFlags & wxPG_FL_FOCUSED) != 0; bool reallyFocused = (m_iFlags & wxPG_FL_FOCUSED) != 0;
@@ -1707,7 +1680,7 @@ int wxPropertyGrid::DoDrawItems( wxDC& dc,
// TODO: Only render columns that are within clipping region. // TODO: Only render columns that are within clipping region.
dc.SetFont(normalfont); dc.SetFont(normalFont);
wxPropertyGridConstIterator it( state, wxPG_ITERATE_VISIBLE, firstItem ); wxPropertyGridConstIterator it( state, wxPG_ITERATE_VISIBLE, firstItem );
int endScanBottomY = lastItemBottomY + lh; int endScanBottomY = lastItemBottomY + lh;
@@ -1983,7 +1956,7 @@ int wxPropertyGrid::DoDrawItems( wxDC& dc,
} }
if ( fontChanged ) if ( fontChanged )
dc.SetFont(normalfont); dc.SetFont(normalFont);
y += rowHeight; y += rowHeight;
} }
@@ -4294,7 +4267,7 @@ bool wxPropertyGrid::HandleMouseMove( int x, unsigned int y, wxMouseEvent &event
if ( space ) if ( space )
{ {
int tw, th; int tw, th;
GetTextExtent( tipString, &tw, &th, 0, 0, &m_font ); GetTextExtent( tipString, &tw, &th, 0, 0 );
if ( tw > space ) if ( tw > space )
{ {
SetToolTip( tipString ); SetToolTip( tipString );

View File

@@ -863,7 +863,7 @@ void wxPropertyGridPageState::SetSplitterLeft( bool subProps )
{ {
wxPropertyGrid* pg = GetGrid(); wxPropertyGrid* pg = GetGrid();
wxClientDC dc(pg); wxClientDC dc(pg);
dc.SetFont(pg->m_font); dc.SetFont(pg->GetFont());
int maxW = GetColumnFitWidth(dc, m_properties, 0, subProps); int maxW = GetColumnFitWidth(dc, m_properties, 0, subProps);
@@ -880,7 +880,7 @@ wxSize wxPropertyGridPageState::DoFitColumns( bool WXUNUSED(allowGridResize) )
{ {
wxPropertyGrid* pg = GetGrid(); wxPropertyGrid* pg = GetGrid();
wxClientDC dc(pg); wxClientDC dc(pg);
dc.SetFont(pg->m_font); dc.SetFont(pg->GetFont());
int marginWidth = pg->m_marginWidth; int marginWidth = pg->m_marginWidth;
int accWid = marginWidth; int accWid = marginWidth;