- public:
- wxComboBox *NormalFont, *FixedFont;
- wxRadioButton *SFI_i, *SFI_s, *FFI_i, *FFI_s;
- wxRadioBox *RadioBox;
- wxHtmlWindow *TestWin;
-
- wxHtmlHelpFrameOptionsDialog(wxWindow *parent) : wxDialog(parent, -1, wxString(_("Help Browser Options")))
- {
- wxString choices[3] = {_("small"), _("medium"), _("large")};
- wxString choices2[2] = {_("italic"), _("slant")};
- wxBoxSizer *topsizer, *sizer, *sizer2, *sizer3;
-
- topsizer = new wxBoxSizer(wxVERTICAL);
-
- sizer = new wxBoxSizer(wxHORIZONTAL);
-
- sizer2 = new wxBoxSizer(wxVERTICAL);
- sizer2 -> Add(new wxStaticText(this, -1, _("Normal font:")),
- 0, wxLEFT | wxTOP, 10);
- sizer2 -> Add(NormalFont = new wxComboBox(this, -1, wxEmptyString, wxDefaultPosition,
- wxSize(200, 200),
- 0, NULL, wxCB_DROPDOWN | wxCB_READONLY),
- 1, wxEXPAND | wxLEFT | wxRIGHT, 10);
-
- sizer3 = new wxBoxSizer(wxHORIZONTAL);
- sizer3 -> Add(SFI_i = new wxRadioButton(this, -1, _("use italic"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP),
- 1, wxEXPAND, 0);
- sizer3 -> Add(SFI_s = new wxRadioButton(this, -1, _("use slant"), wxDefaultPosition, wxDefaultSize, 0),
- 1, wxEXPAND, 0);
- sizer2 -> Add(sizer3, 0, wxEXPAND | wxLEFT | wxRIGHT, 10);
-
- sizer -> Add(sizer2, 0, wxEXPAND | wxLEFT | wxRIGHT, 10);
-
- sizer2 = new wxBoxSizer(wxVERTICAL);
- sizer2 -> Add(new wxStaticText(this, -1, _("Fixed font:")),
- 0, wxLEFT | wxTOP, 10);
- sizer2 -> Add(FixedFont = new wxComboBox(this, -1, wxEmptyString, wxDefaultPosition,
- wxSize(200, 200),
- 0, NULL, wxCB_DROPDOWN | wxCB_READONLY),
- 1, wxEXPAND | wxLEFT | wxRIGHT, 10);
-
- sizer3 = new wxBoxSizer(wxHORIZONTAL);
- sizer3 -> Add(FFI_i = new wxRadioButton(this, -1, _("use italic"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP),
- 1, wxEXPAND, 0);
- sizer3 -> Add(FFI_s = new wxRadioButton(this, -1, _("use slant"), wxDefaultPosition, wxDefaultSize, 0),
- 1, wxEXPAND, 0);
- sizer2 -> Add(sizer3, 0, wxEXPAND | wxLEFT | wxRIGHT, 10);
-
- sizer -> Add(sizer2, 0, wxEXPAND | wxLEFT | wxRIGHT, 10);
-
- topsizer -> Add(sizer);
-
- topsizer -> Add(RadioBox = new wxRadioBox(this, -1, _("Font size:"),
- wxDefaultPosition, wxDefaultSize, 3, choices, 3),
- 0, wxEXPAND | wxLEFT | wxRIGHT, 10);
-
- topsizer -> Add(new wxStaticText(this, -1, _("Preview:")),
- 0, wxLEFT | wxTOP, 10);
- topsizer -> Add(TestWin = new wxHtmlWindow(this, -1, wxDefaultPosition, wxSize(-1, 150)),
- 1, wxEXPAND | wxLEFT | wxTOP, 10);
-
- sizer = new wxBoxSizer(wxHORIZONTAL);
- sizer -> Add(new wxButton(this, wxID_OK, _("OK")), 0, wxALL, 10);
- sizer -> Add(new wxButton(this, wxID_CANCEL, _("Cancel")), 0, wxALL, 10);
- topsizer -> Add(sizer, 0, wxALIGN_RIGHT);
-
- SetAutoLayout(TRUE);
- SetSizer(topsizer);
- topsizer -> Fit(this);
- Centre(wxBOTH);
- }
-
-
- void UpdateTestWin()
- {
- wxBusyCursor bcur;
- SetFontsToHtmlWin(TestWin,
- NormalFont -> GetStringSelection(), SFI_i -> GetValue() ? wxITALIC : wxSLANT,
- FixedFont -> GetStringSelection(), FFI_i -> GetValue() ? wxITALIC : wxSLANT,
- RadioBox -> GetSelection());
- TestWin -> SetPage(_("<html><body>"
- "Normal face<br>(and <u>underlined</u>. <i>Italic face.</i> "
- "<b>Bold face.</b> <b><i>Bold italic face.</i></b><br>"
- "<font size=-2>font size -2</font><br>"
- "<font size=-1>font size -1</font><br>"
- "<font size=+0>font size +0</font><br>"
- "<font size=+1>font size +1</font><br>"
- "<font size=+2>font size +2</font><br>"
- "<font size=+3>font size +3</font><br>"
- "<font size=+4>font size +4</font><br>"
-
- "<p><tt>Fixed size face.<br> <b>bold</b> <i>italic</i> "
- "<b><i>bold italic <u>underlined</u></i></b></tt><br>"
- "<font size=-2>font size -2</font><br>"
- "<font size=-1>font size -1</font><br>"
- "<font size=+0>font size +0</font><br>"
- "<font size=+1>font size +1</font><br>"
- "<font size=+2>font size +2</font><br>"
- "<font size=+3>font size +3</font><br>"
- "<font size=+4>font size +4</font>"
- "</body></html>"));
- }
-
- void OnUpdate(wxCloseEvent& event)
- {
- UpdateTestWin();
- }
-
- DECLARE_EVENT_TABLE()
-};
-
-BEGIN_EVENT_TABLE(wxHtmlHelpFrameOptionsDialog, wxDialog)
- EVT_COMBOBOX(-1, wxHtmlHelpFrameOptionsDialog::OnUpdate)
- EVT_RADIOBOX(-1, wxHtmlHelpFrameOptionsDialog::OnUpdate)
- EVT_RADIOBUTTON(-1, wxHtmlHelpFrameOptionsDialog::OnUpdate)
-END_EVENT_TABLE()
-
-
-void wxHtmlHelpFrame::OptionsDialog()
-{
- wxHtmlHelpFrameOptionsDialog dlg(this);
- unsigned i;
-
- if (m_NormalFonts == NULL) {
- wxFontEnumerator enu;
- enu.EnumerateFacenames();
- m_NormalFonts = new wxArrayString;
- *m_NormalFonts = *enu.GetFacenames();
- m_NormalFonts -> Sort();
- }
- if (m_FixedFonts == NULL) {
- wxFontEnumerator enu;
- enu.EnumerateFacenames(wxFONTENCODING_SYSTEM, TRUE);
- m_FixedFonts = new wxArrayString;
- *m_FixedFonts = *enu.GetFacenames();
- m_FixedFonts -> Sort();
- }
-
- for (i = 0; i < m_NormalFonts -> GetCount(); i++)
- dlg.NormalFont -> Append((*m_NormalFonts)[i]);
- for (i = 0; i < m_FixedFonts -> GetCount(); i++)
- dlg.FixedFont -> Append((*m_FixedFonts)[i]);
- if (!m_NormalFace.IsEmpty()) dlg.NormalFont -> SetStringSelection(m_NormalFace);
- else dlg.NormalFont -> SetSelection(0);
- if (!m_FixedFace.IsEmpty()) dlg.FixedFont -> SetStringSelection(m_FixedFace);
- else dlg.FixedFont -> SetSelection(0);
- dlg.RadioBox -> SetSelection(m_FontSize);
- dlg.SFI_i -> SetValue(m_NormalItalic == wxITALIC);
- dlg.SFI_s -> SetValue(m_NormalItalic == wxSLANT);
- dlg.FFI_i -> SetValue(m_FixedItalic == wxITALIC);
- dlg.FFI_s -> SetValue(m_FixedItalic == wxSLANT);
- dlg.UpdateTestWin();
-
- if (dlg.ShowModal() == wxID_OK) {
- m_NormalFace = dlg.NormalFont -> GetStringSelection();
- m_FixedFace = dlg.FixedFont -> GetStringSelection();
- m_FontSize = dlg.RadioBox -> GetSelection();
- m_NormalItalic = dlg.SFI_i -> GetValue() ? wxITALIC : wxSLANT;
- m_FixedItalic = dlg.FFI_i -> GetValue() ? wxITALIC : wxSLANT;
- SetFontsToHtmlWin(m_HtmlWin, m_NormalFace, m_NormalItalic, m_FixedFace, m_FixedItalic, m_FontSize);
- }
-}
-
-
-
-
-
-/*
-EVENT HANDLING :
-*/