Remove all lines containing cvs/svn "$Id$" keyword.
[wxWidgets.git] / include / wx / osx / fontdlg.h
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
11 #ifndef _WX_FONTDLG_H_
12 #define _WX_FONTDLG_H_
13
14 #include "wx/dialog.h"
15
16 /*
17 * Font dialog
18 */
19
20 /*
21 * support old notation
22 */
23 #ifdef wxMAC_USE_EXPERIMENTAL_FONTDIALOG
24 #define wxOSX_USE_EXPERIMENTAL_FONTDIALOG wxMAC_USE_EXPERIMENTAL_FONTDIALOG
25 #endif
26
27 #ifndef wxOSX_USE_EXPERIMENTAL_FONTDIALOG
28 #define wxOSX_USE_EXPERIMENTAL_FONTDIALOG 1
29 #endif
30
31 #if wxOSX_USE_EXPERIMENTAL_FONTDIALOG
32
33 class WXDLLIMPEXP_CORE wxFontDialog : public wxDialog
34 {
35 public:
36 wxFontDialog();
37 wxFontDialog(wxWindow *parent);
38 wxFontDialog(wxWindow *parent, const wxFontData& data);
39 virtual ~wxFontDialog();
40
41 bool Create(wxWindow *parent);
42 bool Create(wxWindow *parent, const wxFontData& data);
43
44 int ShowModal();
45 wxFontData& GetFontData() { return m_fontData; }
46
47 protected:
48 wxFontData m_fontData;
49
50 DECLARE_DYNAMIC_CLASS_NO_COPY(wxFontDialog)
51 };
52
53 extern "C" int RunMixedFontDialog(wxFontDialog* dialog) ;
54
55 #else // wxOSX_USE_EXPERIMENTAL_FONTDIALOG
56
57 #if !USE_NATIVE_FONT_DIALOG_FOR_MACOSX
58
59 /*!
60 * Forward declarations
61 */
62
63 class wxFontColourSwatchCtrl;
64 class wxFontPreviewCtrl;
65 class WXDLLIMPEXP_FWD_CORE wxSpinCtrl;
66 class WXDLLIMPEXP_FWD_CORE wxSpinEvent;
67 class WXDLLIMPEXP_FWD_CORE wxListBox;
68 class WXDLLIMPEXP_FWD_CORE wxChoice;
69 class WXDLLIMPEXP_FWD_CORE wxButton;
70 class WXDLLIMPEXP_FWD_CORE wxStaticText;
71 class WXDLLIMPEXP_FWD_CORE wxCheckBox;
72
73 /*!
74 * Control identifiers
75 */
76
77 #define wxID_FONTDIALOG_FACENAME 20001
78 #define wxID_FONTDIALOG_FONTSIZE 20002
79 #define wxID_FONTDIALOG_BOLD 20003
80 #define wxID_FONTDIALOG_ITALIC 20004
81 #define wxID_FONTDIALOG_UNDERLINED 20005
82 #define wxID_FONTDIALOG_COLOUR 20006
83 #define wxID_FONTDIALOG_PREVIEW 20007
84
85 #endif
86 // !USE_NATIVE_FONT_DIALOG_FOR_MACOSX
87
88 class WXDLLIMPEXP_CORE wxFontDialog: public wxDialog
89 {
90 DECLARE_DYNAMIC_CLASS(wxFontDialog)
91
92 #if !USE_NATIVE_FONT_DIALOG_FOR_MACOSX
93 DECLARE_EVENT_TABLE()
94 #endif
95
96 public:
97 wxFontDialog();
98 wxFontDialog(wxWindow *parent, const wxFontData& data);
99 virtual ~wxFontDialog();
100
101 bool Create(wxWindow *parent, const wxFontData& data);
102
103 int ShowModal();
104 wxFontData& GetFontData() { return m_fontData; }
105 bool IsShown() const;
106 void OnPanelClose();
107 void SetData(const wxFontData& data);
108
109 #if !USE_NATIVE_FONT_DIALOG_FOR_MACOSX
110
111 /// Creates the controls and sizers
112 void CreateControls();
113
114 /// Initialize font
115 void InitializeFont();
116
117 /// Set controls according to current font
118 void InitializeControls();
119
120 /// Respond to font change
121 void ChangeFont();
122
123 /// Respond to colour change
124 void OnColourChanged(wxCommandEvent& event);
125
126 /// wxEVT_LISTBOX event handler for wxID_FONTDIALOG_FACENAME
127 void OnFontdialogFacenameSelected( wxCommandEvent& event );
128
129 /// wxEVT_SPINCTRL event handler for wxID_FONTDIALOG_FONTSIZE
130 void OnFontdialogFontsizeUpdated( wxSpinEvent& event );
131
132 /// wxEVT_TEXT event handler for wxID_FONTDIALOG_FONTSIZE
133 void OnFontdialogFontsizeTextUpdated( wxCommandEvent& event );
134
135 /// wxEVT_CHECKBOX event handler for wxID_FONTDIALOG_BOLD
136 void OnFontdialogBoldClick( wxCommandEvent& event );
137
138 /// wxEVT_CHECKBOX event handler for wxID_FONTDIALOG_ITALIC
139 void OnFontdialogItalicClick( wxCommandEvent& event );
140
141 /// wxEVT_CHECKBOX event handler for wxID_FONTDIALOG_UNDERLINED
142 void OnFontdialogUnderlinedClick( wxCommandEvent& event );
143
144 /// wxEVT_BUTTON event handler for wxID_OK
145 void OnOkClick( wxCommandEvent& event );
146
147 /// Should we show tooltips?
148 static bool ShowToolTips();
149
150 wxListBox* m_facenameCtrl;
151 wxSpinCtrl* m_sizeCtrl;
152 wxCheckBox* m_boldCtrl;
153 wxCheckBox* m_italicCtrl;
154 wxCheckBox* m_underlinedCtrl;
155 wxFontColourSwatchCtrl* m_colourCtrl;
156 wxFontPreviewCtrl* m_previewCtrl;
157
158 wxFont m_dialogFont;
159 bool m_suppressUpdates;
160
161 #endif
162 // !USE_NATIVE_FONT_DIALOG_FOR_MACOSX
163
164 protected:
165 wxWindow* m_dialogParent;
166 wxFontData m_fontData;
167 void* m_pEventHandlerRef;
168 };
169
170 #endif
171
172 #endif
173 // _WX_FONTDLG_H_