|
|
1.1 root 1: /*==============================================================*\
2: * img_help.c - routines for the help manager interface
3: * Created 1989, 1990 IBM, Microsoft Corp.
4: *--------------------------------------------------------------
5: *
6: * This module contains all the routines for interfacing with
7: * the IPF help manager.
8: *
9: *--------------------------------------------------------------
10: *
11: * This source file contains the following functions:
12: *
13: * HelpInit()
14: * HelpHelpForHelp(mp2)
15: * HelpExtended(mp2)
16: * HelpIndex(mp2)
17: * HelpAbout(mp2)
18: * HelpDestroyInstance()
19: *
20: \*==============================================================*/
21:
22: /*--------------------------------------------------------------*\
23: * Include files, macros, defined constants, and externs
24: \*--------------------------------------------------------------*/
25:
26: #define INCL_WINHELP
27: #define INCL_WINDIALOGS
28:
29: #include <os2.h>
30: #include <string.h>
31: #include "img_main.h"
32: #include "img_xtrn.h"
33: #include "img_dlg.h"
34: #include "img_help.h"
35:
36: #define HELPLIBRARYNAMELEN 20
37:
38: /*--------------------------------------------------------------*\
39: * Global variables
40: \*--------------------------------------------------------------*/
41: static HWND hwndHelpInstance;
42:
43: #ifdef HELP_MANAGER_ENABLED
44:
45: /****************************************************************\
46: * Routine for initializing the help manager
47: *--------------------------------------------------------------
48: *
49: * Name: HelpInit()
50: *
51: * Purpose: Initializes the IPF help facility
52: *
53: * Usage: Called once during initialization of the program
54: *
55: * Method: Initializes the HELPINIT structure and creates the
56: * help instance. If successful, the help instance
57: * is associated with the main window
58: *
59: * Returns:
60: *
61: \****************************************************************/
62: VOID HelpInit(VOID)
63: {
64: HELPINIT hini;
65: CHAR szLibName[HELPLIBRARYNAMELEN];
66: CHAR szWindowTitle[HELPLIBRARYNAMELEN];
67:
68: /* inititalize help init structure */
69: hini.cb = sizeof(HELPINIT);
70: hini.ulReturnCode = NULL;
71:
72: hini.pszTutorialName = (PSZ)NULL; /* if tutorial added, add name here */
73:
74: hini.phtHelpTable = (PHELPTABLE)(0xFFFF0000 | IMAGE_HELP_TABLE);
75: hini.hmodHelpTableModule = NULL;
76: hini.hmodAccelActionBarModule = NULL;
77: hini.idAccelTable = NULL;
78: hini.idActionBar = NULL;
79: #ifdef DEBUG
80: hini.usShowPanelId = CMIC_SHOW_PANEL_ID;
81: #else
82: hini.usShowPanelId = CMIC_HIDE_PANEL_ID;
83: #endif
84:
85: if (!WinLoadString(vhab,
86: NULL,
87: IDS_HELPWINDOWTITLE,
88: HELPLIBRARYNAMELEN,
89: (PSZ)szWindowTitle)) {
90:
91: MessageBox(vhwndFrame, IDMSG_CANNOTLOADSTRING, 0,
92: MB_OK | MB_ERROR, FALSE);
93: return;
94: }
95: hini.pszHelpWindowTitle = (PSZ)szWindowTitle;
96:
97: if (!WinLoadString(vhab,
98: NULL,
99: IDS_HELPLIBRARYNAME,
100: HELPLIBRARYNAMELEN,
101: (PSZ)szLibName)) {
102:
103: MessageBox(vhwndFrame, IDMSG_CANNOTLOADSTRING, 0,
104: MB_OK | MB_ERROR, FALSE);
105: return;
106: }
107: hini.pszHelpLibraryName = (PSZ)szLibName;
108:
109:
110: /* creating help instance */
111: hwndHelpInstance = WinCreateHelpInstance(vhab, &hini);
112:
113: if (!hwndHelpInstance || hini.ulReturnCode) {
114: MessageBox(vhwndFrame, IDMSG_HELPLOADERROR, 0,
115: MB_OK | MB_ERROR, FALSE);
116: return;
117: }
118:
119: /* associate help instance with main frame */
120: if (!WinAssociateHelpInstance(hwndHelpInstance, vhwndFrame)) {
121: MessageBox(vhwndFrame, IDMSG_HELPLOADERROR, 0,
122: MB_OK | MB_ERROR, FALSE);
123: return;
124: }
125:
126: /* set flag to enable Help menu items */
127: vfHelpEnabled = TRUE;
128:
129: } /* HelpInit() */
130:
131:
132: /****************************************************************\
133: * Processes the Help for Help command from the menu bar
134: *--------------------------------------------------------------
135: *
136: * Name: HelpHelpForHelp(mp2)
137: *
138: * Purpose: Processes the WM_COMMAND message posted by the
139: * Help for Help item of the Help menu
140: *
141: * Usage: Called from MainCommand when the Help for Help
142: * menu item is selected
143: *
144: * Method: Sends an HM_DISPLAY_HELP message to the help
145: * instance so that the default Help For Help is
146: * displayed.
147: *
148: * Returns:
149: *
150: \****************************************************************/
151: VOID HelpHelpForHelp(mp2)
152: MPARAM mp2; /* second parameter of WM_COMMAND message */
153: {
154:
155: /* this just displays the system help for help panel */
156: if (WinSendMsg(hwndHelpInstance, HM_DISPLAY_HELP, NULL, NULL))
157: MessageBox(vhwndFrame, IDMSG_HELPDISPLAYERROR, 0,
158: MB_OK | MB_ERROR, FALSE);
159:
160: /* This routine currently doesn't use the mp2 parameter but *\
161: * it is referenced here to prevent an 'Unreferenced Parameter'
162: \* warning at compile time. */
163: mp2;
164:
165: } /* HelpHelpForHelp() */
166:
167:
168: /****************************************************************\
169: * Processes the Extended Help command from the menu bar
170: *--------------------------------------------------------------
171: *
172: * Name: HelpExtended(mp2)
173: *
174: * Purpose: Processes the WM_COMMAND message posted by the
175: * Extended Help item of the Help menu
176: *
177: * Usage: Called from MainCommand when the Extended Help
178: * menu item is selected
179: *
180: * Method: Sends an HM_EXT_HELP message to the help
181: * instance so that the default Extended Help is
182: * displayed.
183: *
184: * Returns:
185: *
186: \****************************************************************/
187: VOID HelpExtended(mp2)
188: MPARAM mp2; /* second parameter of WM_COMMAND message */
189: {
190:
191: /* this just displays the system extended help panel */
192: if (WinSendMsg(hwndHelpInstance, HM_EXT_HELP, NULL, NULL))
193: MessageBox(vhwndFrame, IDMSG_HELPDISPLAYERROR, 0,
194: MB_OK | MB_ERROR, FALSE);
195:
196: /* This routine currently doesn't use the mp2 parameter but *\
197: * it is referenced here to prevent an 'Unreferenced Parameter'
198: \* warning at compile time. */
199: mp2;
200:
201: } /* HelpExtended() */
202:
203: /****************************************************************\
204: * Processes the Index Help command from the menu bar
205: *--------------------------------------------------------------
206: *
207: * Name: HelpIndex(mp2)
208: *
209: * Purpose: Processes the WM_COMMAND message posted by the
210: * Index Help item of the Help menu
211: *
212: * Usage: Called from MainCommand when the Index Help
213: * menu item is selected
214: *
215: * Method: Sends an HM_INDEX_HELP message to the help
216: * instance so that the default Index Help is
217: * displayed.
218: *
219: * Returns:
220: *
221: \****************************************************************/
222: VOID HelpIndex(mp2)
223: MPARAM mp2; /* second parameter of WM_COMMAND message */
224: {
225:
226: /* this just displays the system help index panel */
227: if (WinSendMsg(hwndHelpInstance, HM_HELP_INDEX, NULL, NULL))
228: MessageBox(vhwndFrame, IDMSG_HELPDISPLAYERROR, 0,
229: MB_OK | MB_ERROR, FALSE);
230:
231: /* This routine currently doesn't use the mp2 parameter but *\
232: * it is referenced here to prevent an 'Unreferenced Parameter'
233: \* warning at compile time. */
234: mp2;
235:
236: } /* HelpIndex() */
237:
238: /****************************************************************\
239: * Destroys the help instance
240: *--------------------------------------------------------------
241: *
242: * Name: HelpDestroyInstance(VOID)
243: *
244: * Purpose: Destroys the help instance for the application
245: *
246: * Usage: Called during Exit List processing
247: *
248: * Method: Calls WinDestroyHelpInstance() to destroy the
249: * help instance
250: *
251: * Returns:
252: *
253: \****************************************************************/
254: VOID HelpDestroyInstance(VOID)
255: {
256:
257: if(hwndHelpInstance) {
258: WinDestroyHelpInstance(hwndHelpInstance);
259: }
260: vfHelpEnabled = FALSE;
261:
262: } /* HelpDestroyInstance() */
263:
264: #endif
265:
266: /****************************************************************\
267: * Processes the About command from the Help menu *
268: *--------------------------------------------------------------*
269: * *
270: * Name: HelpAbout() *
271: * *
272: * Purpose: Processes the WM_COMMAND message posted by the *
273: * About item of the Help menu *
274: * *
275: * Usage: Called from MainCommand when the About *
276: * menu item is selected *
277: * *
278: * Method: Calls WinDlgBox to display the about box dialog. *
279: * *
280: * Returns: *
281: * *
282: \****************************************************************/
283: VOID HelpAbout()
284: {
285:
286: WinDlgBox(vhwndClient, vhwndClient, AboutBoxDlgProc, NULL,
287: IDD_ABOUTBOX, (PVOID)NULL);
288:
289: /* This routine currently doesn't use the mp2 parameter but *\
290: * it is referenced here to prevent an 'Unreferenced Parameter' *
291: \* warning at compile time. */
292:
293: } /* HelpAbout() */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.