1/////////////////////////////////////////////////////////////////////////////
2// Name:        wx/os2/font.h
3// Purpose:     wxFont class
4// Author:      David Webster
5// Modified by:
6// Created:     10/06/99
7// RCS-ID:      $Id: font.h 42273 2006-10-23 11:58:28Z ABX $
8// Copyright:   (c) David Webster
9// Licence:     wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_FONT_H_
13#define _WX_FONT_H_
14
15#include "wx/gdiobj.h"
16#include "wx/os2/private.h"
17
18WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString;
19
20// ----------------------------------------------------------------------------
21// wxFont
22// ----------------------------------------------------------------------------
23
24class WXDLLEXPORT wxFont : public wxFontBase
25{
26public:
27    // ctors and such
28    wxFont() { }
29
30    wxFont( int             nSize
31           ,int             nFamily
32           ,int             nStyle
33           ,int             nWeight
34           ,bool            bUnderlined = false
35           ,const wxString& rsFace = wxEmptyString
36           ,wxFontEncoding  vEncoding = wxFONTENCODING_DEFAULT
37          )
38    {
39        (void)Create( nSize
40                     ,nFamily
41                     ,nStyle
42                     ,nWeight
43                     ,bUnderlined
44                     ,rsFace
45                     ,vEncoding
46                    );
47    }
48
49    wxFont( const wxNativeFontInfo& rInfo
50           ,WXHFONT                 hFont = 0
51          )
52
53    {
54        (void)Create( rInfo
55                     ,hFont
56                    );
57    }
58
59    wxFont(const wxString& rsFontDesc);
60
61    bool Create( int             nSize
62                ,int             nFamily
63                ,int             nStyle
64                ,int             nWeight
65                ,bool            bUnderlined = false
66                ,const wxString& rsFace = wxEmptyString
67                ,wxFontEncoding  vEncoding = wxFONTENCODING_DEFAULT
68               );
69    bool Create( const wxNativeFontInfo& rInfo
70                ,WXHFONT                 hFont = 0
71               );
72
73    virtual ~wxFont();
74
75    //
76    // Implement base class pure virtuals
77    //
78    virtual int               GetPointSize(void) const;
79    virtual int               GetFamily(void) const;
80    virtual int               GetStyle(void) const;
81    virtual int               GetWeight(void) const;
82    virtual bool              GetUnderlined(void) const;
83    virtual wxString          GetFaceName(void) const;
84    virtual wxFontEncoding    GetEncoding(void) const;
85    virtual const wxNativeFontInfo* GetNativeFontInfo() const;
86
87    virtual void SetPointSize(int nPointSize);
88    virtual void SetFamily(int nFamily);
89    virtual void SetStyle(int nStyle);
90    virtual void SetWeight(int nWeight);
91    virtual bool SetFaceName(const wxString& rsFaceName);
92    virtual void SetUnderlined(bool bUnderlined);
93    virtual void SetEncoding(wxFontEncoding vEncoding);
94
95    //
96    // For internal use only!
97    //
98    void SetPS(HPS hPS);
99    void SetFM( PFONTMETRICS pFM
100               ,int          nNumFonts
101              );
102    //
103    // Implementation only from now on
104    // -------------------------------
105    //
106    virtual bool     IsFree(void) const;
107    virtual bool     RealizeResource(void);
108    virtual WXHANDLE GetResourceHandle(void) const;
109    virtual bool     FreeResource(bool bForce = false);
110
111    WXHFONT GetHFONT(void) const;
112
113protected:
114    virtual void DoSetNativeFontInfo(const wxNativeFontInfo& rInfo);
115
116    void Unshare(void);
117
118private:
119    DECLARE_DYNAMIC_CLASS(wxFont)
120}; // end of wxFont
121
122#endif // _WX_FONT_H_
123