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