]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/gdicmn.cpp
Fix for the undocumented holes in spiner sizes.
[wxWidgets.git] / src / common / gdicmn.cpp
index 01273b854b44b5bed8dd3edd36cf9e069cecaf15..5af91e126a5f65d44cbaa0cd534c35ce7a8039f0 100644 (file)
@@ -217,8 +217,6 @@ bool wxRect::Intersects(const wxRect& rect) const
 // wxColourDatabase
 // ============================================================================
 
 // wxColourDatabase
 // ============================================================================
 
-WX_DECLARE_STRING_HASH_MAP( wxColour *, wxStringToColourHashMap );
-
 // ----------------------------------------------------------------------------
 // wxColourDatabase ctor/dtor
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // wxColourDatabase ctor/dtor
 // ----------------------------------------------------------------------------
@@ -331,7 +329,7 @@ void wxColourDatabase::Initialize()
         {wxT("WHEAT"), 216, 216, 191},
         {wxT("WHITE"), 255, 255, 255},
         {wxT("YELLOW"), 255, 255, 0},
         {wxT("WHEAT"), 216, 216, 191},
         {wxT("WHITE"), 255, 255, 255},
         {wxT("YELLOW"), 255, 255, 0},
-        {wxT("YELLOW GREEN"), 153, 204, 50},
+        {wxT("YELLOW GREEN"), 153, 204, 50}
     };
 
     size_t n;
     };
 
     size_t n;
@@ -473,18 +471,31 @@ wxString wxColourDatabase::FindName(const wxColour& colour) const
 
 wxColour *wxColourDatabase::FindColour(const wxString& name)
 {
 
 wxColour *wxColourDatabase::FindColour(const wxString& name)
 {
-    wxColour col = Find(name);
-    if ( !col.Ok() )
+    // This function is deprecated, use Find() instead.
+    // Formerly this function sometimes would return a deletable pointer and
+    // sometimes a non-deletable one (when returning a colour from the database).
+    // Trying to delete the latter anyway results in problems, so probably
+    // nobody ever freed the pointers. Currently it always returns a new
+    // instance, which means there will be memory leaks.
+    wxLogDebug(wxT("wxColourDataBase::FindColour():")
+        wxT(" Please use wxColourDataBase::Find() instead"));
+
+    // using a static variable here is not the most elegant solution but unless
+    // we want to make wxStringToColourHashMap public (i.e. move it to the
+    // header) so that we could have a member function returning
+    // wxStringToColourHashMap::iterator, there is really no good way to do it
+    // otherwise
+    //
+    // and knowing that this function is going to disappear in the next release
+    // anyhow I don't want to waste time on this
+
+    static wxColour s_col;
+
+    s_col = Find(name);
+    if ( !s_col.Ok() )
         return NULL;
 
         return NULL;
 
-    return new wxColour(col);
-}
-
-void wxColourDatabase::AddColour(const wxString& name, wxColour *colour)
-{
-    wxCHECK_RET( colour, _T("NULL pointer in wxColourDatabase::AddColour") );
-
-    AddColour(name, wxColour(*colour));
+    return new wxColour(s_col);
 }
 
 // ============================================================================
 }
 
 // ============================================================================
@@ -518,6 +529,7 @@ void wxInitializeStockObjects ()
 #endif
 */
 #if defined(__WXMAC__)
 #endif
 */
 #if defined(__WXMAC__)
+    // retrieve size of system font for all stock fonts
     int sizeFont = 12;
 
     Str255 fontName ;
     int sizeFont = 12;
 
     Str255 fontName ;
@@ -526,7 +538,12 @@ void wxInitializeStockObjects ()
 
        GetThemeFont(kThemeSystemFont , GetApplicationScript() , fontName , &fontSize , &fontStyle ) ;
        sizeFont = fontSize ;
 
        GetThemeFont(kThemeSystemFont , GetApplicationScript() , fontName , &fontSize , &fontStyle ) ;
        sizeFont = fontSize ;
+#if __WXMAC_CLASSIC__
     wxNORMAL_FONT = new wxFont (fontSize, wxMODERN, wxNORMAL, wxNORMAL , false , wxMacMakeStringFromPascal(fontName) );
     wxNORMAL_FONT = new wxFont (fontSize, wxMODERN, wxNORMAL, wxNORMAL , false , wxMacMakeStringFromPascal(fontName) );
+#else
+    wxNORMAL_FONT = new wxFont () ;
+    wxNORMAL_FONT->MacCreateThemeFont( kThemeSystemFont );
+#endif
 #elif defined(__WXPM__)
   static const int sizeFont = 12;
 #else
 #elif defined(__WXPM__)
   static const int sizeFont = 12;
 #else
@@ -546,8 +563,13 @@ void wxInitializeStockObjects ()
 #elif defined(__WXMAC__)
     wxSWISS_FONT = new wxFont (sizeFont, wxSWISS, wxNORMAL, wxNORMAL); /* Helv */
     wxITALIC_FONT = new wxFont (sizeFont, wxROMAN, wxITALIC, wxNORMAL);
 #elif defined(__WXMAC__)
     wxSWISS_FONT = new wxFont (sizeFont, wxSWISS, wxNORMAL, wxNORMAL); /* Helv */
     wxITALIC_FONT = new wxFont (sizeFont, wxROMAN, wxITALIC, wxNORMAL);
+#if __WXMAC_CLASSIC__
        GetThemeFont(kThemeSmallSystemFont , GetApplicationScript() , fontName , &fontSize , &fontStyle ) ;
     wxSMALL_FONT = new wxFont (fontSize, wxSWISS, wxNORMAL, wxNORMAL , false , wxMacMakeStringFromPascal( fontName ) );
        GetThemeFont(kThemeSmallSystemFont , GetApplicationScript() , fontName , &fontSize , &fontStyle ) ;
     wxSMALL_FONT = new wxFont (fontSize, wxSWISS, wxNORMAL, wxNORMAL , false , wxMacMakeStringFromPascal( fontName ) );
+#else
+    wxSMALL_FONT = new wxFont () ;
+    wxSMALL_FONT->MacCreateThemeFont( kThemeSmallSystemFont );
+#endif
 #else
   wxSMALL_FONT = new wxFont (sizeFont - 2, wxSWISS, wxNORMAL, wxNORMAL);
   wxITALIC_FONT = new wxFont (sizeFont, wxROMAN, wxITALIC, wxNORMAL);
 #else
   wxSMALL_FONT = new wxFont (sizeFont - 2, wxSWISS, wxNORMAL, wxNORMAL);
   wxITALIC_FONT = new wxFont (sizeFont, wxROMAN, wxITALIC, wxNORMAL);