/////////////////////////////////////////////////////////////////////////////
-// 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
# 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"
#include <stdio.h>
#include <ctype.h>
+#ifndef __MWERKS__
#include <sys/stat.h>
+#endif
-#ifndef __WINDOWS__
+#if !defined(__WINDOWS__) && !defined(__OS2__)
# include <unistd.h>
#endif
+#ifdef __WXMAC__
+ #include "wx/mac/private.h"
+#endif
+
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 &&
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);
}
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;
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);
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);
}
wxHelpFrame::~wxHelpFrame()
{
- delete m_filter;
}
void
-wxHelpFrame::OnClose(wxCloseEvent &ev)
+wxHelpFrame::OnClose(wxCloseEvent &WXUNUSED(ev))
{
wxASSERT(m_controller);
m_controller->m_Frame = NULL;
#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,
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
+