]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/os2/font.h
Better fix
[wxWidgets.git] / include / wx / os2 / font.h
index fc8c8e55560eb7f1915173d7d7be4773759933fe..02da7104829dd43117d93d47b93fbadaed463870 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        font.h
+// Name:        wx/os2/font.h
 // Purpose:     wxFont class
 // Author:      David Webster
 // Modified by:
@@ -14,7 +14,6 @@
 
 #include "wx/gdiobj.h"
 #include "wx/os2/private.h"
-#include "wx/fontutil.h"
 
 WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString;
 
@@ -26,98 +25,99 @@ class WXDLLEXPORT wxFont : public wxFontBase
 {
 public:
     // ctors and such
-    wxFont() { Init(); }
-    wxFont(const wxFont& rFont) { Init(); Ref(rFont); }
+    wxFont() { }
 
     wxFont( int             nSize
            ,int             nFamily
            ,int             nStyle
            ,int             nWeight
-           ,bool            bUnderlined = FALSE
+           ,bool            bUnderlined = false
            ,const wxString& rsFace = wxEmptyString
            ,wxFontEncoding  vEncoding = wxFONTENCODING_DEFAULT
           )
     {
-        Init();
-
-        (void)Create(nSize, nFamily, nStyle, nWeight, bUnderlined, rsFace, vEncoding);
+        (void)Create( nSize
+                     ,nFamily
+                     ,nStyle
+                     ,nWeight
+                     ,bUnderlined
+                     ,rsFace
+                     ,vEncoding
+                    );
     }
 
-    wxFont(const wxNativeFontInfo& rInfo)
+    wxFont( const wxNativeFontInfo& rInfo
+           ,WXHFONT                 hFont = 0
+          )
+
     {
-        Init();
-
-        (void)Create( rInfo.pointSize
-                     ,rInfo.family
-                     ,rInfo.style
-                     ,rInfo.weight
-                     ,rInfo.underlined
-                     ,rInfo.faceName
-                     ,rInfo.encoding
+        (void)Create( rInfo
+                     ,hFont
                     );
     }
 
+    wxFont(const wxString& rsFontDesc);
+
     bool Create( int             nSize
                 ,int             nFamily
                 ,int             nStyle
                 ,int             nWeight
-                ,bool            bUnderlined = FALSE
+                ,bool            bUnderlined = false
                 ,const wxString& rsFace = wxEmptyString
                 ,wxFontEncoding  vEncoding = wxFONTENCODING_DEFAULT
                );
+    bool Create( const wxNativeFontInfo& rInfo
+                ,WXHFONT                 hFont = 0
+               );
 
     virtual ~wxFont();
 
-    //
-    // Assignment
-    //
-    wxFont& operator=(const wxFont& rFont);
-
     //
     // Implement base class pure virtuals
     //
-    virtual int            GetPointSize(void) const;
-    virtual int            GetFamily(void) const;
-    virtual int            GetStyle(void) const;
-    virtual int            GetWeight(void) const;
-    virtual bool           GetUnderlined(void) const;
-    virtual wxString       GetFaceName(void) const;
-    virtual wxFontEncoding GetEncoding(void) const;
-    virtual HPS            GetPS(void) const;
+    virtual int               GetPointSize(void) const;
+    virtual int               GetFamily(void) const;
+    virtual int               GetStyle(void) const;
+    virtual int               GetWeight(void) const;
+    virtual bool              GetUnderlined(void) const;
+    virtual wxString          GetFaceName(void) const;
+    virtual wxFontEncoding    GetEncoding(void) const;
+    virtual const wxNativeFontInfo* GetNativeFontInfo() const;
 
     virtual void SetPointSize(int nPointSize);
     virtual void SetFamily(int nFamily);
     virtual void SetStyle(int nStyle);
     virtual void SetWeight(int nWeight);
-    virtual void SetFaceName(const wxString& rsFaceName);
+    virtual bool SetFaceName(const wxString& rsFaceName);
     virtual void SetUnderlined(bool bUnderlined);
     virtual void SetEncoding(wxFontEncoding vEncoding);
-    virtual void SetPS(HPS hPS);
-    virtual void SetFM( PFONTMETRICS pFM
-                       ,int          nNumFonts
-                      );
 
+    //
+    // For internal use only!
+    //
+    void SetPS(HPS hPS);
+    void SetFM( PFONTMETRICS pFM
+               ,int          nNumFonts
+              );
     //
     // Implementation only from now on
     // -------------------------------
     //
-    int              GetFontId(void) const;
     virtual bool     IsFree(void) const;
     virtual bool     RealizeResource(void);
-    virtual WXHANDLE GetResourceHandle(void);
-    virtual bool     FreeResource(bool bForce = FALSE);
+    virtual WXHANDLE GetResourceHandle(void) const;
+    virtual bool     FreeResource(bool bForce = false);
 
     WXHFONT GetHFONT(void) const;
+
 protected:
-    //
-    // Common part of all ctors
-    //
-    void Init(void);
-    void Unshare(void);
+    virtual void DoSetNativeFontInfo(const wxNativeFontInfo& rInfo);
 
-private:
-    void OS2SelectMatchingFontByName(void);
+    // implement wxObject virtuals which are used by AllocExclusive()
+    virtual wxGDIRefData *CreateGDIRefData() const;
+    virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const;
 
+private:
     DECLARE_DYNAMIC_CLASS(wxFont)
 }; // end of wxFont