// wxColourDatabase
// ============================================================================
-WX_DECLARE_STRING_HASH_MAP( wxColour *, wxStringToColourHashMap );
-
// ----------------------------------------------------------------------------
// wxColourDatabase ctor/dtor
// ----------------------------------------------------------------------------
{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;
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 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);
}
// ============================================================================
#endif
*/
#if defined(__WXMAC__)
+ // retrieve size of system font for all stock fonts
int sizeFont = 12;
Str255 fontName ;
GetThemeFont(kThemeSystemFont , GetApplicationScript() , fontName , &fontSize , &fontStyle ) ;
sizeFont = fontSize ;
+#if __WXMAC_CLASSIC__
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(__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 ) );
+#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);