]> git.saurik.com Git - wxWidgets.git/commitdiff
Layout fixes due to measuring with the wrong font. Also added
authorRobin Dunn <robin@alldunn.com>
Wed, 30 Jun 2004 21:49:17 +0000 (21:49 +0000)
committerRobin Dunn <robin@alldunn.com>
Wed, 30 Jun 2004 21:49:17 +0000 (21:49 +0000)
GetDefaultAttributes and switched everything to use GetXXX instead of
m_XXX.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28111 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/generic/calctrl.h
src/generic/calctrl.cpp

index c6d66e237274d95c7f0bf56b473c4cb3d47a2e17..cb10d1019b5a0ea07e6e149f46a046572ecbec69 100644 (file)
@@ -162,6 +162,12 @@ public:
     virtual bool Enable(bool enable = true);
     virtual bool Show(bool show = true);
 
+    virtual wxVisualAttributes GetDefaultAttributes() const
+        { return GetClassDefaultAttributes(GetWindowVariant()); }
+
+    static wxVisualAttributes
+    GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
+
 private:
     // common part of all ctors
     void Init();
index 1f6cacf0d51a42bf2b6e5da1b09698c32e6ee3a9..97481d564c6cd2f7cbf54139a7e56410a7108e80 100644 (file)
@@ -33,6 +33,7 @@
     #include "wx/settings.h"
     #include "wx/brush.h"
     #include "wx/combobox.h"
+    #include "wx/listbox"
     #include "wx/stattext.h"
     #include "wx/textctrl.h"
 #endif //WX_PRECOMP
@@ -306,29 +307,12 @@ bool wxCalendarCtrl::Create(wxWindow *parent,
 
     ShowCurrentControls();
 
-    wxSize sizeReal;
-    if ( size.x == wxDefaultSize.x || size.y == wxDefaultSize.y )
-    {
-        sizeReal = DoGetBestSize();
-        if ( size.x != wxDefaultSize.x )
-            sizeReal.x = size.x;
-        if ( size.y != wxDefaultSize.y )
-            sizeReal.y = size.y;
-    }
-    else
-    {
-        sizeReal = size;
-    }
-
     // we need to set the position as well because the main control position
     // is not the same as the one specified in pos if we have the controls
     // above it
-    SetSize(pos.x, pos.y, sizeReal.x, sizeReal.y);
-
-    SetForegroundColour(*wxBLACK);
-    SetBackgroundColour(*wxWHITE);
-    SetFont(*wxSWISS_FONT);
-
+    SetBestSize(size);
+    SetPosition(pos);
+        
     SetHolidayAttrs();
 
     return true;
@@ -805,7 +789,9 @@ wxSize wxCalendarCtrl::DoGetBestSize() const
         width += 4;
     }
 
-    return wxSize(width, height);
+    wxSize best(width, height);
+    CacheBestSize(best);
+    return best;   
 }
 
 void wxCalendarCtrl::DoSetSize(int x, int y,
@@ -904,12 +890,9 @@ void wxCalendarCtrl::DoGetSize(int *width, int *height) const
 
 void wxCalendarCtrl::RecalcGeometry()
 {
-    if ( m_widthCol != 0 )
-        return;
-
     wxClientDC dc(this);
 
-    dc.SetFont(m_font);
+    dc.SetFont(GetFont());
 
     // determine the column width (we assume that the weekday names are always
     // wider (in any language) than the numbers)
@@ -940,7 +923,7 @@ void wxCalendarCtrl::OnPaint(wxPaintEvent& WXUNUSED(event))
 {
     wxPaintDC dc(this);
 
-    dc.SetFont(m_font);
+    dc.SetFont(GetFont());
 
     RecalcGeometry();
 
@@ -1158,7 +1141,7 @@ void wxCalendarCtrl::OnPaint(wxPaintEvent& WXUNUSED(event))
                     }
                     else
                     {
-                        colBorder = m_foregroundColour;
+                        colBorder = GetForegroundColour();
                     }
 
                     wxPen pen(colBorder, 1, wxSOLID);
@@ -1184,13 +1167,13 @@ void wxCalendarCtrl::OnPaint(wxPaintEvent& WXUNUSED(event))
 
                 if ( changedColours )
                 {
-                    dc.SetTextForeground(m_foregroundColour);
-                    dc.SetTextBackground(m_backgroundColour);
+                    dc.SetTextForeground(GetForegroundColour());
+                    dc.SetTextBackground(GetBackgroundColour());
                 }
 
                 if ( changedFont )
                 {
-                    dc.SetFont(m_font);
+                    dc.SetFont(GetFont());
                 }
             }
             //else: just don't draw it
@@ -1824,6 +1807,16 @@ void wxCalendarCtrl::ResetHolidayAttrs()
     }
 }
 
+
+//static
+wxVisualAttributes
+wxCalendarCtrl::GetClassDefaultAttributes(wxWindowVariant variant)
+{
+    // Use the same color scheme as wxListBox
+    return wxListBox::GetClassDefaultAttributes(variant);
+}
+
+
 // ----------------------------------------------------------------------------
 // wxCalendarEvent
 // ----------------------------------------------------------------------------