font.h 4.6 KB

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