Don't send dummy wxCommandEvent. Make members private and use wxW coding standards for them.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37865 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Włodzimierz Skiba
2006-03-07 18:54:41 +00:00
parent 0e4e783cf0
commit cececf4db5
2 changed files with 136 additions and 130 deletions

View File

@@ -71,21 +71,26 @@ public:
#endif
protected:
// common part of all ctors
void Init();
virtual bool DoCreate(wxWindow *parent);
wxFont dialogFont;
private:
wxChoice *familyChoice;
wxChoice *styleChoice;
wxChoice *weightChoice;
wxChoice *colourChoice;
wxCheckBox *underLineCheckBox;
// common part of all ctors
void Init();
void DoChangeFont();
wxFont m_dialogFont;
wxChoice *m_familyChoice;
wxChoice *m_styleChoice;
wxChoice *m_weightChoice;
wxChoice *m_colourChoice;
wxCheckBox *m_underLineCheckBox;
#if !USE_SPINCTRL_FOR_POINT_SIZE
wxChoice *pointSizeChoice;
wxChoice *m_pointSizeChoice;
#endif
wxFontPreviewer *m_previewer;

View File

@@ -174,9 +174,9 @@ static wxString wxColourDialogNames[NUM_COLS]={wxT("ORANGE"),
void wxGenericFontDialog::Init()
{
m_useEvents = false;
m_previewer = NULL;
Create( m_parent ) ;
m_useEvents = false;
m_previewer = NULL;
Create( m_parent ) ;
}
wxGenericFontDialog::~wxGenericFontDialog()
@@ -201,8 +201,7 @@ bool wxGenericFontDialog::DoCreate(wxWindow *parent)
CreateWidgets();
// sets initial font in preview area
wxCommandEvent dummy;
OnChangeFont(dummy);
DoChangeFont();
return true;
}
@@ -213,7 +212,7 @@ int wxGenericFontDialog::ShowModal()
if (ret != wxID_CANCEL)
{
m_fontData.m_chosenFont = dialogFont;
m_fontData.m_chosenFont = m_dialogFont;
}
return ret;
@@ -224,10 +223,9 @@ static bool ShowToolTips() { return false; }
void wxGenericFontDialog::CreateWidgets()
{
wxString
*families = new wxString[6],
*styles = new wxString[3],
*weights = new wxString[3];
wxString *families = new wxString[6],
*styles = new wxString[3],
*weights = new wxString[3];
families[0] = _("Roman");
families[1] = _("Decorative");
families[2] = _("Modern");
@@ -267,8 +265,8 @@ void wxGenericFontDialog::CreateWidgets()
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
this->SetSizer(itemBoxSizer2);
this->SetAutoLayout(TRUE);
this->SetAutoLayout(true);
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5);
@@ -314,7 +312,7 @@ void wxGenericFontDialog::CreateWidgets()
{
wxStaticText* itemStaticText15 = new wxStaticText( this, wxID_STATIC, _("C&olour:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer14->Add(itemStaticText15, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
wxSize colourSize = wxDefaultSize;
if (is_pda)
colourSize.x = 100;
@@ -332,11 +330,11 @@ void wxGenericFontDialog::CreateWidgets()
itemBoxSizer17->Add(itemStaticText18, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
#if USE_SPINCTRL_FOR_POINT_SIZE
wxSpinCtrl* spinCtrl = new wxSpinCtrl(this, wxID_FONT_SIZE, wxT("12"), wxDefaultPosition, wxSize(80, -1), wxSP_ARROW_KEYS, 1, 500, 12);
wxSpinCtrl* spinCtrl = new wxSpinCtrl(this, wxID_FONT_SIZE, wxT("12"), wxDefaultPosition, wxSize(80, wxDefaultCoord), wxSP_ARROW_KEYS, 1, 500, 12);
spinCtrl->SetHelpText(_("The font point size."));
if (ShowToolTips())
spinCtrl->SetToolTip(_("The font point size."));
itemBoxSizer17->Add(spinCtrl, 0, wxALIGN_LEFT|wxALL, 5);
#else
wxChoice* itemChoice19 = new wxChoice( this, wxID_FONT_SIZE, wxDefaultPosition, wxDefaultSize, 40, pointSizes, 0 );
@@ -351,7 +349,7 @@ void wxGenericFontDialog::CreateWidgets()
wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxVERTICAL);
itemGridSizer4->Add(itemBoxSizer20, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
wxCheckBox* itemCheckBox21 = new wxCheckBox( this, wxID_FONT_UNDERLINE, _("&Underline"), wxDefaultPosition, wxDefaultSize, 0 );
itemCheckBox21->SetValue(FALSE);
itemCheckBox21->SetValue(false);
itemCheckBox21->SetHelpText(_("Whether the font is underlined."));
if (ShowToolTips())
itemCheckBox21->SetToolTip(_("Whether the font is underlined."));
@@ -363,7 +361,7 @@ void wxGenericFontDialog::CreateWidgets()
wxStaticText* itemStaticText23 = new wxStaticText( this, wxID_STATIC, _("Preview:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer3->Add(itemStaticText23, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
wxFontPreviewer* itemWindow24 = new wxFontPreviewer( this );
m_previewer = itemWindow24;
itemWindow24->SetHelpText(_("Shows the font preview."));
@@ -401,41 +399,41 @@ void wxGenericFontDialog::CreateWidgets()
itemBoxSizer25->Add(itemButton28, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
#endif
familyChoice = (wxChoice*) FindWindow(wxID_FONT_FAMILY);
styleChoice = (wxChoice*) FindWindow(wxID_FONT_STYLE);
weightChoice = (wxChoice*) FindWindow(wxID_FONT_WEIGHT);
colourChoice = (wxChoice*) FindWindow(wxID_FONT_COLOUR);
underLineCheckBox = (wxCheckBox*) FindWindow(wxID_FONT_UNDERLINE);
familyChoice->SetStringSelection( wxFontFamilyIntToString(dialogFont.GetFamily()) );
styleChoice->SetStringSelection(wxFontStyleIntToString(dialogFont.GetStyle()));
weightChoice->SetStringSelection(wxFontWeightIntToString(dialogFont.GetWeight()));
m_familyChoice = (wxChoice*) FindWindow(wxID_FONT_FAMILY);
m_styleChoice = (wxChoice*) FindWindow(wxID_FONT_STYLE);
m_weightChoice = (wxChoice*) FindWindow(wxID_FONT_WEIGHT);
m_colourChoice = (wxChoice*) FindWindow(wxID_FONT_COLOUR);
m_underLineCheckBox = (wxCheckBox*) FindWindow(wxID_FONT_UNDERLINE);
if (colourChoice)
m_familyChoice->SetStringSelection( wxFontFamilyIntToString(m_dialogFont.GetFamily()) );
m_styleChoice->SetStringSelection(wxFontStyleIntToString(m_dialogFont.GetStyle()));
m_weightChoice->SetStringSelection(wxFontWeightIntToString(m_dialogFont.GetWeight()));
if (m_colourChoice)
{
wxString name(wxTheColourDatabase->FindName(m_fontData.GetColour()));
if (name.length())
colourChoice->SetStringSelection(name);
m_colourChoice->SetStringSelection(name);
else
colourChoice->SetStringSelection(wxT("BLACK"));
m_colourChoice->SetStringSelection(wxT("BLACK"));
}
if (underLineCheckBox)
if (m_underLineCheckBox)
{
underLineCheckBox->SetValue(dialogFont.GetUnderlined());
m_underLineCheckBox->SetValue(m_dialogFont.GetUnderlined());
}
#if USE_SPINCTRL_FOR_POINT_SIZE
spinCtrl->SetValue(dialogFont.GetPointSize());
spinCtrl->SetValue(m_dialogFont.GetPointSize());
#else
pointSizeChoice = (wxChoice*) FindWindow(wxID_FONT_SIZE);
pointSizeChoice->SetSelection(dialogFont.GetPointSize()-1);
m_pointSizeChoice = (wxChoice*) FindWindow(wxID_FONT_SIZE);
m_pointSizeChoice->SetSelection(m_dialogFont.GetPointSize()-1);
#endif
#if !defined(__SMARTPHONE__) && !defined(__POCKETPC__)
GetSizer()->SetItemMinSize(m_previewer, is_pda ? 100 : 430, is_pda ? 40 : 100);
GetSizer()->SetSizeHints(this);
GetSizer()->Fit(this);
GetSizer()->Fit(this);
Centre(wxBOTH);
#endif
@@ -469,44 +467,49 @@ void wxGenericFontDialog::InitializeFont()
fontUnderline = m_fontData.m_initialFont.GetUnderlined();
}
dialogFont = wxFont(fontSize, fontFamily, fontStyle,
fontWeight, fontUnderline);
m_dialogFont = wxFont(fontSize, fontFamily, fontStyle,
fontWeight, fontUnderline);
if (m_previewer)
m_previewer->SetFont(dialogFont);
m_previewer->SetFont(m_dialogFont);
}
void wxGenericFontDialog::OnChangeFont(wxCommandEvent& WXUNUSED(event))
{
DoChangeFont();
}
void wxGenericFontDialog::DoChangeFont()
{
if (!m_useEvents) return;
int fontFamily = wxFontFamilyStringToInt(WXSTRINGCAST familyChoice->GetStringSelection());
int fontWeight = wxFontWeightStringToInt(WXSTRINGCAST weightChoice->GetStringSelection());
int fontStyle = wxFontStyleStringToInt(WXSTRINGCAST styleChoice->GetStringSelection());
int fontFamily = wxFontFamilyStringToInt(WXSTRINGCAST m_familyChoice->GetStringSelection());
int fontWeight = wxFontWeightStringToInt(WXSTRINGCAST m_weightChoice->GetStringSelection());
int fontStyle = wxFontStyleStringToInt(WXSTRINGCAST m_styleChoice->GetStringSelection());
#if USE_SPINCTRL_FOR_POINT_SIZE
wxSpinCtrl* fontSizeCtrl = wxDynamicCast(FindWindow(wxID_FONT_SIZE), wxSpinCtrl);
int fontSize = fontSizeCtrl->GetValue();
#else
int fontSize = wxAtoi(pointSizeChoice->GetStringSelection());
int fontSize = wxAtoi(m_pointSizeChoice->GetStringSelection());
#endif
// Start with previous underline setting, we want to retain it even if we can't edit it
// dialogFont is always initialized because of the call to InitializeFont
int fontUnderline = dialogFont.GetUnderlined();
// m_dialogFont is always initialized because of the call to InitializeFont
int fontUnderline = m_dialogFont.GetUnderlined();
if (underLineCheckBox)
if (m_underLineCheckBox)
{
fontUnderline = underLineCheckBox->GetValue();
fontUnderline = m_underLineCheckBox->GetValue();
}
dialogFont = wxFont(fontSize, fontFamily, fontStyle, fontWeight, (fontUnderline != 0));
m_previewer->SetFont(dialogFont);
m_dialogFont = wxFont(fontSize, fontFamily, fontStyle, fontWeight, (fontUnderline != 0));
m_previewer->SetFont(m_dialogFont);
if ( colourChoice )
if ( m_colourChoice )
{
if ( !colourChoice->GetStringSelection().empty() )
if ( !m_colourChoice->GetStringSelection().empty() )
{
wxColour col = wxTheColourDatabase->Find(colourChoice->GetStringSelection());
wxColour col = wxTheColourDatabase->Find(m_colourChoice->GetStringSelection());
if (col.Ok())
{
m_fontData.m_fontColour = col;
@@ -517,108 +520,106 @@ void wxGenericFontDialog::OnChangeFont(wxCommandEvent& WXUNUSED(event))
// (EnableEffects may be false)
if (m_fontData.m_fontColour.Ok())
m_previewer->SetForegroundColour(m_fontData.m_fontColour);
m_previewer->Refresh();
}
#if USE_SPINCTRL_FOR_POINT_SIZE
void wxGenericFontDialog::OnChangeSize(wxSpinEvent& WXUNUSED(event))
{
wxCommandEvent cmdEvent;
OnChangeFont(cmdEvent);
DoChangeFont();
}
#endif
const wxChar *wxFontWeightIntToString(int weight)
{
switch (weight)
{
case wxLIGHT:
return wxT("Light");
case wxBOLD:
return wxT("Bold");
case wxNORMAL:
default:
return wxT("Normal");
}
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");
}
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");
}
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 (!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;
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;
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;
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