font.h 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/osx/font.h
  3. // Purpose: wxFont class
  4. // Author: Julian Smart
  5. // Modified by:
  6. // Created: 01/02/97
  7. // Copyright: (c) Julian Smart
  8. // Licence: wxWindows licence
  9. /////////////////////////////////////////////////////////////////////////////
  10. #ifndef _WX_FONT_H_
  11. #define _WX_FONT_H_
  12. // ----------------------------------------------------------------------------
  13. // wxFont
  14. // ----------------------------------------------------------------------------
  15. // font styles
  16. enum wxOSXSystemFont
  17. {
  18. wxOSX_SYSTEM_FONT_NONE = 0,
  19. wxOSX_SYSTEM_FONT_NORMAL,
  20. wxOSX_SYSTEM_FONT_BOLD,
  21. wxOSX_SYSTEM_FONT_SMALL,
  22. wxOSX_SYSTEM_FONT_SMALL_BOLD,
  23. wxOSX_SYSTEM_FONT_MINI,
  24. wxOSX_SYSTEM_FONT_MINI_BOLD,
  25. wxOSX_SYSTEM_FONT_LABELS,
  26. wxOSX_SYSTEM_FONT_VIEWS
  27. };
  28. class WXDLLIMPEXP_CORE wxFont : public wxFontBase
  29. {
  30. public:
  31. // ctors and such
  32. wxFont() { }
  33. wxFont(const wxFontInfo& info)
  34. {
  35. Create(info.GetPointSize(),
  36. info.GetFamily(),
  37. info.GetStyle(),
  38. info.GetWeight(),
  39. info.IsUnderlined(),
  40. info.GetFaceName(),
  41. info.GetEncoding());
  42. if ( info.IsUsingSizeInPixels() )
  43. SetPixelSize(info.GetPixelSize());
  44. }
  45. wxFont( wxOSXSystemFont systemFont );
  46. #if wxOSX_USE_COCOA
  47. wxFont(WX_NSFont nsfont);
  48. #endif
  49. #if FUTURE_WXWIN_COMPATIBILITY_3_0
  50. wxFont(int size,
  51. int family,
  52. int style,
  53. int weight,
  54. bool underlined = false,
  55. const wxString& face = wxEmptyString,
  56. wxFontEncoding encoding = wxFONTENCODING_DEFAULT)
  57. {
  58. (void)Create(size, (wxFontFamily)family, (wxFontStyle)style, (wxFontWeight)weight, underlined, face, encoding);
  59. }
  60. #endif
  61. wxFont(int size,
  62. wxFontFamily family,
  63. wxFontStyle style,
  64. wxFontWeight weight,
  65. bool underlined = false,
  66. const wxString& face = wxEmptyString,
  67. wxFontEncoding encoding = wxFONTENCODING_DEFAULT)
  68. {
  69. Create(size, family, style, weight, underlined, face, encoding);
  70. }
  71. wxFont(const wxSize& pixelSize,
  72. wxFontFamily family,
  73. wxFontStyle style,
  74. wxFontWeight weight,
  75. bool underlined = false,
  76. const wxString& face = wxEmptyString,
  77. wxFontEncoding encoding = wxFONTENCODING_DEFAULT)
  78. {
  79. Create(10, family, style, weight, underlined, face, encoding);
  80. SetPixelSize(pixelSize);
  81. }
  82. bool Create(int size,
  83. wxFontFamily family,
  84. wxFontStyle style,
  85. wxFontWeight weight,
  86. bool underlined = false,
  87. const wxString& face = wxEmptyString,
  88. wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
  89. wxFont(const wxNativeFontInfo& info)
  90. {
  91. (void)Create(info);
  92. }
  93. wxFont(const wxString& fontDesc);
  94. bool Create(const wxNativeFontInfo& info);
  95. virtual ~wxFont();
  96. // implement base class pure virtuals
  97. virtual int GetPointSize() const;
  98. virtual wxSize GetPixelSize() const;
  99. virtual wxFontStyle GetStyle() const;
  100. virtual wxFontWeight GetWeight() const;
  101. virtual bool GetUnderlined() const;
  102. virtual wxString GetFaceName() const;
  103. virtual wxFontEncoding GetEncoding() const;
  104. virtual const wxNativeFontInfo *GetNativeFontInfo() const;
  105. virtual bool IsFixedWidth() const;
  106. virtual void SetPointSize(int pointSize);
  107. virtual void SetFamily(wxFontFamily family);
  108. virtual void SetStyle(wxFontStyle style);
  109. virtual void SetWeight(wxFontWeight weight);
  110. virtual bool SetFaceName(const wxString& faceName);
  111. virtual void SetUnderlined(bool underlined);
  112. virtual void SetEncoding(wxFontEncoding encoding);
  113. wxDECLARE_COMMON_FONT_METHODS();
  114. // implementation only from now on
  115. // -------------------------------
  116. virtual bool RealizeResource();
  117. // Mac-specific, risks to change, don't use in portable code
  118. #if wxOSX_USE_CARBON && wxOSX_USE_ATSU_TEXT
  119. wxUint16 MacGetThemeFontID() const ;
  120. // 'old' Quickdraw accessors
  121. short MacGetFontNum() const;
  122. wxByte MacGetFontStyle() const;
  123. #endif
  124. #if wxOSX_USE_COCOA_OR_CARBON
  125. CGFontRef OSXGetCGFont() const;
  126. #endif
  127. CTFontRef OSXGetCTFont() const;
  128. #if wxOSX_USE_ATSU_TEXT
  129. // Returns an ATSUStyle not ATSUStyle*
  130. void* MacGetATSUStyle() const ;
  131. void* OSXGetATSUStyle() const { return MacGetATSUStyle() ; }
  132. wxDEPRECATED( wxUint32 MacGetATSUFontID() const );
  133. wxDEPRECATED( wxUint32 MacGetATSUAdditionalQDStyles() const );
  134. #endif
  135. #if wxOSX_USE_COCOA
  136. WX_NSFont OSXGetNSFont() const;
  137. static WX_NSFont OSXCreateNSFont(wxOSXSystemFont font, wxNativeFontInfo* info);
  138. static WX_NSFont OSXCreateNSFont(const wxNativeFontInfo* info);
  139. static void SetNativeInfoFromNSFont(WX_NSFont nsfont, wxNativeFontInfo* info);
  140. #endif
  141. #if wxOSX_USE_IPHONE
  142. WX_UIFont OSXGetUIFont() const;
  143. static WX_UIFont OSXCreateUIFont(wxOSXSystemFont font, wxNativeFontInfo* info);
  144. static WX_UIFont OSXCreateUIFont(const wxNativeFontInfo* info);
  145. #endif
  146. protected:
  147. virtual void DoSetNativeFontInfo(const wxNativeFontInfo& info);
  148. virtual wxFontFamily DoGetFamily() const;
  149. virtual wxGDIRefData *CreateGDIRefData() const;
  150. virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const;
  151. private:
  152. DECLARE_DYNAMIC_CLASS(wxFont)
  153. };
  154. #endif // _WX_FONT_H_