d05ff890b4
wxFontDialog should have ctor and Create() overload taking just wxWindow parent in addition to the one taking parent and wxFontData used to initialize the dialog but it didn't have them in wxOSX, do add them now. Closes #13908. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70497 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
175 lines
4.4 KiB
C++
175 lines
4.4 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/osx/fontdlg.h
|
|
// Purpose: wxFontDialog class using fonts window services (10.2+).
|
|
// Author: Ryan Norton
|
|
// Modified by:
|
|
// Created: 2004-09-25
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) Ryan Norton
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_FONTDLG_H_
|
|
#define _WX_FONTDLG_H_
|
|
|
|
#include "wx/dialog.h"
|
|
|
|
/*
|
|
* Font dialog
|
|
*/
|
|
|
|
/*
|
|
* support old notation
|
|
*/
|
|
#ifdef wxMAC_USE_EXPERIMENTAL_FONTDIALOG
|
|
#define wxOSX_USE_EXPERIMENTAL_FONTDIALOG wxMAC_USE_EXPERIMENTAL_FONTDIALOG
|
|
#endif
|
|
|
|
#ifndef wxOSX_USE_EXPERIMENTAL_FONTDIALOG
|
|
#define wxOSX_USE_EXPERIMENTAL_FONTDIALOG 1
|
|
#endif
|
|
|
|
#if wxOSX_USE_EXPERIMENTAL_FONTDIALOG
|
|
|
|
class WXDLLIMPEXP_CORE wxFontDialog : public wxDialog
|
|
{
|
|
public:
|
|
wxFontDialog();
|
|
wxFontDialog(wxWindow *parent);
|
|
wxFontDialog(wxWindow *parent, const wxFontData& data);
|
|
virtual ~wxFontDialog();
|
|
|
|
bool Create(wxWindow *parent);
|
|
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 // wxOSX_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);
|
|
virtual ~wxFontDialog();
|
|
|
|
bool Create(wxWindow *parent, const wxFontData& data);
|
|
|
|
int ShowModal();
|
|
wxFontData& GetFontData() { return m_fontData; }
|
|
bool IsShown() const;
|
|
void OnPanelClose();
|
|
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;
|
|
};
|
|
|
|
#endif
|
|
|
|
#endif
|
|
// _WX_FONTDLG_H_
|