X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2229243bdf17485b33c15786124ab99366b83975..59859d3da18244fa31f82c30ded14f619c3c967f:/src/generic/fontdlgg.cpp diff --git a/src/generic/fontdlgg.cpp b/src/generic/fontdlgg.cpp index 175954049b..70c59b66f9 100644 --- a/src/generic/fontdlgg.cpp +++ b/src/generic/fontdlgg.cpp @@ -20,6 +20,7 @@ #ifndef WX_PRECOMP #include + #include "wx/crt.h" #include "wx/utils.h" #include "wx/dialog.h" #include "wx/listbox.h" @@ -31,7 +32,6 @@ #include "wx/checkbox.h" #include "wx/intl.h" #include "wx/settings.h" - #include "wx/cmndata.h" #include "wx/sizer.h" #endif @@ -76,20 +76,111 @@ void wxFontPreviewer::OnPaint(wxPaintEvent& WXUNUSED(event)) dc.SetBrush(*wxWHITE_BRUSH); dc.DrawRectangle(0, 0, size.x, size.y); - if ( font.Ok() ) + if ( font.IsOk() ) { dc.SetFont(font); - // Calculate vertical centre - long w = 0, h = 0; - dc.GetTextExtent( wxT("X"), &w, &h); dc.SetTextForeground(GetForegroundColour()); dc.SetClippingRegion(2, 2, size.x-4, size.y-4); dc.DrawText(_("ABCDEFGabcdefg12345"), - 10, size.y/2 - h/2); + 10, (size.y - dc.GetTextExtent(wxT("X")).y)/2); dc.DestroyClippingRegion(); } } +//----------------------------------------------------------------------------- +// helper functions +//----------------------------------------------------------------------------- + +static const wxChar *wxFontWeightIntToString(int weight) +{ + switch (weight) + { + case wxLIGHT: + return wxT("Light"); + case wxBOLD: + return wxT("Bold"); + case wxNORMAL: + default: + return wxT("Normal"); + } +} + +static const wxChar *wxFontStyleIntToString(int style) +{ + switch (style) + { + case wxITALIC: + return wxT("Italic"); + case wxSLANT: + return wxT("Slant"); + case wxNORMAL: + default: + return wxT("Normal"); + } +} + +static const wxChar *wxFontFamilyIntToString(int family) +{ + switch (family) + { + case wxROMAN: + return wxT("Roman"); + case wxDECORATIVE: + return wxT("Decorative"); + case wxMODERN: + return wxT("Modern"); + case wxSCRIPT: + return wxT("Script"); + case wxTELETYPE: + return wxT("Teletype"); + case wxSWISS: + default: + return wxT("Swiss"); + } +} + +static int wxFontFamilyStringToInt(const wxString& family) +{ + if (family.empty()) + return wxSWISS; + + if (wxStrcmp(family, wxT("Roman")) == 0) + return wxROMAN; + else if (wxStrcmp(family, wxT("Decorative")) == 0) + return wxDECORATIVE; + else if (wxStrcmp(family, wxT("Modern")) == 0) + return wxMODERN; + else if (wxStrcmp(family, wxT("Script")) == 0) + return wxSCRIPT; + else if (wxStrcmp(family, wxT("Teletype")) == 0) + return wxTELETYPE; + else return wxSWISS; +} + +static int wxFontStyleStringToInt(const wxString& style) +{ + if (style.empty()) + return wxNORMAL; + if (wxStrcmp(style, wxT("Italic")) == 0) + return wxITALIC; + else if (wxStrcmp(style, wxT("Slant")) == 0) + return wxSLANT; + else + return wxNORMAL; +} + +static int wxFontWeightStringToInt(const wxString& weight) +{ + if (weight.empty()) + return wxNORMAL; + if (wxStrcmp(weight, wxT("Bold")) == 0) + return wxBOLD; + else if (wxStrcmp(weight, wxT("Light")) == 0) + return wxLIGHT; + else + return wxNORMAL; +} + //----------------------------------------------------------------------------- // wxGenericFontDialog //----------------------------------------------------------------------------- @@ -190,11 +281,11 @@ void wxGenericFontDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) bool wxGenericFontDialog::DoCreate(wxWindow *parent) { - parent = GetParentForModalDialog(parent); + parent = GetParentForModalDialog(parent, 0); - if ( !wxDialog::Create( parent , wxID_ANY , _T("Choose Font") , + if ( !wxDialog::Create( parent , wxID_ANY , wxT("Choose Font") , wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE, - _T("fontdialog") ) ) + wxT("fontdialog") ) ) { wxFAIL_MSG( wxT("wxFontDialog creation failed") ); return false; @@ -415,10 +506,10 @@ void wxGenericFontDialog::CreateWidgets() if (m_colourChoice) { wxString name(wxTheColourDatabase->FindName(m_fontData.GetColour())); - if (name.length()) - m_colourChoice->SetStringSelection(name); - else + if ( name.empty() ) m_colourChoice->SetStringSelection(wxT("BLACK")); + else + m_colourChoice->SetStringSelection(name); } if (m_underLineCheckBox) @@ -459,7 +550,7 @@ void wxGenericFontDialog::InitializeFont() int fontSize = 12; bool fontUnderline = false; - if (m_fontData.m_initialFont.Ok()) + if (m_fontData.m_initialFont.IsOk()) { fontFamily = m_fontData.m_initialFont.GetFamily(); fontWeight = m_fontData.m_initialFont.GetWeight(); @@ -484,9 +575,9 @@ void wxGenericFontDialog::DoChangeFont() { if (!m_useEvents) return; - int fontFamily = wxFontFamilyStringToInt(WXSTRINGCAST m_familyChoice->GetStringSelection()); - int fontWeight = wxFontWeightStringToInt(WXSTRINGCAST m_weightChoice->GetStringSelection()); - int fontStyle = wxFontStyleStringToInt(WXSTRINGCAST m_styleChoice->GetStringSelection()); + int fontFamily = wxFontFamilyStringToInt(m_familyChoice->GetStringSelection()); + int fontWeight = wxFontWeightStringToInt(m_weightChoice->GetStringSelection()); + int fontStyle = wxFontStyleStringToInt(m_styleChoice->GetStringSelection()); #if USE_SPINCTRL_FOR_POINT_SIZE wxSpinCtrl* fontSizeCtrl = wxDynamicCast(FindWindow(wxID_FONT_SIZE), wxSpinCtrl); int fontSize = fontSizeCtrl->GetValue(); @@ -511,7 +602,7 @@ void wxGenericFontDialog::DoChangeFont() if ( !m_colourChoice->GetStringSelection().empty() ) { wxColour col = wxTheColourDatabase->Find(m_colourChoice->GetStringSelection()); - if (col.Ok()) + if (col.IsOk()) { m_fontData.m_fontColour = col; } @@ -519,7 +610,7 @@ void wxGenericFontDialog::DoChangeFont() } // Update color here so that we can also use the color originally passed in // (EnableEffects may be false) - if (m_fontData.m_fontColour.Ok()) + if (m_fontData.m_fontColour.IsOk()) m_previewer->SetForegroundColour(m_fontData.m_fontColour); m_previewer->Refresh(); @@ -532,95 +623,5 @@ void wxGenericFontDialog::OnChangeSize(wxSpinEvent& WXUNUSED(event)) } #endif -const wxChar *wxFontWeightIntToString(int weight) -{ - switch (weight) - { - case wxLIGHT: - return wxT("Light"); - case wxBOLD: - return wxT("Bold"); - case wxNORMAL: - default: - return wxT("Normal"); - } -} - -const wxChar *wxFontStyleIntToString(int style) -{ - switch (style) - { - case wxITALIC: - return wxT("Italic"); - case wxSLANT: - return wxT("Slant"); - case wxNORMAL: - default: - return wxT("Normal"); - } -} - -const wxChar *wxFontFamilyIntToString(int family) -{ - switch (family) - { - case wxROMAN: - return wxT("Roman"); - case wxDECORATIVE: - return wxT("Decorative"); - case wxMODERN: - return wxT("Modern"); - case wxSCRIPT: - return wxT("Script"); - case wxTELETYPE: - return wxT("Teletype"); - case wxSWISS: - default: - return wxT("Swiss"); - } -} - -int wxFontFamilyStringToInt(wxChar *family) -{ - if (!family) - return wxSWISS; - - if (wxStrcmp(family, wxT("Roman")) == 0) - return wxROMAN; - else if (wxStrcmp(family, wxT("Decorative")) == 0) - return wxDECORATIVE; - else if (wxStrcmp(family, wxT("Modern")) == 0) - return wxMODERN; - else if (wxStrcmp(family, wxT("Script")) == 0) - return wxSCRIPT; - else if (wxStrcmp(family, wxT("Teletype")) == 0) - return wxTELETYPE; - else return wxSWISS; -} - -int wxFontStyleStringToInt(wxChar *style) -{ - if (!style) - return wxNORMAL; - if (wxStrcmp(style, wxT("Italic")) == 0) - return wxITALIC; - else if (wxStrcmp(style, wxT("Slant")) == 0) - return wxSLANT; - else - return wxNORMAL; -} - -int wxFontWeightStringToInt(wxChar *weight) -{ - if (!weight) - return wxNORMAL; - if (wxStrcmp(weight, wxT("Bold")) == 0) - return wxBOLD; - else if (wxStrcmp(weight, wxT("Light")) == 0) - return wxLIGHT; - else - return wxNORMAL; -} - #endif // wxUSE_FONTDLG