#if wxUSE_HTML
#include "wx/html/helpfrm.h"
+#include "wx/helpbase.h"
-class WXDLLEXPORT wxHtmlHelpController : public wxEvtHandler
+class WXDLLEXPORT wxHtmlHelpController : public wxHelpControllerBase // wxEvtHandler
{
DECLARE_DYNAMIC_CLASS(wxHtmlHelpController)
virtual void ReadCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString);
virtual void WriteCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString);
+ //// Backward compatibility with wxHelpController API
+
+ virtual bool Initialize(const wxString& file, int WXUNUSED(server) ) { return Initialize(file); }
+ virtual bool Initialize(const wxString& file);
+ virtual void SetViewer(const wxString& WXUNUSED(viewer), long WXUNUSED(flags) = 0) {}
+ virtual bool LoadFile(const wxString& file = "");
+ virtual bool DisplaySection(int sectionNo);
+ virtual bool DisplayBlock(long blockNo) { return DisplaySection(blockNo); }
+ virtual void SetFrameParameters(const wxString& title,
+ const wxSize& size,
+ const wxPoint& pos = wxDefaultPosition,
+ bool newFrameEachTime = FALSE);
+ /// Obtains the latest settings used by the help frame and the help
+ /// frame.
+ virtual wxFrame *GetFrameParameters(wxSize *size = NULL,
+ wxPoint *pos = NULL,
+ bool *newFrameEachTime = NULL);
+ virtual bool Quit() ;
+ virtual void OnQuit() {};
+
+ void OnCloseFrame(wxCloseEvent& evt);
protected:
virtual wxHtmlHelpFrame* CreateHelpFrame(wxHtmlHelpData *data);
virtual void CreateHelpWindow();
virtual void DestroyHelpWindow();
- void OnCloseFrame(wxCloseEvent& evt);
- wxHtmlHelpData m_helpData;
- wxHtmlHelpFrame* m_helpFrame;
- wxConfigBase *m_Config;
- wxString m_ConfigRoot;
- wxString m_titleFormat;
- int m_FrameStyle;
- DECLARE_EVENT_TABLE()
+ wxHtmlHelpData m_helpData;
+ wxHtmlHelpFrame* m_helpFrame;
+ wxConfigBase * m_Config;
+ wxString m_ConfigRoot;
+ wxString m_titleFormat;
+ int m_FrameStyle;
+ // DECLARE_EVENT_TABLE()
};
#endif
wxHtmlHelpFrameCfg;
+class WXDLLEXPORT wxHelpControllerBase;
class WXDLLEXPORT wxHtmlHelpFrame : public wxFrame
{
~wxHtmlHelpFrame();
wxHtmlHelpData* GetData() { return m_Data; }
+ wxHelpControllerBase* GetController() const { return m_helpController; }
+ void SetController(wxHelpControllerBase* controller) { m_helpController = controller; }
void SetTitleFormat(const wxString& format);
// Sets format of title of the frame. Must contain exactly one "%s"
wxHtmlEasyPrinting *m_Printer;
#endif
wxHashTable *m_PagesHash;
+ wxHelpControllerBase* m_helpController;
DECLARE_EVENT_TABLE()
};
#include "wx/wx.h"
#include "wx/busyinfo.h"
-IMPLEMENT_DYNAMIC_CLASS(wxHtmlHelpController, wxEvtHandler)
+IMPLEMENT_DYNAMIC_CLASS(wxHtmlHelpController, wxHelpControllerBase)
+#if 0
BEGIN_EVENT_TABLE(wxHtmlHelpController, wxEvtHandler)
EVT_CLOSE(wxHtmlHelpController::OnCloseFrame)
END_EVENT_TABLE()
+#endif
wxHtmlHelpController::wxHtmlHelpController(int style)
{
m_helpFrame->Destroy();
}
-void wxHtmlHelpController::OnCloseFrame(wxCloseEvent& evt)
+void wxHtmlHelpController::OnCloseFrame(wxCloseEvent& evt)
{
- evt.Skip();
+ evt.Skip();
- m_helpFrame = NULL;
-}
+ OnQuit();
+ m_helpFrame->SetController((wxHelpControllerBase*) NULL);
+ m_helpFrame = NULL;
+}
void wxHtmlHelpController::SetTitleFormat(const wxString& title)
{
}
m_helpFrame = CreateHelpFrame(&m_helpData);
- m_helpFrame->PushEventHandler(this);
+ m_helpFrame->SetController(this);
+// m_helpFrame->PushEventHandler(this);
if (m_Config)
m_helpFrame->UseConfig(m_Config, m_ConfigRoot);
ReadCustomization(config, rootpath);
}
+//// Backward compatibility with wxHelpController API
+
+bool wxHtmlHelpController::Initialize(const wxString& file)
+{
+ wxString dir, filename, ext;
+ wxSplitPath(file, & dir, & filename, & ext);
+
+ if (!dir.IsEmpty())
+ dir = dir + wxString(_("/"));
+
+ // Try to find a suitable file
+ wxString actualFilename = dir + filename + wxString(_(".zip"));
+ if (!wxFileExists(actualFilename))
+ {
+ actualFilename = dir + filename + wxString(_(".htb"));
+ if (!wxFileExists(actualFilename))
+ {
+ actualFilename = dir + filename + wxString(_(".hhp"));
+ if (!wxFileExists(actualFilename))
+ return FALSE;
+ }
+ }
+
+ return AddBook(actualFilename);
+}
+
+bool wxHtmlHelpController::LoadFile(const wxString& WXUNUSED(file))
+{
+ // Don't reload the file or we'll have it appear again, presumably.
+ return TRUE;
+}
+
+bool wxHtmlHelpController::DisplaySection(int sectionNo)
+{
+ return Display(sectionNo);
+}
+
+void wxHtmlHelpController::SetFrameParameters(const wxString& title,
+ const wxSize& size,
+ const wxPoint& pos,
+ bool WXUNUSED(newFrameEachTime))
+{
+ SetTitleFormat(title);
+ if (m_helpFrame)
+ {
+ m_helpFrame->SetSize(pos.x, pos.y, size.x, size.y);
+ }
+}
+
+wxFrame* wxHtmlHelpController::GetFrameParameters(wxSize *size,
+ wxPoint *pos,
+ bool *newFrameEachTime)
+{
+ if (newFrameEachTime)
+ (* newFrameEachTime) = FALSE;
+ if (size && m_helpFrame)
+ (* size) = m_helpFrame->GetSize();
+ if (pos && m_helpFrame)
+ (* pos) = m_helpFrame->GetPosition();
+ return m_helpFrame;
+}
+
+bool wxHtmlHelpController::Quit()
+{
+ DestroyHelpWindow();
+ return TRUE;
+}
+
#endif
#endif
#include "wx/html/helpfrm.h"
+#include "wx/html/helpctrl.h"
#include "wx/notebook.h"
#include "wx/imaglist.h"
#include "wx/treectrl.h"
m_PagesHash = NULL;
m_UpdateContents = TRUE;
+ m_helpController = (wxHelpControllerBase*) NULL;
}
// Create: builds the GUI components.
wxHtmlHelpFrame::~wxHtmlHelpFrame()
{
- PopEventHandler(); // wxhtmlhelpcontroller
+ // PopEventHandler(); // wxhtmlhelpcontroller (not any more!)
delete m_ContentsImageList;
if (m_DataCreated)
delete m_Data;
wxProgressDialog progress(_("Searching..."), _("No matching page found yet"),
status.GetMaxIndex(), this,
- wxPD_APP_MODAL | wxPD_CAN_ABORT | wxPD_AUTO_HIDE | wxGA_SMOOTH);
+ wxPD_APP_MODAL | wxPD_CAN_ABORT | wxPD_AUTO_HIDE);
while (status.IsActive()) {
curi = status.GetCurIndex();
if (m_Config)
WriteCustomization(m_Config, m_ConfigRoot);
+ if (m_helpController && m_helpController->IsKindOf(CLASSINFO(wxHtmlHelpController)))
+ {
+ ((wxHtmlHelpController*) m_helpController)->OnCloseFrame(evt);
+ }
+
evt.Skip();
}