From 47e118ba9a99f27050c3fa5f19f0edd6917d5df5 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Sat, 28 Feb 2004 15:27:11 +0000 Subject: [PATCH 1/1] GPE uses generic dialogs. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25988 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/fontdlg.h | 2 +- include/wx/msgdlg.h | 2 +- src/generic/fontdlgg.cpp | 258 ++++++++++++++++++++++----------------- src/generic/msgdlgg.cpp | 2 +- src/gtk/fontdlg.cpp | 3 + src/gtk/msgdlg.cpp | 2 +- src/gtk1/fontdlg.cpp | 3 + src/gtk1/msgdlg.cpp | 2 +- 8 files changed, 154 insertions(+), 120 deletions(-) diff --git a/include/wx/fontdlg.h b/include/wx/fontdlg.h index 5eda6077a0..421716d761 100644 --- a/include/wx/fontdlg.h +++ b/include/wx/fontdlg.h @@ -66,7 +66,7 @@ protected: // ---------------------------------------------------------------------------- #if defined(__WXUNIVERSAL__) || defined(__WXMOTIF__) || defined(__WXMAC__) || defined(__WXCOCOA__) \ - || defined(__WXWINCE__) + || defined(__WXWINCE__) || defined(__WXGPE__) #include "wx/generic/fontdlgg.h" #define wxFontDialog wxGenericFontDialog #elif defined(__WXMSW__) diff --git a/include/wx/msgdlg.h b/include/wx/msgdlg.h index eb0776ffe9..8435c2825b 100644 --- a/include/wx/msgdlg.h +++ b/include/wx/msgdlg.h @@ -5,7 +5,7 @@ #if wxUSE_MSGDLG -#if defined(__WXUNIVERSAL__) +#if defined(__WXUNIVERSAL__) || defined(__WXGPE__) #include "wx/generic/msgdlgg.h" #elif defined(__WXMSW__) #include "wx/msw/msgdlg.h" diff --git a/src/generic/fontdlgg.cpp b/src/generic/fontdlgg.cpp index 9ac0c7dcfa..7ba6f4927e 100644 --- a/src/generic/fontdlgg.cpp +++ b/src/generic/fontdlgg.cpp @@ -20,7 +20,7 @@ #pragma hdrstop #endif -#if wxUSE_FONTDLG && (!defined(__WXGTK__) || defined(__WXUNIVERSAL__)) +#if wxUSE_FONTDLG && (!defined(__WXGTK__) || defined(__WXGPE__) || defined(__WXUNIVERSAL__)) #ifndef WX_PRECOMP #include @@ -42,6 +42,7 @@ #include "wx/cmndata.h" #include "wx/sizer.h" #include "wx/fontdlg.h" +#include "wx/settings.h" //----------------------------------------------------------------------------- // helper class - wxFontPreviewer @@ -176,7 +177,7 @@ wxGenericFontDialog::~wxGenericFontDialog() void wxGenericFontDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) { - EndModal(wxID_CANCEL); + EndModal(wxID_CANCEL); } bool wxGenericFontDialog::DoCreate(wxWindow *parent) @@ -188,14 +189,14 @@ bool wxGenericFontDialog::DoCreate(wxWindow *parent) return FALSE; } - InitializeFont(); - CreateWidgets(); + InitializeFont(); + CreateWidgets(); - // sets initial font in preview area - wxCommandEvent dummy; - OnChangeFont(dummy); + // sets initial font in preview area + wxCommandEvent dummy; + OnChangeFont(dummy); - return TRUE; + return TRUE; } int wxGenericFontDialog::ShowModal() @@ -212,141 +213,168 @@ int wxGenericFontDialog::ShowModal() void wxGenericFontDialog::CreateWidgets() { - wxBusyCursor bcur; - - wxString + wxString *families = new wxString[6], *styles = new wxString[3], *weights = new wxString[3]; - families[0] = _("Roman"); - families[1] = _("Decorative"); - families[2] = _("Modern"); - families[3] = _("Script"); - families[4] = _("Swiss" ); - families[5] = _("Teletype" ); - styles[0] = _("Normal"); - styles[1] = _("Italic"); - styles[2] = _("Slant"); - weights[0] = _("Normal"); - weights[1] = _("Light"); - weights[2] = _("Bold"); - - familyChoice = new wxChoice(this, wxID_FONT_FAMILY, wxDefaultPosition, wxDefaultSize, 5, families); - styleChoice = new wxChoice(this, wxID_FONT_STYLE, wxDefaultPosition, wxDefaultSize, 3, styles); - weightChoice = new wxChoice(this, wxID_FONT_WEIGHT, wxDefaultPosition, wxDefaultSize, 3, weights); - - colourChoice = new wxChoice(this, wxID_FONT_COLOUR, wxDefaultPosition, wxDefaultSize, NUM_COLS, wxColourDialogNames); - - wxString *pointSizes = new wxString[40]; - int i; - for ( i = 0; i < 40; i++) - { - wxChar buf[5]; - wxSprintf(buf, wxT("%d"), i + 1); - pointSizes[i] = buf; - } + families[0] = _("Roman"); + families[1] = _("Decorative"); + families[2] = _("Modern"); + families[3] = _("Script"); + families[4] = _("Swiss" ); + families[5] = _("Teletype" ); + styles[0] = _("Normal"); + styles[1] = _("Italic"); + styles[2] = _("Slant"); + weights[0] = _("Normal"); + weights[1] = _("Light"); + weights[2] = _("Bold"); + + familyChoice = new wxChoice(this, wxID_FONT_FAMILY, wxDefaultPosition, wxDefaultSize, 5, families); + styleChoice = new wxChoice(this, wxID_FONT_STYLE, wxDefaultPosition, wxDefaultSize, 3, styles); + weightChoice = new wxChoice(this, wxID_FONT_WEIGHT, wxDefaultPosition, wxDefaultSize, 3, weights); + + colourChoice = new wxChoice(this, wxID_FONT_COLOUR, wxDefaultPosition, wxDefaultSize, NUM_COLS, wxColourDialogNames); + + wxString *pointSizes = new wxString[40]; + int i; + for ( i = 0; i < 40; i++) + { + wxChar buf[5]; + wxSprintf(buf, wxT("%d"), i + 1); + pointSizes[i] = buf; + } - pointSizeChoice = new wxChoice(this, wxID_FONT_SIZE, wxDefaultPosition, wxDefaultSize, 40, pointSizes); - underLineCheckBox = new wxCheckBox(this, wxID_FONT_UNDERLINE, _("Underline")); + pointSizeChoice = new wxChoice(this, wxID_FONT_SIZE, wxDefaultPosition, wxDefaultSize, 40, pointSizes); + underLineCheckBox = new wxCheckBox(this, wxID_FONT_UNDERLINE, _("Underline")); - m_previewer = new wxFontPreviewer(this); + m_previewer = new wxFontPreviewer(this); - wxButton *okButton = new wxButton(this, wxID_OK, _("OK")); - wxButton *cancelButton = new wxButton(this, wxID_CANCEL, _("Cancel")); + wxButton *okButton = new wxButton(this, wxID_OK, _("OK")); + wxButton *cancelButton = new wxButton(this, wxID_CANCEL, _("Cancel")); - familyChoice->SetStringSelection( wxFontFamilyIntToString(dialogFont.GetFamily()) ); - styleChoice->SetStringSelection(wxFontStyleIntToString(dialogFont.GetStyle())); - weightChoice->SetStringSelection(wxFontWeightIntToString(dialogFont.GetWeight())); - wxString name(wxTheColourDatabase->FindName(m_fontData.GetColour())); - colourChoice->SetStringSelection(name); + familyChoice->SetStringSelection( wxFontFamilyIntToString(dialogFont.GetFamily()) ); + styleChoice->SetStringSelection(wxFontStyleIntToString(dialogFont.GetStyle())); + weightChoice->SetStringSelection(wxFontWeightIntToString(dialogFont.GetWeight())); + wxString name(wxTheColourDatabase->FindName(m_fontData.GetColour())); + colourChoice->SetStringSelection(name); - underLineCheckBox->SetValue(dialogFont.GetUnderlined()); - pointSizeChoice->SetSelection(dialogFont.GetPointSize()-1); + underLineCheckBox->SetValue(dialogFont.GetUnderlined()); + pointSizeChoice->SetSelection(dialogFont.GetPointSize()-1); - okButton->SetDefault(); + okButton->SetDefault(); - wxSizer *topsizer, *sizer; - topsizer = new wxBoxSizer(wxVERTICAL); + // layout - sizer = new wxBoxSizer(wxHORIZONTAL); - sizer->Add(familyChoice, 0, wxALIGN_CENTER | wxLEFT, 10); - sizer->Add(styleChoice, 0, wxALIGN_CENTER | wxLEFT, 10); - sizer->Add(weightChoice, 0, wxALIGN_CENTER | wxLEFT, 10); - topsizer->Add(sizer, 0, wxLEFT| wxTOP| wxRIGHT, 10); + bool is_pda = (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA); - sizer = new wxBoxSizer(wxHORIZONTAL); - sizer->Add(colourChoice, 0, wxALIGN_CENTER | wxLEFT, 10); - sizer->Add(pointSizeChoice, 0, wxALIGN_CENTER | wxLEFT, 10); - sizer->Add(underLineCheckBox, 0, wxALIGN_CENTER | wxLEFT, 10); - topsizer->Add(sizer, 0, wxLEFT| wxTOP| wxRIGHT, 10); + + wxSizer *topsizer, *sizer; + topsizer = new wxBoxSizer(wxVERTICAL); + + if (!is_pda) + { + // 2 row design + sizer = new wxBoxSizer(wxHORIZONTAL); + sizer->Add(familyChoice, 0, wxALIGN_CENTER | wxLEFT, 10); + sizer->Add(styleChoice, 0, wxALIGN_CENTER | wxLEFT, 10); + sizer->Add(weightChoice, 0, wxALIGN_CENTER | wxLEFT, 10); + topsizer->Add(sizer, 0, wxLEFT| wxTOP| wxRIGHT, 10); + + sizer = new wxBoxSizer(wxHORIZONTAL); + sizer->Add(colourChoice, 0, wxALIGN_CENTER | wxLEFT, 10); + sizer->Add(pointSizeChoice, 0, wxALIGN_CENTER | wxLEFT, 10); + sizer->Add(underLineCheckBox, 0, wxALIGN_CENTER | wxLEFT, 10); + topsizer->Add(sizer, 0, wxLEFT| wxTOP| wxRIGHT, 10); + } + else + { + // 3 row design + sizer = new wxBoxSizer(wxHORIZONTAL); + sizer->Add(familyChoice, 0, wxALIGN_CENTER | wxLEFT, 10); + sizer->Add(styleChoice, 0, wxALIGN_CENTER | wxLEFT, 10); + topsizer->Add(sizer, 0, wxLEFT| wxTOP| wxRIGHT, 10); + + sizer = new wxBoxSizer(wxHORIZONTAL); + sizer->Add(weightChoice, 0, wxALIGN_CENTER | wxLEFT, 10); + sizer->Add(colourChoice, 0, wxALIGN_CENTER | wxLEFT, 10); + topsizer->Add(sizer, 0, wxLEFT| wxTOP| wxRIGHT, 10); + + sizer = new wxBoxSizer(wxHORIZONTAL); + sizer->Add(pointSizeChoice, 0, wxALIGN_CENTER | wxLEFT, 10); + sizer->Add(underLineCheckBox, 0, wxALIGN_CENTER | wxLEFT, 10); + topsizer->Add(sizer, 0, wxLEFT| wxTOP| wxRIGHT, 10); + } - topsizer->Add(m_previewer, 1, wxALL | wxEXPAND, 10); - topsizer->SetItemMinSize(m_previewer, 430, 100); - - sizer = new wxBoxSizer(wxHORIZONTAL); - sizer->Add(okButton, 0, wxRIGHT, 10); - sizer->Add(cancelButton, 0, wxRIGHT, 10); - topsizer->Add(sizer, 0, wxALIGN_RIGHT | wxBOTTOM, 10); - - SetAutoLayout(TRUE); - SetSizer(topsizer); - topsizer->SetSizeHints(this); - topsizer->Fit(this); - - Centre(wxBOTH); - - delete[] families; - delete[] styles; - delete[] weights; - delete[] pointSizes; - m_useEvents = TRUE; + topsizer->Add(m_previewer, 1, wxALL | wxEXPAND, 10); + topsizer->SetItemMinSize(m_previewer, 430, 100); + + sizer = new wxBoxSizer(wxHORIZONTAL); + sizer->Add(okButton, 0, wxRIGHT, 10); + sizer->Add(cancelButton, 0, wxRIGHT, 10); + topsizer->Add(sizer, 0, wxALIGN_RIGHT | wxBOTTOM, 10); + + SetAutoLayout(TRUE); + SetSizer(topsizer); + topsizer->SetSizeHints(this); + topsizer->Fit(this); + + Centre(wxBOTH); + + delete[] families; + delete[] styles; + delete[] weights; + delete[] pointSizes; + + // Don't block events any more + m_useEvents = TRUE; } void wxGenericFontDialog::InitializeFont() { - int fontFamily = wxSWISS; - int fontWeight = wxNORMAL; - int fontStyle = wxNORMAL; - int fontSize = 12; - int fontUnderline = FALSE; + int fontFamily = wxSWISS; + int fontWeight = wxNORMAL; + int fontStyle = wxNORMAL; + int fontSize = 12; + int fontUnderline = FALSE; - if (m_fontData.m_initialFont.Ok()) - { - fontFamily = m_fontData.m_initialFont.GetFamily(); - fontWeight = m_fontData.m_initialFont.GetWeight(); - fontStyle = m_fontData.m_initialFont.GetStyle(); - fontSize = m_fontData.m_initialFont.GetPointSize(); - fontUnderline = m_fontData.m_initialFont.GetUnderlined(); - } + if (m_fontData.m_initialFont.Ok()) + { + fontFamily = m_fontData.m_initialFont.GetFamily(); + fontWeight = m_fontData.m_initialFont.GetWeight(); + fontStyle = m_fontData.m_initialFont.GetStyle(); + fontSize = m_fontData.m_initialFont.GetPointSize(); + fontUnderline = m_fontData.m_initialFont.GetUnderlined(); + } - dialogFont = wxFont(fontSize, fontFamily, fontStyle, fontWeight, (fontUnderline != 0)); + dialogFont = wxFont(fontSize, fontFamily, fontStyle, fontWeight, (fontUnderline != 0)); - if (m_previewer) - m_previewer->SetFont(dialogFont); + if (m_previewer) + m_previewer->SetFont(dialogFont); } void wxGenericFontDialog::OnChangeFont(wxCommandEvent& WXUNUSED(event)) { - if (!m_useEvents) return; + if (!m_useEvents) return; - int fontFamily = wxFontFamilyStringToInt(WXSTRINGCAST familyChoice->GetStringSelection()); - int fontWeight = wxFontWeightStringToInt(WXSTRINGCAST weightChoice->GetStringSelection()); - int fontStyle = wxFontStyleStringToInt(WXSTRINGCAST styleChoice->GetStringSelection()); - int fontSize = wxAtoi(pointSizeChoice->GetStringSelection()); - int fontUnderline = underLineCheckBox->GetValue(); + int fontFamily = wxFontFamilyStringToInt(WXSTRINGCAST familyChoice->GetStringSelection()); + int fontWeight = wxFontWeightStringToInt(WXSTRINGCAST weightChoice->GetStringSelection()); + int fontStyle = wxFontStyleStringToInt(WXSTRINGCAST styleChoice->GetStringSelection()); + int fontSize = wxAtoi(pointSizeChoice->GetStringSelection()); + int fontUnderline = underLineCheckBox->GetValue(); - dialogFont = wxFont(fontSize, fontFamily, fontStyle, fontWeight, (fontUnderline != 0)); - m_previewer->SetFont(dialogFont); - if (colourChoice->GetStringSelection() != wxT("")) - { - wxColour col = wxTheColourDatabase->Find(colourChoice->GetStringSelection()); - if (col.Ok()) + dialogFont = wxFont(fontSize, fontFamily, fontStyle, fontWeight, (fontUnderline != 0)); + m_previewer->SetFont(dialogFont); + if (colourChoice->GetStringSelection() != wxT("")) { - m_fontData.m_fontColour = col; - m_previewer->SetForegroundColour(col); + wxColour col = wxTheColourDatabase->Find(colourChoice->GetStringSelection()); + if (col.Ok()) + { + m_fontData.m_fontColour = col; + m_previewer->SetForegroundColour(col); + } } - } - m_previewer->Refresh(); + m_previewer->Refresh(); } const wxChar *wxFontWeightIntToString(int weight) diff --git a/src/generic/msgdlgg.cpp b/src/generic/msgdlgg.cpp index 4fd8c800d6..8a3db3ba9d 100644 --- a/src/generic/msgdlgg.cpp +++ b/src/generic/msgdlgg.cpp @@ -20,7 +20,7 @@ #pragma hdrstop #endif -#if wxUSE_MSGDLG && !defined(__WXGTK20__) +#if wxUSE_MSGDLG && (!defined(__WXGTK20__) || defined(__WXGPE__)) #ifndef WX_PRECOMP #include "wx/utils.h" diff --git a/src/gtk/fontdlg.cpp b/src/gtk/fontdlg.cpp index b6117da0b0..b6d2f48adf 100644 --- a/src/gtk/fontdlg.cpp +++ b/src/gtk/fontdlg.cpp @@ -18,6 +18,8 @@ #if wxUSE_FONTDLG +#ifndef __WXGPE__ + #include "wx/fontutil.h" #include "wx/fontdlg.h" #include "wx/utils.h" @@ -189,3 +191,4 @@ void wxFontDialog::SetChosenFont(const char *fontname) #endif // wxUSE_FONTDLG +#endif // GPE \ No newline at end of file diff --git a/src/gtk/msgdlg.cpp b/src/gtk/msgdlg.cpp index d700da2101..1d68787535 100644 --- a/src/gtk/msgdlg.cpp +++ b/src/gtk/msgdlg.cpp @@ -20,7 +20,7 @@ #pragma hdrstop #endif -#if wxUSE_MSGDLG && defined(__WXGTK20__) +#if wxUSE_MSGDLG && defined(__WXGTK20__) && !defined(__WXGPE__) #include "wx/gtk/private.h" #include diff --git a/src/gtk1/fontdlg.cpp b/src/gtk1/fontdlg.cpp index b6117da0b0..b6d2f48adf 100644 --- a/src/gtk1/fontdlg.cpp +++ b/src/gtk1/fontdlg.cpp @@ -18,6 +18,8 @@ #if wxUSE_FONTDLG +#ifndef __WXGPE__ + #include "wx/fontutil.h" #include "wx/fontdlg.h" #include "wx/utils.h" @@ -189,3 +191,4 @@ void wxFontDialog::SetChosenFont(const char *fontname) #endif // wxUSE_FONTDLG +#endif // GPE \ No newline at end of file diff --git a/src/gtk1/msgdlg.cpp b/src/gtk1/msgdlg.cpp index d700da2101..1d68787535 100644 --- a/src/gtk1/msgdlg.cpp +++ b/src/gtk1/msgdlg.cpp @@ -20,7 +20,7 @@ #pragma hdrstop #endif -#if wxUSE_MSGDLG && defined(__WXGTK20__) +#if wxUSE_MSGDLG && defined(__WXGTK20__) && !defined(__WXGPE__) #include "wx/gtk/private.h" #include -- 2.45.2