menu went off the display. Now a wxSpinCtrl is used. Also fixed the preview
window in PDA mode (was invisible).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37779
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
#include "wx/dialog.h"
#include "wx/cmndata.h"
#include "wx/dialog.h"
#include "wx/cmndata.h"
+#ifdef __WXWINCE__
+#define USE_SPINCTRL_FOR_POINT_SIZE 1
+class WXDLLEXPORT wxSpinEvent;
+#else
+#define USE_SPINCTRL_FOR_POINT_SIZE 0
+#endif
+
void OnChangeFont(wxCommandEvent& event);
void OnChangeFont(wxCommandEvent& event);
+#if USE_SPINCTRL_FOR_POINT_SIZE
+ void OnChangeSize(wxSpinEvent& event);
+#endif
+
protected:
// common part of all ctors
void Init();
protected:
// common part of all ctors
void Init();
wxChoice *weightChoice;
wxChoice *colourChoice;
wxCheckBox *underLineCheckBox;
wxChoice *weightChoice;
wxChoice *colourChoice;
wxCheckBox *underLineCheckBox;
+
+#if !USE_SPINCTRL_FOR_POINT_SIZE
wxChoice *pointSizeChoice;
wxChoice *pointSizeChoice;
wxFontPreviewer *m_previewer;
bool m_useEvents;
wxFontPreviewer *m_previewer;
bool m_useEvents;
#include "wx/generic/fontdlgg.h"
#include "wx/settings.h"
#include "wx/generic/fontdlgg.h"
#include "wx/settings.h"
+#if USE_SPINCTRL_FOR_POINT_SIZE
+#include "wx/spinctrl.h"
+#endif
+
//-----------------------------------------------------------------------------
// helper class - wxFontPreviewer
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// helper class - wxFontPreviewer
//-----------------------------------------------------------------------------
EVT_CHOICE(wxID_FONT_WEIGHT, wxGenericFontDialog::OnChangeFont)
EVT_CHOICE(wxID_FONT_FAMILY, wxGenericFontDialog::OnChangeFont)
EVT_CHOICE(wxID_FONT_COLOUR, wxGenericFontDialog::OnChangeFont)
EVT_CHOICE(wxID_FONT_WEIGHT, wxGenericFontDialog::OnChangeFont)
EVT_CHOICE(wxID_FONT_FAMILY, wxGenericFontDialog::OnChangeFont)
EVT_CHOICE(wxID_FONT_COLOUR, wxGenericFontDialog::OnChangeFont)
+#if USE_SPINCTRL_FOR_POINT_SIZE
+ EVT_SPINCTRL(wxID_FONT_SIZE, wxGenericFontDialog::OnChangeSize)
+ EVT_TEXT(wxID_FONT_SIZE, wxGenericFontDialog::OnChangeFont)
+#else
EVT_CHOICE(wxID_FONT_SIZE, wxGenericFontDialog::OnChangeFont)
EVT_CHOICE(wxID_FONT_SIZE, wxGenericFontDialog::OnChangeFont)
EVT_CLOSE(wxGenericFontDialog::OnCloseWindow)
END_EVENT_TABLE()
EVT_CLOSE(wxGenericFontDialog::OnCloseWindow)
END_EVENT_TABLE()
weights[1] = _("Light");
weights[2] = _("Bold");
weights[1] = _("Light");
weights[2] = _("Bold");
+#if !USE_SPINCTRL_FOR_POINT_SIZE
wxString *pointSizes = new wxString[40];
int i;
for ( i = 0; i < 40; i++)
wxString *pointSizes = new wxString[40];
int i;
for ( i = 0; i < 40; i++)
wxSprintf(buf, wxT("%d"), i + 1);
pointSizes[i] = buf;
}
wxSprintf(buf, wxT("%d"), i + 1);
pointSizes[i] = buf;
}
wxStaticText* itemStaticText18 = new wxStaticText( this, wxID_STATIC, _("&Point size:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer17->Add(itemStaticText18, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
wxStaticText* itemStaticText18 = new wxStaticText( this, wxID_STATIC, _("&Point size:"), wxDefaultPosition, wxDefaultSize, 0 );
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);
+ 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 );
itemChoice19->SetHelpText(_("The font point size."));
if (ShowToolTips())
itemChoice19->SetToolTip(_("The font point size."));
itemBoxSizer17->Add(itemChoice19, 0, wxALIGN_LEFT|wxALL, 5);
wxChoice* itemChoice19 = new wxChoice( this, wxID_FONT_SIZE, wxDefaultPosition, wxDefaultSize, 40, pointSizes, 0 );
itemChoice19->SetHelpText(_("The font point size."));
if (ShowToolTips())
itemChoice19->SetToolTip(_("The font point size."));
itemBoxSizer17->Add(itemChoice19, 0, wxALIGN_LEFT|wxALL, 5);
if (m_fontData.GetEnableEffects())
{
if (m_fontData.GetEnableEffects())
{
itemWindow24->SetHelpText(_("Shows the font preview."));
if (ShowToolTips())
itemWindow24->SetToolTip(_("Shows the font preview."));
itemWindow24->SetHelpText(_("Shows the font preview."));
if (ShowToolTips())
itemWindow24->SetToolTip(_("Shows the font preview."));
- itemBoxSizer3->Add(itemWindow24, 0, wxGROW|wxALL, 5);
+ itemBoxSizer3->Add(itemWindow24, 1, wxGROW|wxALL, 5);
wxBoxSizer* itemBoxSizer25 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer3->Add(itemBoxSizer25, 0, wxGROW, 5);
wxBoxSizer* itemBoxSizer25 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer3->Add(itemBoxSizer25, 0, wxGROW, 5);
styleChoice = (wxChoice*) FindWindow(wxID_FONT_STYLE);
weightChoice = (wxChoice*) FindWindow(wxID_FONT_WEIGHT);
colourChoice = (wxChoice*) FindWindow(wxID_FONT_COLOUR);
styleChoice = (wxChoice*) FindWindow(wxID_FONT_STYLE);
weightChoice = (wxChoice*) FindWindow(wxID_FONT_WEIGHT);
colourChoice = (wxChoice*) FindWindow(wxID_FONT_COLOUR);
- pointSizeChoice = (wxChoice*) FindWindow(wxID_FONT_SIZE);
underLineCheckBox = (wxCheckBox*) FindWindow(wxID_FONT_UNDERLINE);
familyChoice->SetStringSelection( wxFontFamilyIntToString(dialogFont.GetFamily()) );
underLineCheckBox = (wxCheckBox*) FindWindow(wxID_FONT_UNDERLINE);
familyChoice->SetStringSelection( wxFontFamilyIntToString(dialogFont.GetFamily()) );
underLineCheckBox->SetValue(dialogFont.GetUnderlined());
}
underLineCheckBox->SetValue(dialogFont.GetUnderlined());
}
+#if USE_SPINCTRL_FOR_POINT_SIZE
+ spinCtrl->SetValue(dialogFont.GetPointSize());
+#else
+ pointSizeChoice = (wxChoice*) FindWindow(wxID_FONT_SIZE);
pointSizeChoice->SetSelection(dialogFont.GetPointSize()-1);
pointSizeChoice->SetSelection(dialogFont.GetPointSize()-1);
#if !defined(__SMARTPHONE__) && !defined(__POCKETPC__)
GetSizer()->SetItemMinSize(m_previewer, is_pda ? 100 : 430, is_pda ? 40 : 100);
#if !defined(__SMARTPHONE__) && !defined(__POCKETPC__)
GetSizer()->SetItemMinSize(m_previewer, is_pda ? 100 : 430, is_pda ? 40 : 100);
delete[] families;
delete[] styles;
delete[] weights;
delete[] families;
delete[] styles;
delete[] weights;
+#if !USE_SPINCTRL_FOR_POINT_SIZE
// Don't block events any more
m_useEvents = true;
// Don't block events any more
m_useEvents = true;
int fontFamily = wxFontFamilyStringToInt(WXSTRINGCAST familyChoice->GetStringSelection());
int fontWeight = wxFontWeightStringToInt(WXSTRINGCAST weightChoice->GetStringSelection());
int fontStyle = wxFontStyleStringToInt(WXSTRINGCAST styleChoice->GetStringSelection());
int fontFamily = wxFontFamilyStringToInt(WXSTRINGCAST familyChoice->GetStringSelection());
int fontWeight = wxFontWeightStringToInt(WXSTRINGCAST weightChoice->GetStringSelection());
int fontStyle = wxFontStyleStringToInt(WXSTRINGCAST 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(pointSizeChoice->GetStringSelection());
// 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();
// 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_previewer->Refresh();
}
m_previewer->Refresh();
}
+#if USE_SPINCTRL_FOR_POINT_SIZE
+void wxGenericFontDialog::OnChangeSize(wxSpinEvent& WXUNUSED(event))
+{
+ wxCommandEvent cmdEvent;
+ OnChangeFont(cmdEvent);
+}
+#endif
+
const wxChar *wxFontWeightIntToString(int weight)
{
switch (weight)
const wxChar *wxFontWeightIntToString(int weight)
{
switch (weight)