X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fbd90401960caefef23b4fafc34e36bf7969363e..f9007c324c9b4f6288156dcf0b865090ee0c0c38:/src/html/helpfrm.cpp diff --git a/src/html/helpfrm.cpp b/src/html/helpfrm.cpp index 4e1c99dcc4..5191e19ecd 100644 --- a/src/html/helpfrm.cpp +++ b/src/html/helpfrm.cpp @@ -35,6 +35,11 @@ #include "wx/radiobox.h" #endif // WXPRECOMP +#ifdef __WXMAC__ + #include "wx/menu.h" + #include "wx/msgdlg.h" +#endif + #include "wx/html/helpfrm.h" #include "wx/html/helpctrl.h" #include "wx/textctrl.h" @@ -108,11 +113,15 @@ class wxHtmlHelpHtmlWindow : public wxHtmlWindow virtual void OnLinkClicked(const wxHtmlLinkInfo& link) { wxHtmlWindow::OnLinkClicked(link); - m_Frame->NotifyPageChanged(); + const wxMouseEvent *e = link.GetEvent(); + if (e == NULL || e->LeftUp()) + m_Frame->NotifyPageChanged(); } private: wxHtmlHelpFrame *m_Frame; + + DECLARE_NO_COPY_CLASS(wxHtmlHelpHtmlWindow) }; @@ -250,6 +259,25 @@ bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id, SetIcon(wxArtProvider::GetIcon(wxART_HELP, wxART_HELP_BROWSER)); + // On the Mac, each modeless frame must have a menubar. + // TODO: add more menu items, and perhaps add a style to show + // the menubar: compulsory on the Mac, optional elsewhere. +#ifdef __WXMAC__ + wxMenuBar* menuBar = new wxMenuBar; + + wxMenu* fileMenu = new wxMenu; + fileMenu->Append(wxID_HTML_OPENFILE, _("&Open...")); + fileMenu->AppendSeparator(); + fileMenu->Append(wxID_CLOSE, _("&Close")); + + wxMenu* helpMenu = new wxMenu; + helpMenu->Append(wxID_ABOUT, _("&About...")); + + menuBar->Append(fileMenu,_("File")); + menuBar->Append(helpMenu,_("Help")); + SetMenuBar(menuBar); +#endif + int notebook_page = 0; CreateStatusBar(); @@ -878,10 +906,15 @@ void wxHtmlHelpFrame::WriteCustomization(wxConfigBase *cfg, const wxString& path cfg->Write(wxT("hcNavigPanel"), m_Cfg.navig_on); cfg->Write(wxT("hcSashPos"), (long)m_Cfg.sashpos); - cfg->Write(wxT("hcX"), (long)m_Cfg.x); - cfg->Write(wxT("hcY"), (long)m_Cfg.y); - cfg->Write(wxT("hcW"), (long)m_Cfg.w); - cfg->Write(wxT("hcH"), (long)m_Cfg.h); + if ( !IsIconized() ) + { + // Don't write if iconized as this would make the window + // disappear next time it is shown! + cfg->Write(wxT("hcX"), (long)m_Cfg.x); + cfg->Write(wxT("hcY"), (long)m_Cfg.y); + cfg->Write(wxT("hcW"), (long)m_Cfg.w); + cfg->Write(wxT("hcH"), (long)m_Cfg.h); + } cfg->Write(wxT("hcFixedFace"), m_FixedFace); cfg->Write(wxT("hcNormalFace"), m_NormalFace); cfg->Write(wxT("hcBaseFontSize"), (long)m_FontSize); @@ -1015,13 +1048,18 @@ Normal face
(and underlined. Italic face. \ { UpdateTestWin(); } + void OnUpdateSpin(wxSpinEvent& WXUNUSED(event)) + { + UpdateTestWin(); + } DECLARE_EVENT_TABLE() + DECLARE_NO_COPY_CLASS(wxHtmlHelpFrameOptionsDialog) }; BEGIN_EVENT_TABLE(wxHtmlHelpFrameOptionsDialog, wxDialog) EVT_COMBOBOX(-1, wxHtmlHelpFrameOptionsDialog::OnUpdate) - EVT_SPINCTRL(-1, wxHtmlHelpFrameOptionsDialog::OnUpdate) + EVT_SPINCTRL(-1, wxHtmlHelpFrameOptionsDialog::OnUpdateSpin) END_EVENT_TABLE() @@ -1120,8 +1158,12 @@ void wxHtmlHelpFrame::OnActivate(wxActivateEvent& event) { // This saves one mouse click when using the // wxHTML for context sensitive help systems +#ifndef __WXGTK__ + // NB: wxActivateEvent is a bit broken in wxGTK + // and is sometimes sent when it should not be if (event.GetActive() && m_HtmlWin) m_HtmlWin->SetFocus(); +#endif event.Skip(); } @@ -1481,6 +1523,19 @@ void wxHtmlHelpFrame::OnCloseWindow(wxCloseEvent& evt) evt.Skip(); } +#ifdef __WXMAC__ +void wxHtmlHelpFrame::OnClose(wxCommandEvent& event) +{ + Close(TRUE); +} + +void wxHtmlHelpFrame::OnAbout(wxCommandEvent& event) +{ + wxMessageBox(wxT("wxWindows HTML Help Viewer (c) 1998-2003, Vaclav Slavik et al"), wxT("HelpView"), + wxICON_INFORMATION|wxOK, this); +} +#endif + BEGIN_EVENT_TABLE(wxHtmlHelpFrame, wxFrame) EVT_ACTIVATE(wxHtmlHelpFrame::OnActivate) EVT_TOOL_RANGE(wxID_HTML_PANEL, wxID_HTML_OPTIONS, wxHtmlHelpFrame::OnToolbar) @@ -1496,6 +1551,11 @@ BEGIN_EVENT_TABLE(wxHtmlHelpFrame, wxFrame) EVT_BUTTON(wxID_HTML_INDEXBUTTONALL, wxHtmlHelpFrame::OnIndexAll) EVT_COMBOBOX(wxID_HTML_BOOKMARKSLIST, wxHtmlHelpFrame::OnBookmarksSel) EVT_CLOSE(wxHtmlHelpFrame::OnCloseWindow) +#ifdef __WXMAC__ + EVT_MENU(wxID_CLOSE, wxHtmlHelpFrame::OnClose) + EVT_MENU(wxID_ABOUT, wxHtmlHelpFrame::OnAbout) +#endif + END_EVENT_TABLE() #endif // wxUSE_WXHTML_HELP