456 lines
16 KiB
C
456 lines
16 KiB
C
/*
|
|
* CDE - Common Desktop Environment
|
|
*
|
|
* Copyright (c) 1993-2012, The Open Group. All rights reserved.
|
|
*
|
|
* These libraries and programs are free software; you can
|
|
* redistribute them and/or modify them under the terms of the GNU
|
|
* Lesser General Public License as published by the Free Software
|
|
* Foundation; either version 2 of the License, or (at your option)
|
|
* any later version.
|
|
*
|
|
* These libraries and programs are distributed in the hope that
|
|
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
* PURPOSE. See the GNU Lesser General Public License for more
|
|
* details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with these libraries and programs; if not, write
|
|
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
|
* Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
/* $XConsortium: HelpUtilI.h /main/5 1995/10/26 12:26:30 rswiston $ */
|
|
/*************************************<+>*************************************
|
|
*****************************************************************************
|
|
**
|
|
** File: HelpUtilI.h
|
|
**
|
|
** Project: Rivers Project,
|
|
**
|
|
** Description: Internal header file for our HelpUtil module.
|
|
** -----------
|
|
**
|
|
** (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 Hewlett-Packard Company
|
|
**
|
|
** (c) Copyright 1993, 1994 Hewlett-Packard Company
|
|
** (c) Copyright 1993, 1994 International Business Machines Corp.
|
|
** (c) Copyright 1993, 1994 Sun Microsystems, Inc.
|
|
** (c) Copyright 1993, 1994 Novell, Inc.
|
|
*******************************************************************
|
|
*************************************<+>*************************************/
|
|
|
|
|
|
#ifndef _HelpUtilI_h
|
|
#define _HelpUtilI_h
|
|
|
|
|
|
#include "HelpDialogP.h"
|
|
|
|
/* default help4help volume */
|
|
extern char _DtHelpDefaultHelp4HelpVolume[];
|
|
extern char _DtHelpDefaultLocationId[];
|
|
|
|
/*
|
|
|
|
*****************************************************************************
|
|
* Function: void _DtHelpErrorDialog(parent, message, helpLocationId)
|
|
*
|
|
* Parameters: widget Specifies the application's top level widget
|
|
* message Specifies the desired error message to
|
|
* display.
|
|
*
|
|
* Return Value: None
|
|
*
|
|
* Purpose: To display and error message in a motif error dialog.
|
|
*
|
|
*****************************************************************************
|
|
*/
|
|
void _DtHelpErrorDialog(
|
|
Widget parent,
|
|
char * message);
|
|
|
|
/*****************************************************************************
|
|
* Function: _DtHelpFilterExecCmdStr
|
|
*
|
|
* Args:
|
|
* helpWidget: help widget requesting to exec the command
|
|
* pDisplayStuff: ptr to the DisplayWidget stuff of the help widget
|
|
* commandStr: command string to execute
|
|
* ret_cmdStr: the screened & possibly rewritten command is put here
|
|
* ret_cmdWasAlias: was the command an alias?
|
|
* ret_execPermitted: if executionPolicy permit exec & ret_cmdStr is valid
|
|
* ret_queryNeeded: if executionPolicy requires a query before exec
|
|
*
|
|
* Description:
|
|
* ret_cmdStr gets memory owned by the calling function; it should be
|
|
* freed when no longer needed. The string will be the same as the
|
|
* commandStr if commandStr was not an alias. If the commandStr
|
|
* is an alias and if the alias is defined, the ret_cmdStr will be the
|
|
* value of the alias. If the alias isn't defined, the ret_cmdStr will
|
|
* be the default command if available, or the alias name otherwise.
|
|
*
|
|
* ret_cmdWasAlias will be True if the alias was defined or if the
|
|
* alias was undefined AND no default command was given.
|
|
* It will be False if no alias was used or if the alias was undefined
|
|
* and a default command was present.
|
|
*
|
|
* Returns:
|
|
* True: if execPermitted and a valid command string
|
|
* False: if if execPermitted is False or invalid command string
|
|
*
|
|
* Comments:
|
|
* This code is written such that we don't need nor want to know
|
|
* whether it is a general or quick help widget.
|
|
*
|
|
* Warning:
|
|
* command string must be writable; it is written, but left
|
|
* unchanged when the function exits.
|
|
*
|
|
*****************************************************************************/
|
|
Boolean _DtHelpFilterExecCmdStr(
|
|
Widget helpWidget,
|
|
unsigned char executionPolicy,
|
|
const char * commandStr,
|
|
char * * ret_cmdStr,
|
|
Boolean * ret_cmdWasAlias,
|
|
Boolean * ret_execPermitted,
|
|
Boolean * ret_queryNeeded,
|
|
char * hv_path);
|
|
|
|
typedef Boolean (*_DtHelpCeWaitProc)(Widget w,void * clientData);
|
|
|
|
/*********************************************************************
|
|
* _DtHelpCeWaitAndProcessEvents
|
|
*
|
|
* Purpose:
|
|
* _DtHelpCeWaitAndProcessEvents will process events and call
|
|
* the waitProc until waitProc returns False. This function
|
|
* is useful to put up modal dialogs that must be reponded to
|
|
* in the midst of executing code that must remain on the call stack.
|
|
*
|
|
* Warning:
|
|
* This function should only be used on modal dialogs.
|
|
*
|
|
*********************************************************************/
|
|
|
|
void
|
|
_DtHelpCeWaitAndProcessEvents (
|
|
Widget w,
|
|
_DtHelpCeWaitProc waitProc,
|
|
void * clientData);
|
|
|
|
/*****************************************************************************
|
|
* Function: _DtHelpFilterExecCmd
|
|
*
|
|
* Args:
|
|
* helpWidget: help widget requesting to exec the command
|
|
* command: command string to execute
|
|
* DtHELP_EXECUTE_???
|
|
* execPolicy: current policy setting
|
|
* ret_filteredCmdStr: filtered command string
|
|
*****************************************************************************/
|
|
int _DtHelpFilterExecCmd(
|
|
Widget helpWidget,
|
|
const char * commandStr,
|
|
unsigned char executionPolicy,
|
|
Boolean useQueryDialog,
|
|
_DtHelpCommonHelpStuff * pHelpStuff,
|
|
char * * ret_filteredCmdStr,
|
|
char * hv_path);
|
|
|
|
/*****************************************************************************
|
|
* Function: _DtHelpExecFilteredCmd
|
|
*
|
|
* Args:
|
|
* helpWidget: help widget requesting to exec the command
|
|
* command: command string to execute
|
|
* modal: is the execution modal (sync) or modeless (async)
|
|
* helpLocationId: helpOnHelp file location for Help btn in error dialog
|
|
* pDisplayStuff: ptr to the DisplayWidget stuff of the help widget
|
|
* pHelpStuff: ptr to the CommonHelp stuff of the help widget
|
|
*
|
|
* Comments:
|
|
* This code is written such that we don't need nor want to know
|
|
* whether it is a general or quick help widget.
|
|
*
|
|
* Warning:
|
|
* command string must be writable; it is written, but left
|
|
* unchanged whent the function exits.
|
|
*
|
|
* Called by:
|
|
*****************************************************************************/
|
|
void _DtHelpExecFilteredCmd(
|
|
Widget helpWidget,
|
|
char * commandStr,
|
|
char * helpLocationId,
|
|
_DtHelpDisplayWidgetStuff * pDisplayStuff,
|
|
_DtHelpCommonHelpStuff * pHelpStuff);
|
|
|
|
/*****************************************************************************
|
|
* Function: Boolean _DtHelpExpandHelpVolume(DtHelpDialogWidget nw);
|
|
*
|
|
*
|
|
* Parameters: nw Specifies the current help dialog widget.
|
|
*
|
|
* Return Value: Boolean.
|
|
*
|
|
|
|
* Description: _DtHelpExpandHelpVolume looks for a $LANG variable in the
|
|
* helpAccesFile string and if found, replaces it with the
|
|
* current lang variable.
|
|
*
|
|
*****************************************************************************/
|
|
Boolean _DtHelpExpandHelpVolume(
|
|
Widget widget,
|
|
_DtHelpDisplayWidgetStuff * display,
|
|
_DtHelpCommonHelpStuff * help,
|
|
_DtHelpPrintStuff * print);
|
|
|
|
/*****************************************************************************
|
|
* Function: char *_DtHelpParseIdString(char * specification);
|
|
*
|
|
*
|
|
* Parameters: specification Specifies an author defined help topic.
|
|
*
|
|
* Return Value: Void.
|
|
*
|
|
* Description: This function copies the locationId portion of the
|
|
* specification and retruns it to the calling routine.
|
|
*
|
|
*****************************************************************************/
|
|
extern char *_DtHelpParseIdString(
|
|
char *specification);
|
|
|
|
/*****************************************************************************
|
|
* Function: char *_DtHelpParseAccessFile(char * specification);
|
|
*
|
|
*
|
|
* Parameters: specification Specifies an author defined help topic.
|
|
*
|
|
* Return Value: Void.
|
|
*
|
|
* Description: This function copies the helpAccessFile portion of the
|
|
* specification and retruns it to the calling routine.
|
|
*
|
|
*****************************************************************************/
|
|
extern char *_DtHelpParseAccessFile(
|
|
char *specification);
|
|
|
|
/*****************************************************************************
|
|
* Function: void _DtHelpTopicListAddToHead(
|
|
* char *locationId,
|
|
* char *topicTitle,
|
|
* int topicType,
|
|
* int maxNodex,
|
|
* char *accessPath,
|
|
* DtTopicListStruct **pHead,
|
|
* DtTopicListStruct **pTale,
|
|
* int *totalNodes)
|
|
*
|
|
*
|
|
* Parameters:
|
|
*
|
|
* Return Value: Void.
|
|
*
|
|
* Purpose: Adds an element to the top of the given topicList.
|
|
*
|
|
*****************************************************************************/
|
|
extern void _DtHelpTopicListAddToHead(
|
|
char *locationId,
|
|
XmString topicTitle,
|
|
int topicType,
|
|
int maxNodes,
|
|
char *accessPath,
|
|
DtTopicListStruct **pHead,
|
|
DtTopicListStruct **pTale,
|
|
int *totalNodes,
|
|
int scrollPosition);
|
|
|
|
/*****************************************************************************
|
|
* Function: void _DtTopicListDelUeteHead(
|
|
* DtTopicListStruct *pHead,
|
|
* DtTopicListStruct *pTale,
|
|
* totalNodes)
|
|
*
|
|
*
|
|
* Parameters:
|
|
*
|
|
* Return Value: Void.
|
|
*
|
|
* Purpose: Delets an element from the top of the given topicList.
|
|
*
|
|
*****************************************************************************/
|
|
extern void _DtHelpTopicListDeleteHead(
|
|
DtTopicListStruct **pHead,
|
|
DtTopicListStruct **pTale,
|
|
int *totalNodes);
|
|
|
|
/*****************************************************************************
|
|
* Function: void _DtHelpMapCB(
|
|
*
|
|
*
|
|
*
|
|
* Parameters:
|
|
*
|
|
* Return Value: Void.
|
|
*
|
|
* Purpose: Determins where a new child dialog should be mapped in
|
|
* relation to its parent.
|
|
*
|
|
*****************************************************************************/
|
|
extern XtCallbackProc _DtHelpMapCB(
|
|
Widget w,
|
|
XtPointer client_data,
|
|
XtPointer call_data );
|
|
|
|
|
|
/*****************************************************************************
|
|
* Function: void _DtHelpMapCenteredCB(
|
|
*
|
|
*
|
|
*
|
|
* Parameters:
|
|
*
|
|
* Return Value: Void.
|
|
*
|
|
* Purpose: Determins where the center of our help dialog is and sets
|
|
* where new child dialog should be mapped such that its centered.
|
|
*
|
|
*****************************************************************************/
|
|
extern XtCallbackProc _DtHelpMapCenteredCB(
|
|
Widget w,
|
|
XtPointer client_data,
|
|
XtPointer call_data);
|
|
|
|
/*****************************************************************************
|
|
* Function: Boolean _DtHelpResolvePathname(
|
|
*
|
|
*
|
|
* Parameters:
|
|
*
|
|
* Return Value: Boolean.
|
|
*
|
|
*
|
|
* Description: _DtHelpResolvePathname attempts to validate and expand a path
|
|
* to a Cache Creek help access file.
|
|
*
|
|
*****************************************************************************/
|
|
extern Boolean _DtHelpResolvePathname(
|
|
Widget widget,
|
|
char **fileName,
|
|
_DtHelpVolumeHdl *volumeHandle,
|
|
char *sysVolumeSearchPath,
|
|
char *userVolumeSearchPath);
|
|
|
|
|
|
/*****************************************************************************
|
|
* Function: void _DtHelpDisplayDefinitionBox(
|
|
* Widget parent,
|
|
* Widget definitionBox,
|
|
* char * path,
|
|
* char * locationId);
|
|
*
|
|
* Parameters:
|
|
*
|
|
* Return Value:
|
|
*
|
|
* Purpose: This routine will create and post the definition box.
|
|
* (e.g. the Quick Help Dialog widget)
|
|
*
|
|
****************************************************************************/
|
|
extern void _DtHelpDisplayDefinitionBox(
|
|
Widget parent,
|
|
Widget **definitionBox,
|
|
char * path,
|
|
char * locationId);
|
|
|
|
/*****************************************************************************
|
|
* Function: void _DtHelpDisplayFormatError()
|
|
*
|
|
* Parameters:
|
|
*
|
|
* Return Value:
|
|
*
|
|
* Purpose: This routine generate and display the proper errror
|
|
* message to the display area as well as send the proper
|
|
* error to XmWarning() function.
|
|
*
|
|
****************************************************************************/
|
|
void _DtHelpDisplayFormatError(
|
|
XtPointer displayArea,
|
|
Widget widget,
|
|
char *userError,
|
|
char *systemError);
|
|
|
|
/*****************************************************************************
|
|
* Function: void _DtHelpCommonHelpInit()
|
|
*
|
|
* Parameters:
|
|
*
|
|
* Return Value:
|
|
*
|
|
* Purpose: This routine inits common help stuff
|
|
*
|
|
****************************************************************************/
|
|
void _DtHelpCommonHelpInit(
|
|
_DtHelpCommonHelpStuff * help);
|
|
|
|
/*****************************************************************************
|
|
* Function: void _DtHelpCommonHelpClean()
|
|
*
|
|
* Parameters:
|
|
*
|
|
* Return Value:
|
|
*
|
|
* Purpose: This routine cleans up common help stuff
|
|
*
|
|
****************************************************************************/
|
|
void _DtHelpCommonHelpClean(
|
|
_DtHelpCommonHelpStuff * help,
|
|
Boolean destroy);
|
|
|
|
/*****************************************************************************
|
|
* Function: void _DtHelpSetDlgButtonsWidth
|
|
*
|
|
* Parameters:
|
|
*
|
|
* Return Value:
|
|
*
|
|
* Purpose: This routine cleans up common help stuff
|
|
*
|
|
****************************************************************************/
|
|
void _DtHelpSetButtonPositions(
|
|
Widget btnList[],
|
|
int numBtns,
|
|
Dimension minFormWidth,
|
|
Dimension btnMargins,
|
|
Dimension minBetweenBtnSpace);
|
|
|
|
/*****************************************************************************
|
|
* Function: _DtHelpXmFontListGetPropertyMax
|
|
*
|
|
* Parameters:
|
|
* fontList: an XmFontList
|
|
* atom: an XA_xxx value (see Vol 1, chpt 6.2.9)
|
|
* ret_propertyValue: ptr to long value that will hold the max value
|
|
*
|
|
* Return Value:
|
|
* True: got at least one value
|
|
* False: unable to get any value
|
|
*
|
|
* Purpose:
|
|
* This function returns the max value of XGetFontProperty calls
|
|
* for each font in the XmFontList
|
|
*
|
|
****************************************************************************/
|
|
Boolean _DtHelpXmFontListGetPropertyMax(
|
|
XmFontList fontList,
|
|
Atom atom,
|
|
unsigned long *ret_propertyValue);
|
|
|
|
#endif /* _HelpUtilI_h */
|
|
/* Do not add anything after this endif. */
|
|
|
|
|