// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
-#pragma implementation "helpctrl.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#include "wx/html/helpctrl.h"
#include "wx/busyinfo.h"
+#ifdef __WXGTK__
+ // for the hack in AddGrabIfNeeded()
+ #include "wx/dialog.h"
+#endif // __WXGTK__
+
#if wxUSE_HELP
-#include "wx/tipwin.h"
+ #include "wx/tipwin.h"
+#endif
+
+
+#if wxUSE_LIBMSPACK
+#include "wx/html/forcelnk.h"
+FORCE_LINK(wxhtml_chm_support)
#endif
IMPLEMENT_DYNAMIC_CLASS(wxHtmlHelpController, wxHelpControllerBase)
-wxHtmlHelpController::wxHtmlHelpController(int style)
+wxHtmlHelpController::wxHtmlHelpController(int style, wxWindow* parentWindow):
+ wxHelpControllerBase(parentWindow)
{
m_helpFrame = NULL;
m_Config = NULL;
}
+bool wxHtmlHelpController::AddBook(const wxFileName& book_file, bool show_wait_msg)
+{
+ return AddBook(wxFileSystem::FileNameToURL(book_file), show_wait_msg);
+}
+
bool wxHtmlHelpController::AddBook(const wxString& book, bool show_wait_msg)
{
wxBusyCursor cur;
#if wxUSE_BUSYINFO
if (show_wait_msg)
delete busy;
+#else
+ wxUnusedVar(show_wait_msg);
#endif
- if (m_helpFrame)
+ if (m_helpFrame)
m_helpFrame->RefreshLists();
return retval;
}
if (m_Config == NULL)
{
- m_Config = wxConfigBase::Get(FALSE);
+ m_Config = wxConfigBase::Get(false);
if (m_Config != NULL)
m_ConfigRoot = _T("wxWindows/wxHtmlHelpController");
}
if (m_Config)
m_helpFrame->UseConfig(m_Config, m_ConfigRoot);
- m_helpFrame->Create(NULL, wxID_HTML_HELPFRAME, wxEmptyString, m_FrameStyle);
+ m_helpFrame->Create(GetParentWindow(), wxID_HTML_HELPFRAME, wxEmptyString, m_FrameStyle);
m_helpFrame->SetTitleFormat(m_titleFormat);
- m_helpFrame->Show(TRUE);
+
+ m_helpFrame->Show(true);
}
void wxHtmlHelpController::ReadCustomization(wxConfigBase* cfg, const wxString& path)
wxString dir, filename, ext;
wxSplitPath(file, & dir, & filename, & ext);
- if (!dir.IsEmpty())
- dir = dir + wxString(wxT("/"));
+ if (!dir.empty())
+ dir = dir + wxFILE_SEP_PATH;
// Try to find a suitable file
wxString actualFilename = dir + filename + wxString(wxT(".zip"));
{
actualFilename = dir + filename + wxString(wxT(".hhp"));
if (!wxFileExists(actualFilename))
- return FALSE;
+ {
+#if wxUSE_LIBMSPACK
+ actualFilename = dir + filename + wxString(wxT(".chm"));
+ if (!wxFileExists(actualFilename))
+#endif
+ return false;
+ }
}
}
-
- return AddBook(actualFilename);
+ return AddBook(wxFileName(actualFilename));
}
bool wxHtmlHelpController::LoadFile(const wxString& WXUNUSED(file))
{
// Don't reload the file or we'll have it appear again, presumably.
- return TRUE;
+ return true;
}
bool wxHtmlHelpController::DisplaySection(int sectionNo)
{
s_tipWindow = new wxTipWindow(wxTheApp->GetTopWindow(), text, 100, & s_tipWindow);
- return TRUE;
+ return true;
}
+#else
+ wxUnusedVar(text);
#endif // wxUSE_TIPWINDOW
- return FALSE;
+ return false;
}
void wxHtmlHelpController::SetFrameParameters(const wxString& title,
bool *newFrameEachTime)
{
if (newFrameEachTime)
- (* newFrameEachTime) = FALSE;
+ (* newFrameEachTime) = false;
if (size && m_helpFrame)
(* size) = m_helpFrame->GetSize();
if (pos && m_helpFrame)
bool wxHtmlHelpController::Quit()
{
DestroyHelpWindow();
- return TRUE;
+ return true;
}
// Make the help controller's frame 'modal' if
{
// So far, wxGTK only
#ifdef __WXGTK__
- bool needGrab = FALSE;
-
+ bool needGrab = false;
+
// Check if there are any modal windows present,
// in which case we need to add a grab.
- for ( wxWindowList::Node * node = wxTopLevelWindows.GetFirst();
+ for ( wxWindowList::compatibility_iterator node = wxTopLevelWindows.GetFirst();
node;
node = node->GetNext() )
{
wxDialog *dialog = wxDynamicCast(win, wxDialog);
if (dialog && dialog->IsModal())
- needGrab = TRUE;
+ needGrab = true;
}
if (needGrab && m_helpFrame)
m_helpFrame->AddGrab();
-#endif
+#endif // __WXGTK__
}
bool wxHtmlHelpController::Display(const wxString& x)
CreateHelpWindow();
bool success = m_helpFrame->Display(x);
AddGrabIfNeeded();
- return success;
+ return success;
}
bool wxHtmlHelpController::Display(int id)
return success;
}
-bool wxHtmlHelpController::KeywordSearch(const wxString& keyword)
+bool wxHtmlHelpController::KeywordSearch(const wxString& keyword,
+ wxHelpSearchMode mode)
{
CreateHelpWindow();
- bool success = m_helpFrame->KeywordSearch(keyword);
+ bool success = m_helpFrame->KeywordSearch(keyword, mode);
AddGrabIfNeeded();
return success;
}