]> git.saurik.com Git - wxWidgets.git/commitdiff
using statically allocated font objects for speedup
authorStefan Csomor <csomor@advancedconcepts.ch>
Thu, 8 Apr 2010 18:47:41 +0000 (18:47 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Thu, 8 Apr 2010 18:47:41 +0000 (18:47 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63917 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/osx/font.h
src/generic/listctrl.cpp
src/generic/treectlg.cpp
src/osx/carbon/font.cpp
src/osx/carbon/gdiobj.cpp
src/osx/carbon/listctrl_mac.cpp
src/osx/dataview_osx.cpp
src/osx/listbox_osx.cpp
src/osx/window_osx.cpp

index bcd86e775a896fc4e2c68a0d44c25eff0a67754e..4d6f07fbc113601803157ed8f78a6c25af1bb674 100644 (file)
@@ -27,7 +27,7 @@ enum wxOSXSystemFont
     wxOSX_SYSTEM_FONT_MINI,
     wxOSX_SYSTEM_FONT_MINI_BOLD,
     wxOSX_SYSTEM_FONT_LABELS,
-    wxOSX_SYSTEM_FONT_VIEWS
+    wxOSX_SYSTEM_FONT_VIEWS,
 };
 
 
@@ -36,6 +36,8 @@ class WXDLLIMPEXP_CORE wxFont : public wxFontBase
 public:
     // ctors and such
     wxFont() { }
+    
+    wxFont( wxOSXSystemFont systemFont );
 
 #if wxOSX_USE_COCOA
     wxFont(WX_NSFont nsfont);
@@ -94,8 +96,6 @@ public:
 
     bool Create(const wxNativeFontInfo& info);
 
-    bool CreateSystemFont(wxOSXSystemFont font);
-
     virtual ~wxFont();
 
     // implement base class pure virtuals
index 3804bf0e6f68e61833e06fa31fca7b740d7bf1b8..ae17c83a8a0553776824915c298389eed2fbc55f 100644 (file)
@@ -4307,8 +4307,7 @@ void wxGenericListCtrl::CreateOrDestroyHeaderWindowAsNeeded()
                       );
 
 #if defined( __WXMAC__ )
-        wxFont font;
-        font.CreateSystemFont( wxOSX_SYSTEM_FONT_SMALL );
+        static wxFont font( wxOSX_SYSTEM_FONT_SMALL );
         m_headerWin->SetFont( font );
 #endif
 
index da93936fdf2a0d7375a423ed23bbe0e4f8f71080..a393dc0fbb3d0ae6375307713bcfb4fa6cb25f0e 100644 (file)
@@ -973,7 +973,7 @@ void wxGenericTreeCtrl::Init()
     m_lastOnSame = false;
 
 #if defined( __WXMAC__ )
-    m_normalFont.CreateSystemFont(wxOSX_SYSTEM_FONT_VIEWS);
+    m_normalFont = wxFont(wxOSX_SYSTEM_FONT_VIEWS);
 #else
     m_normalFont = wxSystemSettings::GetFont( wxSYS_DEFAULT_GUI_FONT );
 #endif
index f8c6f5f347c8fb3a66d49942e87dbe2a08b01ec0..725afb66994e4533d63a59e04b70552359a30083 100644 (file)
@@ -499,6 +499,11 @@ bool wxFont::Create(const wxNativeFontInfo& info)
     return true;
 }
 
+wxFont::wxFont(wxOSXSystemFont font)
+{
+    m_refData = new wxFontRefData( font, 0 );
+}
+
 wxFont::wxFont(const wxString& fontdesc)
 {
     wxNativeFontInfo info;
@@ -557,15 +562,6 @@ bool wxFont::Create(int pointSize,
     return true;
 }
 
-bool wxFont::CreateSystemFont(wxOSXSystemFont font)
-{
-    UnRef();
-
-    m_refData = new wxFontRefData( font, 0 );
-
-    return true;
-}
-
 wxFont::~wxFont()
 {
 }
index 31ec9c8017614e5d9aaefb58be149e4230312dc8..4a7a3db35278664085b0c3b0e1a623cf5e28a969 100644 (file)
@@ -59,12 +59,10 @@ const wxFont* wxStockGDIMac::GetFont(Item item)
         switch (item)
         {
         case FONT_NORMAL:
-            font = new wxFont;
-            font->CreateSystemFont(wxOSX_SYSTEM_FONT_NORMAL);
+            font = new wxFont(wxOSX_SYSTEM_FONT_NORMAL);
             break;
         case FONT_SMALL:
-            font = new wxFont;
-            font->CreateSystemFont(wxOSX_SYSTEM_FONT_SMALL);
+            font = new wxFont(wxOSX_SYSTEM_FONT_SMALL);
             break;
         default:
             font = const_cast<wxFont*>(super::GetFont(item));
index 2734d0ac643ea259cd6ee59538d8d6f65cf01b64..e66650820e20d60b9b9a7fffe2bb2b19fe16d702 100644 (file)
@@ -797,7 +797,8 @@ wxListCtrl::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
 
     attr.colFg = wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOWTEXT );
     attr.colBg = wxSystemSettings::GetColour( wxSYS_COLOUR_LISTBOX );
-    attr.font.CreateSystemFont(wxOSX_SYSTEM_FONT_VIEWS);
+    static wxFont font = wxFont(wxOSX_SYSTEM_FONT_VIEWS);
+    attr.font = font;
 
     return attr;
 }
index bde6716c21edb5972259f15f9d27f8e99e486a48..91c22b7e4376f33f0932dfca2446f6550e1e2524 100644 (file)
@@ -614,7 +614,8 @@ wxDataViewCtrl::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
 
     attr.colFg = wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOWTEXT );
     attr.colBg = wxSystemSettings::GetColour( wxSYS_COLOUR_LISTBOX );
-    attr.font.CreateSystemFont(wxOSX_SYSTEM_FONT_VIEWS);
+    static wxFont font = wxFont(wxOSX_SYSTEM_FONT_VIEWS);
+    attr.font = font;
 
     return attr;
 }
index 43006895abb4975cefab3e92a8e726ffc78948fd..1394c130195283b7b6a63d90112278be305f6b9c 100644 (file)
@@ -275,7 +275,8 @@ wxListBox::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
 
     attr.colFg = wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOWTEXT );
     attr.colBg = wxSystemSettings::GetColour( wxSYS_COLOUR_LISTBOX );
-    attr.font.CreateSystemFont(wxOSX_SYSTEM_FONT_VIEWS);
+    static wxFont font = wxFont(wxOSX_SYSTEM_FONT_VIEWS);
+    attr.font = font;
 
     return attr;
 }
index 864bb128f93448936bcbff1847b120ef5597310e..7fe1edcc410552e7991e532e9b74b1acf1ffbee5 100644 (file)
@@ -338,36 +338,33 @@ void wxWindowMac::DoSetWindowVariant( wxWindowVariant variant )
     m_peer->SetData<ControlSize>(kControlEntireControl, kControlSizeTag, &size ) ;
 #endif
 
-    wxFont font ;
-
-    wxOSXSystemFont systemFont = wxOSX_SYSTEM_FONT_NORMAL ;
-
+    
     switch ( variant )
     {
         case wxWINDOW_VARIANT_NORMAL :
-            systemFont = wxOSX_SYSTEM_FONT_NORMAL ;
+            static wxFont sysNormal(wxOSX_SYSTEM_FONT_NORMAL);
+            SetFont(sysNormal) ;
             break ;
 
         case wxWINDOW_VARIANT_SMALL :
-            systemFont = wxOSX_SYSTEM_FONT_SMALL ;
+            static wxFont sysSmall(wxOSX_SYSTEM_FONT_SMALL);
+            SetFont(sysSmall) ;
             break ;
 
         case wxWINDOW_VARIANT_MINI :
-            systemFont = wxOSX_SYSTEM_FONT_MINI ;
+            static wxFont sysMini(wxOSX_SYSTEM_FONT_MINI);
+            SetFont(sysMini) ;
             break ;
 
         case wxWINDOW_VARIANT_LARGE :
-            systemFont = wxOSX_SYSTEM_FONT_NORMAL ;
+            static wxFont sysLarge(wxOSX_SYSTEM_FONT_NORMAL);
+            SetFont(sysLarge) ;
             break ;
 
         default:
             wxFAIL_MSG(wxT("unexpected window variant"));
             break ;
     }
-
-    font.CreateSystemFont( systemFont ) ;
-
-    SetFont( font ) ;
 }
 
 void wxWindowMac::MacUpdateControlFont()