1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/os2/helpwin.cpp
3 // Purpose: Help system: native implementation
4 // Author: David Webster
8 // Copyright: (c) David Webster
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 // For compilers that support precompilation, includes "wx.h".
13 #include "wx/wxprec.h"
20 #include "wx/os2/helpwin.h"
24 #include "wx/os2/private.h"
29 #define _MAXPATHLEN 500
31 // MAX length of Help descriptor
32 #define _MAX_HELP_LEN 500
34 IMPLEMENT_DYNAMIC_CLASS(wxWinHelpController, wxHelpControllerBase)
36 wxWinHelpController::wxWinHelpController()
38 m_helpFile = wxEmptyString;
41 wxWinHelpController::~wxWinHelpController()
45 bool wxWinHelpController::Initialize(const wxString& filename)
47 m_helpFile = filename;
48 // TODO any other inits
52 bool wxWinHelpController::LoadFile(const wxString& file)
59 bool wxWinHelpController::DisplayContents()
61 if (m_helpFile.empty())
64 wxString str = m_helpFile;
65 size_t len = str.length();
66 if (!(str[(size_t)(len-1)] == wxT('p') && str[(size_t)(len-2)] == wxT('l') && str[(size_t)(len-3)] == wxT('h') && str[(size_t)(len-4)] == wxT('.')))
69 if (wxTheApp->GetTopWindow())
71 // TODO : display the help
77 bool wxWinHelpController::DisplaySection(int WXUNUSED(section))
80 if (m_helpFile.empty())
83 wxString str = m_helpFile;
84 size_t len = str.length();
85 if (!(str[(size_t)(len-1)] == wxT('p') && str[(size_t)(len-2)] == wxT('l') && str[(size_t)(len-3)] == wxT('h') && str[(size_t)(len-4)] == wxT('.')))
88 if (wxTheApp->GetTopWindow())
91 // WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const wxChar*) str, HELP_CONTEXT, (DWORD)section);
98 bool wxWinHelpController::DisplayBlock(long WXUNUSED(block))
100 // Use context number -- a very rough equivalent to block id!
101 if (m_helpFile.empty())
104 wxString str = m_helpFile;
105 size_t len = str.length();
106 if (!(str[(size_t)(len-1)] == wxT('p') && str[(size_t)(len-2)] == wxT('l') && str[(size_t)(len-3)] == wxT('h') && str[(size_t)(len-4)] == wxT('.')))
109 if (wxTheApp->GetTopWindow())
112 // WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const wxChar*) str, HELP_CONTEXT, (DWORD)block);
118 bool wxWinHelpController::KeywordSearch(const wxString& WXUNUSED(k),
119 wxHelpSearchMode WXUNUSED(mode))
121 if (m_helpFile == wxEmptyString) return false;
123 wxString str = m_helpFile;
124 size_t len = str.length();
125 if (!(str[(size_t)(len-1)] == wxT('p') && str[(size_t)(len-2)] == wxT('l') && str[(size_t)(len-3)] == wxT('h') && str[(size_t)(len-4)] == wxT('.')))
128 if (wxTheApp->GetTopWindow())
131 // WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const wxChar*) str, HELP_PARTIALKEY, (DWORD)(const wxChar*) k);
137 // Can't close the help window explicitly in WinHelp
138 bool wxWinHelpController::Quit()
140 if (wxTheApp->GetTopWindow())
143 // WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), 0, HELP_QUIT, 0L);
150 void wxWinHelpController::OnQuit()