Files
wxWidgets/src/msw/helpwin.cpp
Julian Smart 2432b92dd7 Doc & Symantec C++ fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1325 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-01-07 08:43:47 +00:00

149 lines
3.3 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: helpwin.cpp
// Purpose: Help system: WinHelp implementation
// Author: Julian Smart
// Modified by:
// Created: 04/01/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart and Markus Holzem
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "helpwin.h"
#endif
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/defs.h"
#endif
#include "wx/msw/helpwin.h"
#if wxUSE_HELP
#include <time.h>
#ifdef __WXMSW__
#include <wx/msw/private.h>
#endif
#include <string.h>
// MAX path length
#define _MAXPATHLEN 500
// MAX length of Help descriptor
#define _MAX_HELP_LEN 500
#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxWinHelpController, wxHelpControllerBase)
#endif
wxWinHelpController::wxWinHelpController(void)
{
m_helpFile = "";
}
wxWinHelpController::~wxWinHelpController(void)
{
}
bool wxWinHelpController::Initialize(const wxString& filename)
{
m_helpFile = filename;
return TRUE;
}
bool wxWinHelpController::LoadFile(const wxString& file)
{
m_helpFile = file;
return TRUE;
}
bool wxWinHelpController::DisplayContents(void)
{
if (m_helpFile == "") return FALSE;
char buf[_MAXPATHLEN];
strcpy(buf, (const char*) m_helpFile);
size_t len = strlen(buf);
if (!(buf[len-1] == 'p' && buf[len-2] == 'l' && buf[len-3] == 'h' && buf[len-4] == '.'))
strcat(buf, ".hlp");
if (wxTheApp->GetTopWindow())
{
#if defined(__WIN95__)
WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), buf, HELP_FINDER, 0L);
#else
WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), buf, HELP_CONTENTS, 0L);
#endif
return TRUE;
}
return FALSE;
}
bool wxWinHelpController::DisplaySection(int section)
{
// No WinHelp equivalent for this
return FALSE;
}
bool wxWinHelpController::DisplayBlock(long block)
{
// Use context number -- a very rough equivalent to block id!
if (m_helpFile == "") return FALSE;
char buf[_MAXPATHLEN];
strcpy(buf, m_helpFile);
size_t len = strlen(buf);
if (!(buf[len-1] == 'p' && buf[len-2] == 'l' && buf[len-3] == 'h' && buf[len-4] == '.'))
strcat(buf, ".hlp");
if (wxTheApp->GetTopWindow())
{
WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), buf, HELP_CONTEXT, (DWORD)block);
return TRUE;
}
return FALSE;
}
bool wxWinHelpController::KeywordSearch(const wxString& k)
{
if (m_helpFile == "") return FALSE;
char buf[_MAXPATHLEN];
strcpy(buf, m_helpFile);
size_t len = strlen(buf);
if (!(buf[len-1] == 'p' && buf[len-2] == 'l' && buf[len-3] == 'h' && buf[len-4] == '.'))
strcat(buf, ".hlp");
if (wxTheApp->GetTopWindow())
{
WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), buf, HELP_PARTIALKEY, (DWORD)(const char*) k);
return TRUE;
}
return FALSE;
}
// Can't close the help window explicitly in WinHelp
bool wxWinHelpController::Quit(void)
{
if (wxTheApp->GetTopWindow())
{
WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), 0, HELP_QUIT, 0L);
return TRUE;
}
else
return FALSE;
}
// Don't get notified of WinHelp quitting
void wxWinHelpController::OnQuit(void)
{
}
#endif // wxUSE_HELP