height += m_spinYear->GetBestSize().y;
- wxCoord w2= m_comboMonth->GetBestSize().x + HORZ_MARGIN + GetCharWidth()*6;
- if (width < w2)
- width=w2;
+ wxCoord w2 = m_comboMonth->GetBestSize().x + HORZ_MARGIN + GetCharWidth()*6;
+ if (width < w2)
+ width = w2;
}
if ( !HasFlag(wxBORDER_NONE) )
dc.SetFont(GetFont());
- // determine the column width (we assume that the weekday names are always
- // wider (in any language) than the numbers)
+ // determine the column width (weekday names are not necessarily wider
+ // than the numbers (in some languages), so let's not assume that they are)
m_widthCol = 0;
+ for ( int day = 10; day <= 31; day++)
+ {
+ wxCoord width;
+ dc.GetTextExtent(wxString::Format(wxT("%d"), day), &width, &m_heightRow);
+ if ( width > m_widthCol )
+ {
+ // 1.5 times the width gives nice margins even if the weekday
+ // names are short
+ m_widthCol = width+width/2;
+ }
+ }
wxDateTime::WeekDay wd;
for ( wd = wxDateTime::Sun; wd < wxDateTime::Inv_WeekDay; wxNextWDay(wd) )
{
if ( ( (tw - fw) == 1 ) && ( td < fd ) )
{
// special case: interval 7 days or less not in same week
- // split in two seperate intervals
+ // split in two separate intervals
wxDateTime tfd = fromdate + wxDateSpan::Days(7-fd);
wxDateTime ftd = tfd + wxDateSpan::Day();
#if DEBUG_PAINT
- wxLogDebug("Highlight: Seperate segments");
+ wxLogDebug("Highlight: Separate segments");
#endif
- // draw seperately
+ // draw separately
HighlightRange(pDC, fromdate, tfd, pPen, pBrush);
HighlightRange(pDC, ftd, todate, pPen, pBrush);
}
}
#endif // wxUSE_CALENDARCTRL
-