cdesktopenv/cde/lib/DtHelp/HelpUtilI.h

456 lines
16 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* 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 librararies 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. */