add more flexible and safer template Connect() overloads (#10000)
[wxWidgets.git] / src / os2 / helpwin.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/os2/helpwin.cpp
3 // Purpose: Help system: native implementation
4 // Author: David Webster
5 // Modified by:
6 // Created: 10/09/99
7 // RCS-ID: $Id$
8 // Copyright: (c) David Webster
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 // For compilers that support precompilation, includes "wx.h".
13 #include "wx/wxprec.h"
14
15 #if wxUSE_HELP
16
17 #ifndef WX_PRECOMP
18 #endif
19
20 #include "wx/os2/helpwin.h"
21
22 #include <time.h>
23
24 #include "wx/os2/private.h"
25
26 #include <string.h>
27
28 // MAX path length
29 #define _MAXPATHLEN 500
30
31 // MAX length of Help descriptor
32 #define _MAX_HELP_LEN 500
33
34 IMPLEMENT_DYNAMIC_CLASS(wxWinHelpController, wxHelpControllerBase)
35
36 wxWinHelpController::wxWinHelpController()
37 {
38 m_helpFile = wxEmptyString;
39 }
40
41 wxWinHelpController::~wxWinHelpController()
42 {
43 }
44
45 bool wxWinHelpController::Initialize(const wxString& filename)
46 {
47 m_helpFile = filename;
48 // TODO any other inits
49 return true;
50 }
51
52 bool wxWinHelpController::LoadFile(const wxString& file)
53 {
54 m_helpFile = file;
55 // TODO
56 return true;
57 }
58
59 bool wxWinHelpController::DisplayContents()
60 {
61 if (m_helpFile.empty())
62 return false;
63
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('.')))
67 str += wxT(".hlp");
68
69 if (wxTheApp->GetTopWindow())
70 {
71 // TODO : display the help
72 return true;
73 }
74 return false;
75 }
76
77 bool wxWinHelpController::DisplaySection(int WXUNUSED(section))
78 {
79 // Use context number
80 if (m_helpFile.empty())
81 return false;
82
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('.')))
86 str += wxT(".hlp");
87
88 if (wxTheApp->GetTopWindow())
89 {
90 // TODO ::
91 // WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const wxChar*) str, HELP_CONTEXT, (DWORD)section);
92 return true;
93 }
94
95 return false;
96 }
97
98 bool wxWinHelpController::DisplayBlock(long WXUNUSED(block))
99 {
100 // Use context number -- a very rough equivalent to block id!
101 if (m_helpFile.empty())
102 return false;
103
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('.')))
107 str += wxT(".hlp");
108
109 if (wxTheApp->GetTopWindow())
110 {
111 // TODO:
112 // WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const wxChar*) str, HELP_CONTEXT, (DWORD)block);
113 return true;
114 }
115 return false;
116 }
117
118 bool wxWinHelpController::KeywordSearch(const wxString& WXUNUSED(k),
119 wxHelpSearchMode WXUNUSED(mode))
120 {
121 if (m_helpFile == wxEmptyString) return false;
122
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('.')))
126 str += wxT(".hlp");
127
128 if (wxTheApp->GetTopWindow())
129 {
130 // TODO:
131 // WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const wxChar*) str, HELP_PARTIALKEY, (DWORD)(const wxChar*) k);
132 return true;
133 }
134 return false;
135 }
136
137 // Can't close the help window explicitly in WinHelp
138 bool wxWinHelpController::Quit()
139 {
140 if (wxTheApp->GetTopWindow())
141 {
142 // TODO:
143 // WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), 0, HELP_QUIT, 0L);
144 return true;
145 }
146
147 return false;
148 }
149
150 void wxWinHelpController::OnQuit()
151 {
152 }
153
154 #endif // wxUSE_HELP