1/////////////////////////////////////////////////////////////////////////////
2// Name:        wx/generic/fontdlgg.h
3// Purpose:     wxGenericFontDialog
4// Author:      Julian Smart
5// Modified by:
6// Created:     01/02/97
7// RCS-ID:      $Id: fontdlgg.h 39286 2006-05-23 11:16:47Z JS $
8// Copyright:   (c) Julian Smart
9// Licence:     wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_GENERIC_FONTDLGG_H
13#define _WX_GENERIC_FONTDLGG_H
14
15#include "wx/defs.h"
16#include "wx/gdicmn.h"
17#include "wx/font.h"
18#include "wx/dialog.h"
19#include "wx/cmndata.h"
20
21#ifdef __WXWINCE__
22#define USE_SPINCTRL_FOR_POINT_SIZE 1
23class WXDLLEXPORT wxSpinEvent;
24#else
25#define USE_SPINCTRL_FOR_POINT_SIZE 0
26#endif
27
28/*
29 * FONT DIALOG
30 */
31
32class WXDLLEXPORT wxChoice;
33class WXDLLEXPORT wxText;
34class WXDLLEXPORT wxCheckBox;
35class WXDLLEXPORT wxFontPreviewer;
36
37enum
38{
39    wxID_FONT_UNDERLINE = 3000,
40    wxID_FONT_STYLE,
41    wxID_FONT_WEIGHT,
42    wxID_FONT_FAMILY,
43    wxID_FONT_COLOUR,
44    wxID_FONT_SIZE
45};
46
47class WXDLLEXPORT wxGenericFontDialog : public wxFontDialogBase
48{
49public:
50    wxGenericFontDialog() { Init(); }
51    wxGenericFontDialog(wxWindow *parent)
52        : wxFontDialogBase(parent) { Init(); }
53    wxGenericFontDialog(wxWindow *parent, const wxFontData& data)
54        : wxFontDialogBase(parent, data) { Init(); }
55    virtual ~wxGenericFontDialog();
56
57    virtual int ShowModal();
58
59#if WXWIN_COMPATIBILITY_2_6
60    // deprecated, for backwards compatibility only
61    wxDEPRECATED( wxGenericFontDialog(wxWindow *parent, const wxFontData *data) );
62#endif // WXWIN_COMPATIBILITY_2_6
63
64    // Internal functions
65    void OnCloseWindow(wxCloseEvent& event);
66
67    virtual void CreateWidgets();
68    virtual void InitializeFont();
69
70    void OnChangeFont(wxCommandEvent& event);
71
72#if USE_SPINCTRL_FOR_POINT_SIZE
73    void OnChangeSize(wxSpinEvent& event);
74#endif
75
76protected:
77
78    virtual bool DoCreate(wxWindow *parent);
79
80private:
81
82    // common part of all ctors
83    void Init();
84
85    void DoChangeFont();
86
87    wxFont m_dialogFont;
88
89    wxChoice *m_familyChoice;
90    wxChoice *m_styleChoice;
91    wxChoice *m_weightChoice;
92    wxChoice *m_colourChoice;
93    wxCheckBox *m_underLineCheckBox;
94
95#if !USE_SPINCTRL_FOR_POINT_SIZE
96    wxChoice   *m_pointSizeChoice;
97#endif
98
99    wxFontPreviewer *m_previewer;
100    bool       m_useEvents;
101
102    //  static bool fontDialogCancelled;
103    DECLARE_EVENT_TABLE()
104    DECLARE_DYNAMIC_CLASS(wxGenericFontDialog)
105};
106
107WXDLLEXPORT const wxChar *wxFontFamilyIntToString(int family);
108WXDLLEXPORT const wxChar *wxFontWeightIntToString(int weight);
109WXDLLEXPORT const wxChar *wxFontStyleIntToString(int style);
110WXDLLEXPORT int wxFontFamilyStringToInt(wxChar *family);
111WXDLLEXPORT int wxFontWeightStringToInt(wxChar *weight);
112WXDLLEXPORT int wxFontStyleStringToInt(wxChar *style);
113
114#if WXWIN_COMPATIBILITY_2_6
115    // deprecated, for backwards compatibility only
116inline wxGenericFontDialog::wxGenericFontDialog(wxWindow *parent, const wxFontData *data)
117                           :wxFontDialogBase(parent) { Init(); InitFontData(data); Create(parent); }
118#endif // WXWIN_COMPATIBILITY_2_6
119
120#endif // _WX_GENERIC_FONTDLGG_H
121