fontdlg.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/osx/fontdlg.h
  3. // Purpose: wxFontDialog class using fonts window services (10.2+).
  4. // Author: Ryan Norton
  5. // Modified by:
  6. // Created: 2004-09-25
  7. // Copyright: (c) Ryan Norton
  8. // Licence: wxWindows licence
  9. /////////////////////////////////////////////////////////////////////////////
  10. #ifndef _WX_FONTDLG_H_
  11. #define _WX_FONTDLG_H_
  12. #include "wx/dialog.h"
  13. /*
  14. * Font dialog
  15. */
  16. /*
  17. * support old notation
  18. */
  19. #ifdef wxMAC_USE_EXPERIMENTAL_FONTDIALOG
  20. #define wxOSX_USE_EXPERIMENTAL_FONTDIALOG wxMAC_USE_EXPERIMENTAL_FONTDIALOG
  21. #endif
  22. #ifndef wxOSX_USE_EXPERIMENTAL_FONTDIALOG
  23. #define wxOSX_USE_EXPERIMENTAL_FONTDIALOG 1
  24. #endif
  25. #if wxOSX_USE_EXPERIMENTAL_FONTDIALOG
  26. class WXDLLIMPEXP_CORE wxFontDialog : public wxDialog
  27. {
  28. public:
  29. wxFontDialog();
  30. wxFontDialog(wxWindow *parent);
  31. wxFontDialog(wxWindow *parent, const wxFontData& data);
  32. virtual ~wxFontDialog();
  33. bool Create(wxWindow *parent);
  34. bool Create(wxWindow *parent, const wxFontData& data);
  35. int ShowModal();
  36. wxFontData& GetFontData() { return m_fontData; }
  37. protected:
  38. wxFontData m_fontData;
  39. DECLARE_DYNAMIC_CLASS_NO_COPY(wxFontDialog)
  40. };
  41. extern "C" int RunMixedFontDialog(wxFontDialog* dialog) ;
  42. #else // wxOSX_USE_EXPERIMENTAL_FONTDIALOG
  43. #if !USE_NATIVE_FONT_DIALOG_FOR_MACOSX
  44. /*!
  45. * Forward declarations
  46. */
  47. class wxFontColourSwatchCtrl;
  48. class wxFontPreviewCtrl;
  49. class WXDLLIMPEXP_FWD_CORE wxSpinCtrl;
  50. class WXDLLIMPEXP_FWD_CORE wxSpinEvent;
  51. class WXDLLIMPEXP_FWD_CORE wxListBox;
  52. class WXDLLIMPEXP_FWD_CORE wxChoice;
  53. class WXDLLIMPEXP_FWD_CORE wxButton;
  54. class WXDLLIMPEXP_FWD_CORE wxStaticText;
  55. class WXDLLIMPEXP_FWD_CORE wxCheckBox;
  56. /*!
  57. * Control identifiers
  58. */
  59. #define wxID_FONTDIALOG_FACENAME 20001
  60. #define wxID_FONTDIALOG_FONTSIZE 20002
  61. #define wxID_FONTDIALOG_BOLD 20003
  62. #define wxID_FONTDIALOG_ITALIC 20004
  63. #define wxID_FONTDIALOG_UNDERLINED 20005
  64. #define wxID_FONTDIALOG_COLOUR 20006
  65. #define wxID_FONTDIALOG_PREVIEW 20007
  66. #endif
  67. // !USE_NATIVE_FONT_DIALOG_FOR_MACOSX
  68. class WXDLLIMPEXP_CORE wxFontDialog: public wxDialog
  69. {
  70. DECLARE_DYNAMIC_CLASS(wxFontDialog)
  71. #if !USE_NATIVE_FONT_DIALOG_FOR_MACOSX
  72. DECLARE_EVENT_TABLE()
  73. #endif
  74. public:
  75. wxFontDialog();
  76. wxFontDialog(wxWindow *parent, const wxFontData& data);
  77. virtual ~wxFontDialog();
  78. bool Create(wxWindow *parent, const wxFontData& data);
  79. int ShowModal();
  80. wxFontData& GetFontData() { return m_fontData; }
  81. bool IsShown() const;
  82. void OnPanelClose();
  83. void SetData(const wxFontData& data);
  84. #if !USE_NATIVE_FONT_DIALOG_FOR_MACOSX
  85. /// Creates the controls and sizers
  86. void CreateControls();
  87. /// Initialize font
  88. void InitializeFont();
  89. /// Set controls according to current font
  90. void InitializeControls();
  91. /// Respond to font change
  92. void ChangeFont();
  93. /// Respond to colour change
  94. void OnColourChanged(wxCommandEvent& event);
  95. /// wxEVT_LISTBOX event handler for wxID_FONTDIALOG_FACENAME
  96. void OnFontdialogFacenameSelected( wxCommandEvent& event );
  97. /// wxEVT_SPINCTRL event handler for wxID_FONTDIALOG_FONTSIZE
  98. void OnFontdialogFontsizeUpdated( wxSpinEvent& event );
  99. /// wxEVT_TEXT event handler for wxID_FONTDIALOG_FONTSIZE
  100. void OnFontdialogFontsizeTextUpdated( wxCommandEvent& event );
  101. /// wxEVT_CHECKBOX event handler for wxID_FONTDIALOG_BOLD
  102. void OnFontdialogBoldClick( wxCommandEvent& event );
  103. /// wxEVT_CHECKBOX event handler for wxID_FONTDIALOG_ITALIC
  104. void OnFontdialogItalicClick( wxCommandEvent& event );
  105. /// wxEVT_CHECKBOX event handler for wxID_FONTDIALOG_UNDERLINED
  106. void OnFontdialogUnderlinedClick( wxCommandEvent& event );
  107. /// wxEVT_BUTTON event handler for wxID_OK
  108. void OnOkClick( wxCommandEvent& event );
  109. /// Should we show tooltips?
  110. static bool ShowToolTips();
  111. wxListBox* m_facenameCtrl;
  112. wxSpinCtrl* m_sizeCtrl;
  113. wxCheckBox* m_boldCtrl;
  114. wxCheckBox* m_italicCtrl;
  115. wxCheckBox* m_underlinedCtrl;
  116. wxFontColourSwatchCtrl* m_colourCtrl;
  117. wxFontPreviewCtrl* m_previewCtrl;
  118. wxFont m_dialogFont;
  119. bool m_suppressUpdates;
  120. #endif
  121. // !USE_NATIVE_FONT_DIALOG_FOR_MACOSX
  122. protected:
  123. wxWindow* m_dialogParent;
  124. wxFontData m_fontData;
  125. void* m_pEventHandlerRef;
  126. };
  127. #endif
  128. #endif
  129. // _WX_FONTDLG_H_