From 6dfaa4e5d9b8e6c741971884ec896f15f71712f4 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Tue, 24 Aug 1999 20:30:10 +0000 Subject: [PATCH] Forgot to add the files. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3472 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/gtk/fontdlg.h | 50 ++++++++++++++ include/wx/gtk1/fontdlg.h | 50 ++++++++++++++ src/gtk/fontdlg.cpp | 141 ++++++++++++++++++++++++++++++++++++++ src/gtk1/fontdlg.cpp | 141 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 382 insertions(+) create mode 100644 include/wx/gtk/fontdlg.h create mode 100644 include/wx/gtk1/fontdlg.h create mode 100644 src/gtk/fontdlg.cpp create mode 100644 src/gtk1/fontdlg.cpp diff --git a/include/wx/gtk/fontdlg.h b/include/wx/gtk/fontdlg.h new file mode 100644 index 0000000000..2d47916288 --- /dev/null +++ b/include/wx/gtk/fontdlg.h @@ -0,0 +1,50 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: fontdlgg.h +// Purpose: wxFontDialog +// Author: Robert Roebling +// Created: +// RCS-ID: $Id$ +// Copyright: (c) Robert Roebling +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef __GTK_FONTDLGH__ +#define __GTK_FONTDLGH__ + +#ifdef __GNUG__ +#pragma interface "fontdlg.h" +#endif + +#include "wx/setup.h" +#include "wx/gdicmn.h" +#include "wx/font.h" +#include "wx/dialog.h" +#include "wx/cmndata.h" + +//----------------------------------------------------------------------------- +// classes +//----------------------------------------------------------------------------- + +class wxFontDialog; + +//----------------------------------------------------------------------------- +// wxFontDialog +//----------------------------------------------------------------------------- + +class wxFontDialog: public wxDialog +{ +public: + wxFontDialog() {} + wxFontDialog( wxWindow *parent, wxFontData *data = (wxFontData *) NULL ); + ~wxFontDialog(); + + inline wxFontData& GetFontData() { return m_fontData; } + +//protected: + wxFontData m_fontData; + +private: + DECLARE_DYNAMIC_CLASS(wxFontDialog) +}; + +#endif diff --git a/include/wx/gtk1/fontdlg.h b/include/wx/gtk1/fontdlg.h new file mode 100644 index 0000000000..2d47916288 --- /dev/null +++ b/include/wx/gtk1/fontdlg.h @@ -0,0 +1,50 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: fontdlgg.h +// Purpose: wxFontDialog +// Author: Robert Roebling +// Created: +// RCS-ID: $Id$ +// Copyright: (c) Robert Roebling +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef __GTK_FONTDLGH__ +#define __GTK_FONTDLGH__ + +#ifdef __GNUG__ +#pragma interface "fontdlg.h" +#endif + +#include "wx/setup.h" +#include "wx/gdicmn.h" +#include "wx/font.h" +#include "wx/dialog.h" +#include "wx/cmndata.h" + +//----------------------------------------------------------------------------- +// classes +//----------------------------------------------------------------------------- + +class wxFontDialog; + +//----------------------------------------------------------------------------- +// wxFontDialog +//----------------------------------------------------------------------------- + +class wxFontDialog: public wxDialog +{ +public: + wxFontDialog() {} + wxFontDialog( wxWindow *parent, wxFontData *data = (wxFontData *) NULL ); + ~wxFontDialog(); + + inline wxFontData& GetFontData() { return m_fontData; } + +//protected: + wxFontData m_fontData; + +private: + DECLARE_DYNAMIC_CLASS(wxFontDialog) +}; + +#endif diff --git a/src/gtk/fontdlg.cpp b/src/gtk/fontdlg.cpp new file mode 100644 index 0000000000..98d1bedcd8 --- /dev/null +++ b/src/gtk/fontdlg.cpp @@ -0,0 +1,141 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: fontdlg.cpp +// Purpose: wxFontDialog +// Author: Robert Roebling +// Id: $Id$ +// Copyright: (c) 1998 Robert Roebling +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifdef __GNUG__ +#pragma implementation "fontdlg.h" +#endif + +#include "wx/fontdlg.h" +#include "wx/utils.h" +#include "wx/intl.h" +#include "wx/debug.h" +#include "wx/msgdlg.h" + +#include "gtk/gtk.h" + +//----------------------------------------------------------------------------- +// idle system +//----------------------------------------------------------------------------- + +extern void wxapp_install_idle_handler(); +extern bool g_isIdle; + +//----------------------------------------------------------------------------- +// "delete_event" +//----------------------------------------------------------------------------- + +static +bool gtk_fontdialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxDialog *win ) +{ + if (g_isIdle) + wxapp_install_idle_handler(); + +/* + printf( "OnDelete from " ); + if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) + printf( win->GetClassInfo()->GetClassName() ); + printf( ".\n" ); +*/ + + win->Close(); + + return TRUE; +} + +//----------------------------------------------------------------------------- +// "clicked" for OK-button +//----------------------------------------------------------------------------- + +static +void gtk_fontdialog_ok_callback( GtkWidget *WXUNUSED(widget), wxFontDialog *dialog ) +{ + if (g_isIdle) + wxapp_install_idle_handler(); + + GtkFontSelectionDialog *fontdlg = GTK_FONT_SELECTION_DIALOG(dialog->m_widget); + GdkFont *gfont = gtk_font_selection_dialog_get_font(fontdlg); + + if (!gfont) + { + wxMessageBox(_("Please choose a valid font."), _("Error"), wxOK); + return; + } + + gchar *fontname = gtk_font_selection_dialog_get_font_name(fontdlg); + wxFont font( gfont, fontname ); + g_free( fontname ); + dialog->m_fontData.SetChosenFont( font ); + + wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK); + event.SetEventObject( dialog ); + dialog->GetEventHandler()->ProcessEvent( event ); +} + +//----------------------------------------------------------------------------- +// "clicked" for Cancel-button +//----------------------------------------------------------------------------- + +static +void gtk_fontdialog_cancel_callback( GtkWidget *WXUNUSED(w), wxFontDialog *dialog ) +{ + if (g_isIdle) + wxapp_install_idle_handler(); + + wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); + event.SetEventObject( dialog ); + dialog->GetEventHandler()->ProcessEvent( event ); +} + +//----------------------------------------------------------------------------- +// wxFontDialog +//----------------------------------------------------------------------------- + +IMPLEMENT_DYNAMIC_CLASS(wxFontDialog,wxDialog) + +wxFontDialog::wxFontDialog( wxWindow *parent, wxFontData *data ) +{ + m_needParent = FALSE; + + if (!PreCreation( parent, wxDefaultPosition, wxDefaultSize ) || + !CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE, + wxDefaultValidator, _T("fontdialog") )) + { + wxFAIL_MSG( _T("wxXX creation failed") ); + return; + } + + wxString m_message( _("Choose font") ); + m_widget = gtk_font_selection_dialog_new( m_message.mbc_str() ); + + int x = (gdk_screen_width () - 400) / 2; + int y = (gdk_screen_height () - 400) / 2; + gtk_widget_set_uposition( m_widget, x, y ); + + GtkFontSelectionDialog *sel = GTK_FONT_SELECTION_DIALOG(m_widget); + + gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked", + GTK_SIGNAL_FUNC(gtk_fontdialog_ok_callback), (gpointer*)this ); + + // strange way to internationalize + gtk_label_set( GTK_LABEL( GTK_BUTTON(sel->ok_button)->child ), wxConvCurrent->cWX2MB(_("OK")) ); + + gtk_signal_connect( GTK_OBJECT(sel->cancel_button), "clicked", + GTK_SIGNAL_FUNC(gtk_fontdialog_cancel_callback), (gpointer*)this ); + + // strange way to internationalize + gtk_label_set( GTK_LABEL( GTK_BUTTON(sel->cancel_button)->child ), wxConvCurrent->cWX2MB(_("Cancel")) ); + + gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event", + GTK_SIGNAL_FUNC(gtk_fontdialog_delete_callback), (gpointer)this ); +} + +wxFontDialog::~wxFontDialog() +{ +} + diff --git a/src/gtk1/fontdlg.cpp b/src/gtk1/fontdlg.cpp new file mode 100644 index 0000000000..98d1bedcd8 --- /dev/null +++ b/src/gtk1/fontdlg.cpp @@ -0,0 +1,141 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: fontdlg.cpp +// Purpose: wxFontDialog +// Author: Robert Roebling +// Id: $Id$ +// Copyright: (c) 1998 Robert Roebling +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifdef __GNUG__ +#pragma implementation "fontdlg.h" +#endif + +#include "wx/fontdlg.h" +#include "wx/utils.h" +#include "wx/intl.h" +#include "wx/debug.h" +#include "wx/msgdlg.h" + +#include "gtk/gtk.h" + +//----------------------------------------------------------------------------- +// idle system +//----------------------------------------------------------------------------- + +extern void wxapp_install_idle_handler(); +extern bool g_isIdle; + +//----------------------------------------------------------------------------- +// "delete_event" +//----------------------------------------------------------------------------- + +static +bool gtk_fontdialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxDialog *win ) +{ + if (g_isIdle) + wxapp_install_idle_handler(); + +/* + printf( "OnDelete from " ); + if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) + printf( win->GetClassInfo()->GetClassName() ); + printf( ".\n" ); +*/ + + win->Close(); + + return TRUE; +} + +//----------------------------------------------------------------------------- +// "clicked" for OK-button +//----------------------------------------------------------------------------- + +static +void gtk_fontdialog_ok_callback( GtkWidget *WXUNUSED(widget), wxFontDialog *dialog ) +{ + if (g_isIdle) + wxapp_install_idle_handler(); + + GtkFontSelectionDialog *fontdlg = GTK_FONT_SELECTION_DIALOG(dialog->m_widget); + GdkFont *gfont = gtk_font_selection_dialog_get_font(fontdlg); + + if (!gfont) + { + wxMessageBox(_("Please choose a valid font."), _("Error"), wxOK); + return; + } + + gchar *fontname = gtk_font_selection_dialog_get_font_name(fontdlg); + wxFont font( gfont, fontname ); + g_free( fontname ); + dialog->m_fontData.SetChosenFont( font ); + + wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK); + event.SetEventObject( dialog ); + dialog->GetEventHandler()->ProcessEvent( event ); +} + +//----------------------------------------------------------------------------- +// "clicked" for Cancel-button +//----------------------------------------------------------------------------- + +static +void gtk_fontdialog_cancel_callback( GtkWidget *WXUNUSED(w), wxFontDialog *dialog ) +{ + if (g_isIdle) + wxapp_install_idle_handler(); + + wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); + event.SetEventObject( dialog ); + dialog->GetEventHandler()->ProcessEvent( event ); +} + +//----------------------------------------------------------------------------- +// wxFontDialog +//----------------------------------------------------------------------------- + +IMPLEMENT_DYNAMIC_CLASS(wxFontDialog,wxDialog) + +wxFontDialog::wxFontDialog( wxWindow *parent, wxFontData *data ) +{ + m_needParent = FALSE; + + if (!PreCreation( parent, wxDefaultPosition, wxDefaultSize ) || + !CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE, + wxDefaultValidator, _T("fontdialog") )) + { + wxFAIL_MSG( _T("wxXX creation failed") ); + return; + } + + wxString m_message( _("Choose font") ); + m_widget = gtk_font_selection_dialog_new( m_message.mbc_str() ); + + int x = (gdk_screen_width () - 400) / 2; + int y = (gdk_screen_height () - 400) / 2; + gtk_widget_set_uposition( m_widget, x, y ); + + GtkFontSelectionDialog *sel = GTK_FONT_SELECTION_DIALOG(m_widget); + + gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked", + GTK_SIGNAL_FUNC(gtk_fontdialog_ok_callback), (gpointer*)this ); + + // strange way to internationalize + gtk_label_set( GTK_LABEL( GTK_BUTTON(sel->ok_button)->child ), wxConvCurrent->cWX2MB(_("OK")) ); + + gtk_signal_connect( GTK_OBJECT(sel->cancel_button), "clicked", + GTK_SIGNAL_FUNC(gtk_fontdialog_cancel_callback), (gpointer*)this ); + + // strange way to internationalize + gtk_label_set( GTK_LABEL( GTK_BUTTON(sel->cancel_button)->child ), wxConvCurrent->cWX2MB(_("Cancel")) ); + + gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event", + GTK_SIGNAL_FUNC(gtk_fontdialog_delete_callback), (gpointer)this ); +} + +wxFontDialog::~wxFontDialog() +{ +} + -- 2.45.2