/////////////////////////////////////////////////////////////////////////////
-// Name: helpwin.cpp
+// Name: src/msw/helpwin.cpp
// Purpose: Help system: WinHelp implementation
// Author: Julian Smart
// Modified by:
// Created: 04/01/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "helpwin.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
-#pragma hdrstop
+ #pragma hdrstop
#endif
+#if wxUSE_HELP
+
#ifndef WX_PRECOMP
-#include "wx/defs.h"
#endif
-#if wxUSE_HELP
-
-#include "wx/filefn.h"
+#include "wx/filename.h"
#include "wx/msw/helpwin.h"
#include <time.h>
#include <string.h>
-static HWND GetSuitableHWND()
+static HWND GetSuitableHWND(wxWinHelpController* controller)
{
- if (wxTheApp->GetTopWindow())
+ if (controller->GetParentWindow())
+ return (HWND) controller->GetParentWindow()->GetHWND();
+ else if (wxTheApp->GetTopWindow())
return (HWND) wxTheApp->GetTopWindow()->GetHWND();
else
return GetDesktopWindow();
bool wxWinHelpController::Initialize(const wxString& filename)
{
m_helpFile = filename;
- return TRUE;
+ return true;
}
bool wxWinHelpController::LoadFile(const wxString& file)
{
- if (!file.IsEmpty())
+ if (!file.empty())
m_helpFile = file;
- return TRUE;
+ return true;
}
bool wxWinHelpController::DisplayContents(void)
{
- if (m_helpFile.IsEmpty()) return FALSE;
-
+ if (m_helpFile.empty()) return false;
+
wxString str = GetValidFilename(m_helpFile);
-
-#if defined(__WIN95__)
- return (WinHelp(GetSuitableHWND(), (const wxChar*) str, HELP_FINDER, 0L) != 0);
-#else
- return (WinHelp(GetSuitableHWND(), (const wxChar*) str, HELP_CONTENTS, 0L) != 0);
-#endif
+
+ return (WinHelp(GetSuitableHWND(this), str.t_str(), HELP_FINDER, 0L) != 0);
}
bool wxWinHelpController::DisplaySection(int section)
{
// Use context number
- if (m_helpFile.IsEmpty()) return FALSE;
-
+ if (m_helpFile.empty()) return false;
+
wxString str = GetValidFilename(m_helpFile);
- return (WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const wxChar*) str, HELP_CONTEXT, (DWORD)section) != 0);
+ return (WinHelp(GetSuitableHWND(this), str.t_str(), HELP_CONTEXT, (DWORD)section) != 0);
}
bool wxWinHelpController::DisplayContextPopup(int contextId)
{
- if (m_helpFile.IsEmpty()) return FALSE;
-
+ if (m_helpFile.empty()) return false;
+
wxString str = GetValidFilename(m_helpFile);
- return (WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const wxChar*) str, HELP_CONTEXTPOPUP, (DWORD) contextId) != 0);
+ return (WinHelp(GetSuitableHWND(this), str.t_str(), HELP_CONTEXTPOPUP, (DWORD) contextId) != 0);
}
bool wxWinHelpController::DisplayBlock(long block)
{
DisplaySection(block);
- return TRUE;
+ return true;
}
-bool wxWinHelpController::KeywordSearch(const wxString& k)
+bool wxWinHelpController::KeywordSearch(const wxString& k,
+ wxHelpSearchMode WXUNUSED(mode))
{
- if (m_helpFile.IsEmpty()) return FALSE;
-
+ if (m_helpFile.empty()) return false;
+
wxString str = GetValidFilename(m_helpFile);
-
- return (WinHelp(GetSuitableHWND(), (const wxChar*) str, HELP_PARTIALKEY, (DWORD)(const wxChar*) k) != 0);
+
+ return WinHelp(GetSuitableHWND(this), str.t_str(), HELP_PARTIALKEY,
+ (ULONG_PTR)wxMSW_CONV_LPCTSTR(k)) != 0;
}
// Can't close the help window explicitly in WinHelp
bool wxWinHelpController::Quit(void)
{
- return (WinHelp(GetSuitableHWND(), 0, HELP_QUIT, 0L) != 0);
+ return WinHelp(GetSuitableHWND(this), 0, HELP_QUIT, 0) != 0;
}
// Append extension if necessary.
wxString wxWinHelpController::GetValidFilename(const wxString& file) const
{
wxString path, name, ext;
- wxSplitPath(file, & path, & name, & ext);
+ wxFileName::SplitPath(file, & path, & name, & ext);
wxString fullName;
- if (path.IsEmpty())
+ if (path.empty())
fullName = name + wxT(".hlp");
else if (path.Last() == wxT('\\'))
fullName = path + name + wxT(".hlp");