]> git.saurik.com Git - wxWidgets.git/blobdiff - src/dfb/fontenum.cpp
don't declare inline function with dllexport declaration, this provokes mingw32 warni...
[wxWidgets.git] / src / dfb / fontenum.cpp
index 4e1f9050cc46dc2021aabad6ff1200b190fb2aa6..fe1e05340e9c6f8a0dde82253b0b815f1a04bf08 100644 (file)
 #endif
 
 #include "wx/fontenum.h"
+#include "wx/private/fontmgr.h"
 
 // ----------------------------------------------------------------------------
 // wxFontEnumerator
 // ----------------------------------------------------------------------------
 
-bool wxFontEnumerator::EnumerateFacenames(wxFontEncoding WXUNUSED(encoding),
-                                          bool WXUNUSED(fixedWidthOnly))
+bool wxFontEnumerator::EnumerateFacenames(wxFontEncoding encoding,
+                                          bool fixedWidthOnly)
 {
-    // FIXME_DFB
-    OnFacename(_T("Default"));
-    return true;
+    // we only support UTF-8 and system (which means "use any"):
+    if ( encoding != wxFONTENCODING_SYSTEM && encoding != wxFONTENCODING_UTF8 )
+        return false;
+
+    bool found = false;
+    const wxFontBundleList& list = wxFontsManager::Get()->GetBundles();
+
+    for ( wxFontBundleList::const_iterator f = list.begin(); f != list.end(); ++f )
+    {
+        if ( fixedWidthOnly && !(*f)->IsFixed() )
+            continue;
+
+        found = true;
+        if ( !OnFacename((*f)->GetName()) )
+            break; // OnFacename() requests us to stop enumeration
+    }
+
+    return found;
 }
 
-bool wxFontEnumerator::EnumerateEncodings(const wxString& WXUNUSED(family))
+bool wxFontEnumerator::EnumerateEncodings(const wxString& facename)
 {
-    // FIXME_DFB
-    return false;
+    return EnumerateEncodingsUTF8(facename);
 }