]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/fontutil.h
added MSLU reference to wxUSE_UNICODE
[wxWidgets.git] / include / wx / fontutil.h
index 8305e1417a1325dc154a4562e9fa48e1a18f9ae4..2adeb7ed40268ebcb5be3f02e6e72056a0e306be 100644 (file)
@@ -16,7 +16,7 @@
 #ifndef _WX_FONTUTIL_H_
 #define _WX_FONTUTIL_H_
 
 #ifndef _WX_FONTUTIL_H_
 #define _WX_FONTUTIL_H_
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
     #pragma interface "fontutil.h"
 #endif
 
     #pragma interface "fontutil.h"
 #endif
 
@@ -34,6 +34,9 @@
 #if defined(_WX_X_FONTLIKE)
 
 // the symbolic names for the XLFD fields (with examples for their value)
 #if defined(_WX_X_FONTLIKE)
 
 // the symbolic names for the XLFD fields (with examples for their value)
+//
+// NB: we suppose that the font always starts with the empty token (font name
+//     registry field) as we never use nor generate it anyhow
 enum wxXLFDField
 {
     wxXLFD_FOUNDRY,     // adobe
 enum wxXLFDField
 {
     wxXLFD_FOUNDRY,     // adobe
@@ -69,25 +72,42 @@ enum wxXLFDField
 //     further it might make sense to make it a real class with virtual methods
 struct WXDLLEXPORT wxNativeFontInfo
 {
 //     further it might make sense to make it a real class with virtual methods
 struct WXDLLEXPORT wxNativeFontInfo
 {
-#if defined(_WX_X_FONTLIKE)
-    // the fonts array can't be accessed directly as we only parse the
-    // xFontName when needed
+#if wxUSE_PANGO
+    PangoFontDescription *description;
+#elif defined(_WX_X_FONTLIKE)
+    // the members can't be accessed directly as we only parse the
+    // xFontName on demand
 private:
     // the components of the XLFD
     wxString     fontElements[wxXLFD_MAX];
 
 private:
     // the components of the XLFD
     wxString     fontElements[wxXLFD_MAX];
 
-public:
     // the full XLFD
     wxString     xFontName;
 
     // the full XLFD
     wxString     xFontName;
 
+    // true until SetXFontName() is called
+    bool         m_isDefault;
+
+    // return true if we have already initialized fontElements
+    inline bool HasElements() const;
+
+public:
     // init the elements from an XLFD, return TRUE if ok
     bool FromXFontName(const wxString& xFontName);
 
     // init the elements from an XLFD, return TRUE if ok
     bool FromXFontName(const wxString& xFontName);
 
-    // generate an XLFD using the fontElements
+    // return false if we were never initialized with a valid XLFD
+    bool IsDefault() const { return m_isDefault; }
+
+    // return the XLFD (using the fontElements if necessary)
     wxString GetXFontName() const;
 
     // get the given XFLD component
     wxString GetXFontComponent(wxXLFDField field) const;
     wxString GetXFontName() const;
 
     // get the given XFLD component
     wxString GetXFontComponent(wxXLFDField field) const;
+
+    // change the font component
+    void SetXFontComponent(wxXLFDField field, const wxString& value);
+
+    // set the XFLD
+    void SetXFontName(const wxString& xFontName);
 #elif defined(__WXMSW__)
     LOGFONT      lf;
 #elif defined(__WXPM__)
 #elif defined(__WXMSW__)
     LOGFONT      lf;
 #elif defined(__WXPM__)