X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/20a8b34e2c6d43140cb8b38482536a49ed7e0e7a..e531b73f8910b3dcb2457bb74eb3723f2d516f5f:/src/generic/helpwxht.cpp diff --git a/src/generic/helpwxht.cpp b/src/generic/helpwxht.cpp index 2dc02e2b10..0ee358cc5d 100644 --- a/src/generic/helpwxht.cpp +++ b/src/generic/helpwxht.cpp @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: helpext.cpp -// Purpose: an external help controller for wxWindows +// Name: helpwxht.cpp +// Purpose: A help controller using the wxHTML classes // Author: Karsten Ballueder // Modified by: // Created: 04/01/98 @@ -19,14 +19,16 @@ # pragma hdrstop #endif -#if wxUSE_HTML +#if wxUSE_WXHTML_HELP #ifndef WX_PRECOMP -# include "wx/string.h" -# include "wx/utils.h" -# include "wx/list.h" -# include "wx/intl.h" -# include "wx/layout.h" + #include "wx/string.h" + #include "wx/utils.h" + #include "wx/list.h" + #include "wx/intl.h" + #include "wx/layout.h" + #include "wx/combobox.h" + #include "wx/button.h" #endif #include "wx/helpbase.h" @@ -35,12 +37,18 @@ #include #include +#ifndef __MWERKS__ #include +#endif -#ifndef __WINDOWS__ +#if !defined(__WINDOWS__) && !defined(__OS2__) # include #endif +#ifdef __WXMAC__ + #include "wx/mac/private.h" +#endif + IMPLEMENT_CLASS(wxHelpControllerHtml, wxHTMLHelpControllerBase) /** @@ -52,22 +60,22 @@ IMPLEMENT_CLASS(wxHelpControllerHtml, wxHTMLHelpControllerBase) class wxForceHtmlFilter : public wxHtmlFilter { public: - virtual wxString ReadFile(const wxFSFile& file) + virtual wxString ReadFile(const wxFSFile& file) const { wxInputStream *s = file.GetStream(); char *src; wxString doc; if (s == NULL) return wxEmptyString; - src = new char[s -> StreamSize()+1]; - src[s -> StreamSize()] = 0; - s -> Read(src, s -> StreamSize()); + src = new char[s -> GetSize()+1]; + src[s -> GetSize()] = 0; + s -> Read(src, s -> GetSize()); doc = src; delete [] src; return doc; } - - virtual bool CanRead(const wxFSFile& file) + + virtual bool CanRead(const wxFSFile& file) const { wxString filename = file.GetLocation(); if(filename.Length() >= 5 && @@ -127,7 +135,7 @@ wxHelpFrame::OnButton(wxCommandEvent &ev) else if(id == m_IdSearch) { wxString str = m_combo->GetValue(); - if(m_combo->FindString(str) == -1 && m_combo->Number() < MAX_COMBO_ENTRIES) + if(m_combo->FindString(str) == -1 && m_combo->GetCount() < MAX_COMBO_ENTRIES) m_combo->Append(str); m_controller->KeywordSearch(str); } @@ -155,7 +163,7 @@ wxHelpFrame::wxHelpFrame(wxWindow *parent, int id, wxButton *btn_contents = new wxButton(this, m_IdContents, _("Contents")); m_combo = new wxComboBox(this, m_IdCombo); wxButton *btn_search = new wxButton(this, m_IdSearch, _("Search")); - + m_filter = new wxForceHtmlFilter; wxLayoutConstraints *c; @@ -173,7 +181,7 @@ wxHelpFrame::wxHelpFrame(wxWindow *parent, int id, c->top.SameAs(this, wxTop, 2*LAYOUT_Y_MARGIN); c->height.AsIs(); btn_fwd->SetConstraints(c); - + c = new wxLayoutConstraints; c->left.SameAs(btn_fwd, wxRight, 2*LAYOUT_X_MARGIN); c->width.Absolute(BUTTON_WIDTH); @@ -204,11 +212,18 @@ wxHelpFrame::wxHelpFrame(wxWindow *parent, int id, m_htmlwin->SetConstraints(c); SetAutoLayout(TRUE); CreateStatusBar(); - + m_htmlwin->SetRelatedFrame(this, title); m_htmlwin->SetRelatedStatusBar(0); m_htmlwin->AddFilter(m_filter); +#ifdef __WXMOTIF__ + // Motif needs a nudge to get it to resize properly + // when shown + wxSizeEvent event(size, GetId()); + GetEventHandler()->ProcessEvent(event); +#endif + Show(TRUE); } @@ -217,7 +232,7 @@ wxHelpFrame::~wxHelpFrame() } void -wxHelpFrame::OnClose(wxCloseEvent &ev) +wxHelpFrame::OnClose(wxCloseEvent &WXUNUSED(ev)) { wxASSERT(m_controller); m_controller->m_Frame = NULL; @@ -256,12 +271,16 @@ wxHelpControllerHtml::~wxHelpControllerHtml(void) #endif bool -wxHelpControllerHtml::DisplayHelp(wxString const &relativeURL) +wxHelpControllerHtml::DisplayHelp(const wxString &relativeURL) { wxBusyCursor b; // display a busy cursor wxString url; - url << m_MapFile << SEP<< relativeURL; + wxString mapfileurl = m_MapFile ; +#if defined(__WXMAC__) && !defined(__DARWIN__) + mapfileurl = wxMac2UnixFilename(m_MapFile) ; +#endif + url << mapfileurl << SEP<< relativeURL; if(! m_Frame || m_NewFrameEachTime) { m_Frame = new wxHelpFrame(NULL, -1, m_FrameTitle, @@ -293,14 +312,16 @@ wxHelpControllerHtml::SetFrameParameters(const wxString &title, m_NewFrameEachTime = newFrame; } -void -wxHelpControllerHtml::GetFrameParameters(wxSize *size = NULL, - wxPoint *pos = NULL, - bool *newframe = NULL) +wxFrame * +wxHelpControllerHtml::GetFrameParameters(wxSize *size, + wxPoint *pos, + bool *newframe) { if(size) *size = m_FrameSize; if(pos) *pos = m_FramePosition; if(newframe) *newframe = m_NewFrameEachTime; + return m_Frame; } -#endif // wxUSE_HTML +#endif // wxUSE_WXHTML_HELP +