]>
git.saurik.com Git - wxWidgets.git/blob - src/gtk/fontdlg.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/gtk/fontdlg.cpp
3 // Purpose: wxFontDialog
4 // Author: Robert Roebling
6 // Copyright: (c) 1998 Robert Roebling
7 // Licence: wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
10 // For compilers that support precompilation, includes "wx.h".
11 #include "wx/wxprec.h"
13 #if wxUSE_FONTDLG && !defined(__WXGPE__)
15 #include "wx/fontdlg.h"
21 #include "wx/fontutil.h"
22 #include "wx/gtk/private.h"
24 //-----------------------------------------------------------------------------
26 //-----------------------------------------------------------------------------
29 static void response(GtkDialog
* dialog
, int response_id
, wxFontDialog
* win
)
32 if (response_id
== GTK_RESPONSE_OK
)
35 #if GTK_CHECK_VERSION(3,2,0)
36 if (gtk_check_version(3,2,0) == NULL
)
38 wxNativeFontInfo info
;
39 info
.description
= gtk_font_chooser_get_font_desc(GTK_FONT_CHOOSER(dialog
));
40 win
->GetFontData().SetChosenFont(wxFont(info
));
45 GtkFontSelectionDialog
* sel
= GTK_FONT_SELECTION_DIALOG(dialog
);
46 wxGtkString
name(gtk_font_selection_dialog_get_font_name(sel
));
47 win
->GetFontData().SetChosenFont(wxFont(wxString::FromUTF8(name
)));
58 //-----------------------------------------------------------------------------
60 //-----------------------------------------------------------------------------
62 IMPLEMENT_DYNAMIC_CLASS(wxFontDialog
, wxDialog
)
64 bool wxFontDialog::DoCreate(wxWindow
*parent
)
66 parent
= GetParentForModalDialog(parent
, 0);
68 if (!PreCreation( parent
, wxDefaultPosition
, wxDefaultSize
) ||
69 !CreateBase( parent
, -1, wxDefaultPosition
, wxDefaultSize
, wxDEFAULT_DIALOG_STYLE
,
70 wxDefaultValidator
, wxT("fontdialog") ))
72 wxFAIL_MSG( wxT("wxFontDialog creation failed") );
76 const wxString
message(_("Choose font"));
77 GtkWindow
* gtk_parent
= NULL
;
79 gtk_parent
= GTK_WINDOW(parent
->m_widget
);
81 #if GTK_CHECK_VERSION(3,2,0)
82 if (gtk_check_version(3,2,0) == NULL
)
83 m_widget
= gtk_font_chooser_dialog_new(wxGTK_CONV(message
), gtk_parent
);
87 m_widget
= gtk_font_selection_dialog_new(wxGTK_CONV(message
));
89 gtk_window_set_transient_for(GTK_WINDOW(m_widget
), gtk_parent
);
91 g_object_ref(m_widget
);
93 g_signal_connect(m_widget
, "response", G_CALLBACK(response
), this);
95 wxFont font
= m_fontData
.GetInitialFont();
98 const wxNativeFontInfo
*info
= font
.GetNativeFontInfo();
102 #if GTK_CHECK_VERSION(3,2,0)
103 if (gtk_check_version(3,2,0) == NULL
)
104 gtk_font_chooser_set_font_desc(GTK_FONT_CHOOSER(m_widget
), info
->description
);
108 const wxString
& fontname
= info
->ToString();
109 GtkFontSelectionDialog
* sel
= GTK_FONT_SELECTION_DIALOG(m_widget
);
110 gtk_font_selection_dialog_set_font_name(sel
, wxGTK_CONV(fontname
));
115 // this is not supposed to happen!
116 wxFAIL_MSG(wxT("font is ok but no native font info?"));
123 wxFontDialog::~wxFontDialog()
127 #endif // wxUSE_FONTDLG && !__WXGPE__