X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/72fcdc75707ff37c8226638a581d5a263d899b3e..916989dfb95b7e4a72234d946b8e078235046e05:/include/wx/mac/carbon/fontdlg.h diff --git a/include/wx/mac/carbon/fontdlg.h b/include/wx/mac/carbon/fontdlg.h index f8aa3f9016..48af50e871 100644 --- a/include/wx/mac/carbon/fontdlg.h +++ b/include/wx/mac/carbon/fontdlg.h @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: fontdlg.h -// Purpose: wxFontDialog class using fonts window services (10.2+). +// Name: wx/mac/carbon/fontdlg.h +// Purpose: wxFontDialog class using fonts window services (10.2+). // Author: Ryan Norton // Modified by: // Created: 2004-09-25 @@ -12,25 +12,84 @@ #ifndef _WX_FONTDLG_H_ #define _WX_FONTDLG_H_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "fontdlg.h" -#endif - #include "wx/dialog.h" #include "wx/cmndata.h" /* * Font dialog */ - -class WXDLLEXPORT wxFontDialog: public wxDialog + +#ifndef wxMAC_USE_EXPERIMENTAL_FONTDIALOG +#define wxMAC_USE_EXPERIMENTAL_FONTDIALOG 1 +#endif + +#if wxMAC_USE_EXPERIMENTAL_FONTDIALOG + +class WXDLLIMPEXP_CORE wxFontDialog : public wxDialog +{ +public: + wxFontDialog(); + wxFontDialog(wxWindow *parent, const wxFontData& data); + virtual ~wxFontDialog(); + + bool Create(wxWindow *parent, const wxFontData& data); + + int ShowModal(); + wxFontData& GetFontData() { return m_fontData; } + +protected: + wxFontData m_fontData; + + DECLARE_DYNAMIC_CLASS_NO_COPY(wxFontDialog) +}; + +extern "C" int RunMixedFontDialog(wxFontDialog* dialog) ; + +#else // wxMAC_USE_EXPERIMENTAL_FONTDIALOG + +#if !USE_NATIVE_FONT_DIALOG_FOR_MACOSX + +/*! + * Forward declarations + */ + +class wxFontColourSwatchCtrl; +class wxFontPreviewCtrl; +class WXDLLIMPEXP_FWD_CORE wxSpinCtrl; +class WXDLLIMPEXP_FWD_CORE wxSpinEvent; +class WXDLLIMPEXP_FWD_CORE wxListBox; +class WXDLLIMPEXP_FWD_CORE wxChoice; +class WXDLLIMPEXP_FWD_CORE wxButton; +class WXDLLIMPEXP_FWD_CORE wxStaticText; +class WXDLLIMPEXP_FWD_CORE wxCheckBox; + +/*! + * Control identifiers + */ + +#define wxID_FONTDIALOG_FACENAME 20001 +#define wxID_FONTDIALOG_FONTSIZE 20002 +#define wxID_FONTDIALOG_BOLD 20003 +#define wxID_FONTDIALOG_ITALIC 20004 +#define wxID_FONTDIALOG_UNDERLINED 20005 +#define wxID_FONTDIALOG_COLOUR 20006 +#define wxID_FONTDIALOG_PREVIEW 20007 + +#endif + // !USE_NATIVE_FONT_DIALOG_FOR_MACOSX + +class WXDLLIMPEXP_CORE wxFontDialog: public wxDialog { DECLARE_DYNAMIC_CLASS(wxFontDialog) +#if !USE_NATIVE_FONT_DIALOG_FOR_MACOSX +DECLARE_EVENT_TABLE() +#endif + public: wxFontDialog(); wxFontDialog(wxWindow *parent, const wxFontData& data); - ~wxFontDialog(); + virtual ~wxFontDialog(); bool Create(wxWindow *parent, const wxFontData& data); @@ -38,14 +97,70 @@ public: wxFontData& GetFontData() { return m_fontData; } bool IsShown() const; void OnPanelClose(); - void SetData(wxFontData& data); + void SetData(const wxFontData& data); + +#if !USE_NATIVE_FONT_DIALOG_FOR_MACOSX + + /// Creates the controls and sizers + void CreateControls(); + + /// Initialize font + void InitializeFont(); + + /// Set controls according to current font + void InitializeControls(); + + /// Respond to font change + void ChangeFont(); + + /// Respond to colour change + void OnColourChanged(wxCommandEvent& event); + + /// wxEVT_COMMAND_LISTBOX_SELECTED event handler for wxID_FONTDIALOG_FACENAME + void OnFontdialogFacenameSelected( wxCommandEvent& event ); + + /// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for wxID_FONTDIALOG_FONTSIZE + void OnFontdialogFontsizeUpdated( wxSpinEvent& event ); + + /// wxEVT_COMMAND_TEXT_UPDATED event handler for wxID_FONTDIALOG_FONTSIZE + void OnFontdialogFontsizeTextUpdated( wxCommandEvent& event ); + + /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for wxID_FONTDIALOG_BOLD + void OnFontdialogBoldClick( wxCommandEvent& event ); + + /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for wxID_FONTDIALOG_ITALIC + void OnFontdialogItalicClick( wxCommandEvent& event ); + + /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for wxID_FONTDIALOG_UNDERLINED + void OnFontdialogUnderlinedClick( wxCommandEvent& event ); + + /// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK + void OnOkClick( wxCommandEvent& event ); + + /// Should we show tooltips? + static bool ShowToolTips(); + + wxListBox* m_facenameCtrl; + wxSpinCtrl* m_sizeCtrl; + wxCheckBox* m_boldCtrl; + wxCheckBox* m_italicCtrl; + wxCheckBox* m_underlinedCtrl; + wxFontColourSwatchCtrl* m_colourCtrl; + wxFontPreviewCtrl* m_previewCtrl; + + wxFont m_dialogFont; + bool m_suppressUpdates; + +#endif + // !USE_NATIVE_FONT_DIALOG_FOR_MACOSX protected: wxWindow* m_dialogParent; wxFontData m_fontData; - void* m_pEventHandlerRef; + void* m_pEventHandlerRef; }; #endif - // _WX_FONTDLG_H_ +#endif + // _WX_FONTDLG_H_