home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2002 February
/
Chip_2002-02_cd1.bin
/
sharewar
/
apaths
/
APSOURCE.ZIP
/
EditHelp.c
< prev
next >
Wrap
C/C++ Source or Header
|
2001-03-26
|
4KB
|
140 lines
/* EditHelp - March 26th, 2001
**
** Copyright (c) 1997-2001 by Gregory Braun. All rights reserved.
**
** This function opens and displays a dialog box allowing the user
** to edit a specific Help registry entry.
**
** Called: w = window handle of the parent.
** help = a pointer to the HELP data structure.
**
** Returns: TRUE upon success, or FALSE if an error exists,
** or the user pressed the [Cancel] key.
*/
#include "AppPaths.h"
#define PATH_MSG "Specify the folder location of this help file"
#define MISSING_NAME "Help file name missing.\r\r" \
"Help file registry keys require a help file name.\r" \
"Please specify a file name for this registry entry."
#define MISSING_PATH "Folder name missing.\r\r" \
"Help file registry keys require a folder name.\r" \
"Please specify a folder path for this registry entry."
static HELP tmp; // just in case the user cancels.
static BOOL CALLBACK dialog (HWND dlg,UINT msg,WPARAM wp,LPARAM lp);
static BOOL initiate (HWND dlg,LPHELP tmp);
static BOOL verify (HWND dlg,LPHELP tmp);
static BOOL folder (HWND dlg,LPHELP tmp);
extern BOOL far EditHelp (HWND w,LPHELP help)
{
tmp = *help;
if (!DialogBoxParam (applet,(LPCSTR) HELP_DLG,w,(DLGPROC) dialog,(LPARAM) &tmp))
return (FALSE);
*help = tmp;
return (TRUE);
}
static BOOL CALLBACK dialog (HWND dlg,UINT msg,WPARAM wp,LPARAM lp)
{
auto int item = LOWORD (wp);
switch (msg) {
case WM_INITDIALOG :
return (initiate (dlg,(LPHELP) lp));
break;
case WM_HELP :
HelpTip (dlg,((LPHELPINFO) lp)->iCtrlId);
break;
case WM_COMMAND :
switch (item) {
case HELP_PATH_BTN :
folder (dlg,&tmp);
break;
case HELP_HELP_BTN :
HelpTopic (dlg,HELP_DLG);
break;
case IDOK :
if (verify (dlg,&tmp))
EndDialog (dlg,TRUE);
return (TRUE);
break;
case IDCANCEL :
EndDialog (dlg,FALSE);
return (TRUE);
break;
}
break;
}
return (FALSE);
}
static BOOL initiate (HWND dlg,LPHELP tmp)
{
SetDlgIcon (dlg,APPLICATION_ICON);
SetDlgItemSize (dlg,HELP_NAME_TXT,PSTRING);
SetDlgItemText (dlg,HELP_NAME_TXT,tmp->name);
SetDlgItemSize (dlg,HELP_PATH_TXT,PSTRING);
SetDlgItemText (dlg,HELP_PATH_TXT,tmp->path);
return (TRUE);
}
static BOOL verify (HWND dlg,LPHELP tmp)
{
GetDlgItemText (dlg,HELP_NAME_TXT,tmp->name,PSTRING);
GetDlgItemText (dlg,HELP_PATH_TXT,tmp->path,PSTRING);
if (!*tmp->name) {
Message (dlg,NULL,MISSING_NAME);
return (SetDFocus (dlg,HELP_NAME_TXT));
}
if (!*tmp->path) {
Message (dlg,NULL,MISSING_PATH);
return (SetDFocus (dlg,HELP_PATH_TXT));
}
return (TRUE);
}
static BOOL folder (HWND dlg,LPHELP tmp)
{
GetDlgItemText (dlg,HELP_PATH_TXT,tmp->path,PSTRING);
if (!PickPath (dlg,PATH_MSG,tmp->path))
return (FALSE);
SetDlgItemText (dlg,HELP_PATH_TXT,tmp->path);
return (TRUE);
}
/* end of EditHelp.c - written by Gregory Braun */