/* * 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: help.c /main/4 1995/11/02 14:05:18 rswiston $ */ /********************************************************************* * (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 Unix System Labs, Inc., a subsidiary of * Novell, Inc. **********************************************************************/ /****************************************************************************** ** Program: dticon ** ** Description: X11-based multi-color icon editor ** ** File: help.c, which contains the following subroutines or ** functions: ** AssignHelpCallbacks() ** HelpTriggerCB() ** HelpHyperlinkCB() ** HelpCloseCB() ** GetHelpDialog() ** HelpSetVolAndLocation() ** DisplayHelp() ** DisplayNewHelp() ** DisplayHelpDialog() ** CreateHelpDialog() ** ****************************************************************************** ** ** Copyright 1991 by Hewlett-Packard Company, 1990, 1991, 1992. ** All rights are reserved. Copying or reproduction of this program, ** except for archival purposes, is prohibited without prior written ** consent of Hewlett-Packard Company. ** ** Hewlett-Packard makes no representations about the suitibility of this ** software for any purpose. It is provided "as is" without express or ** implied warranty. ** ******************************************************************************/ #include #include #include #include #include #include
#include "help.h" #include "main.h" #include "utils.h" extern Widget circleButton, editMenu_addHS_pb, editMenu_clear_pb; extern Widget editMenu_copy_pb, editMenu_cut_pb, editMenu_deleteHS_pb; extern Widget editMenu_flip_pb, editMenu_paste_pb, editMenu_resize_pb; extern Widget editMenu_rotate_pb, editMenu_scale_pb, editMenu_top_pb; extern Widget editMenu_undo_pb, ellipseButton, eraseButton, floodButton; extern Widget fileMenu_new_pb, fileMenu_open_pb, fileMenu_quit_pb; extern Widget fileMenu_saveAs_pb, fileMenu_save_pb, fileMenu_top_pb; extern Widget lineButton, menu1, optionsMenu_format, optionsMenu_grid; extern Widget optionsMenu_magnify, optionsMenu_top_pb, pointButton; extern Widget polygonButton, polylineButton, queryDialog, rectangleButton; extern Widget selectButton, fillToggle; extern Widget editMenu_grabImage_pb; extern Widget helpMenu_top_pb, helpMenu_intro_pb, helpMenu_tasks_pb, helpMenu_ref_pb, helpMenu_item_pb, helpMenu_using_pb, helpMenu_version_pb; extern Widget rotateMenu, flipMenu, formatMenu, magnificationMenu; extern Widget staticColorsBox, symbolicColorsBox, staticGreysBox; extern Widget viewport; void HelpTriggerCB(Widget w, caddr_t client_data, caddr_t call_data); void HelpOnItemCB(Widget w, caddr_t client_data, caddr_t call_data); void HelpSetVolAndLocation(int topic); void DisplayNewHelp(char *helpVolume, char *locationId); void DisplayHelp(char *helpVolume, char *locationId); void DisplayHelpDialog(Widget dialog, char *helpVolume, char *locationId); Widget CreateHelpDialog(HelpStruct *pHelp); void AssignHelpCallbacks( void ) { #ifdef DEBUG if (debug) stat_out("Entering AssignHelpCallbacks\n"); #endif /*** Set Help callbacks for the graphic tools ***/ XtAddCallback(pointButton, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_POINT_BUTTON); XtAddCallback(floodButton, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_FLOOD_BUTTON); XtAddCallback(lineButton, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_LINE_BUTTON); XtAddCallback(polylineButton, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_POLYLINE_BUTTON); XtAddCallback(rectangleButton, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_RECTANGLE_BUTTON); XtAddCallback(polygonButton, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_POLYGON_BUTTON); XtAddCallback(circleButton, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_CIRCLE_BUTTON); XtAddCallback(ellipseButton, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_ELLIPSE_BUTTON); XtAddCallback(eraseButton, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_ERASER_BUTTON); XtAddCallback(selectButton, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_SELECT_BUTTON); XtAddCallback(fillToggle, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_FILL_BUTTON); /*** Set Help callbacks for the pen groups ***/ XtAddCallback(staticColorsBox, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_STATIC_COLOR_BUTTON); XtAddCallback(staticGreysBox, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_STATIC_GREY_BUTTON); XtAddCallback(symbolicColorsBox, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_DYNAMIC_COLOR_BUTTON); /*** Set Help callbacks for the File menu ***/ XtAddCallback(fileMenu_top_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_FILE_BUTTON); XtAddCallback(fileMenu_new_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_NEW_BUTTON); XtAddCallback(fileMenu_open_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_OPEN_BUTTON); XtAddCallback(fileMenu_save_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_SAVE_BUTTON); XtAddCallback(fileMenu_saveAs_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_SAVE_AS_BUTTON); XtAddCallback(fileMenu_quit_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_QUIT_BUTTON); /*** Set Help callbacks for the Edit menu ***/ XtAddCallback(editMenu_top_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_EDIT_BUTTON); XtAddCallback(editMenu_undo_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_UNDO_BUTTON); XtAddCallback(editMenu_cut_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_CUT_BUTTON); XtAddCallback(editMenu_copy_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_COPY_BUTTON); XtAddCallback(editMenu_paste_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_PASTE_BUTTON); XtAddCallback(editMenu_rotate_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_ROTATE_BUTTON); XtAddCallback(rotateMenu, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_ROTATE_BUTTON); XtAddCallback(editMenu_flip_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_FLIP_BUTTON); XtAddCallback(flipMenu, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_FLIP_BUTTON); XtAddCallback(editMenu_scale_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_SCALE_BUTTON); XtAddCallback(editMenu_resize_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_RESIZE_ICON_BUTTON); XtAddCallback(editMenu_addHS_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_ADD_HOTSPOT_BUTTON); XtAddCallback(editMenu_deleteHS_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_DELETE_HOTSPOT_BUTTON); XtAddCallback(editMenu_grabImage_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_GRAB_BUTTON); XtAddCallback(editMenu_clear_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_CLEAR_ICON_BUTTON); /*** Set Help callbacks for the Options menu ***/ XtAddCallback(optionsMenu_top_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_OPTIONS_BUTTON); XtAddCallback(optionsMenu_grid, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_VISIBLE_GRID_BUTTON); XtAddCallback(optionsMenu_format, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_OUTPUT_FORMAT_BUTTON); XtAddCallback(formatMenu, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_OUTPUT_FORMAT_BUTTON); XtAddCallback(optionsMenu_magnify, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_MAGNIFICATION_BUTTON); XtAddCallback(magnificationMenu, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_MAGNIFICATION_BUTTON); /*** Set Help callbacks for the Help menu (menu items activated) ***/ XtAddCallback(helpMenu_intro_pb, XmNactivateCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_INTRODUCTION); XtAddCallback(helpMenu_tasks_pb, XmNactivateCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_TASKS); XtAddCallback(helpMenu_ref_pb, XmNactivateCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_REFERENCE); XtAddCallback(helpMenu_item_pb, XmNactivateCallback, (XtCallbackProc) HelpOnItemCB, (XtPointer)HELP_ON_ITEM); XtAddCallback(helpMenu_using_pb, XmNactivateCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_USING_HELP); XtAddCallback(helpMenu_version_pb, XmNactivateCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_VERSION); /*** Set Help callbacks for the Help menu (help on menu items themselves) ***/ XtAddCallback(helpMenu_top_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_HELP_BUTTON); XtAddCallback(helpMenu_intro_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_HELP_INTRODUCTION); XtAddCallback(helpMenu_tasks_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_HELP_TASKS); XtAddCallback(helpMenu_ref_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_HELP_REFERENCE); XtAddCallback(helpMenu_item_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_HELP_ON_ITEM); XtAddCallback(helpMenu_using_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_HELP_USING_HELP); XtAddCallback(helpMenu_version_pb, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_HELP_VERSION); /*** Set Help callbacks for other GUI components ***/ XtAddCallback(menu1, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_MENUBAR); XtAddCallback(queryDialog, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_QUERY); XtAddCallback(stdErrDialog, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_ERROR); XtAddCallback(newIconDialog, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_NEW_ICON); XtAddCallback(fileIODialog, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_FILEIO_ICON); XtAddCallback(viewport, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_VIEWPORT); XtAddCallback(mainWindow, XmNhelpCallback, (XtCallbackProc) HelpTriggerCB, (XtPointer)HELP_MAIN_WINDOW); #ifdef DEBUG if (debug) stat_out("Leaving AssignHelpCallbacks\n"); #endif } void HelpTriggerCB( Widget w, caddr_t client_data, caddr_t call_data ) { #ifdef DEBUG if (debug) stat_out("Entering HelpTriggerCB: help-tag=%d\n", (int) client_data); #endif HelpSetVolAndLocation((int) (intptr_t) client_data); #ifdef DEBUG if (debug) stat_out("Leaving HelpTriggerCB\n"); #endif } void HelpOnItemCB( Widget w, caddr_t client_data, caddr_t call_data ) { Widget selWidget; int status; #ifdef DEBUG if (debug) stat_out("Entering HelpOnItemCB: help-tag=%d\n", (int) client_data); #endif while (!XtIsSubclass(w, applicationShellWidgetClass)) w = XtParent(w); status = DtHelpReturnSelectedWidgetId(w, 0, &selWidget); /* NULL value for cursor, uses default cursor value. */ switch ((int)status) { case DtHELP_SELECT_ERROR: /* Display error dialog here, function call failed */ break; case DtHELP_SELECT_VALID: while (selWidget != (Widget)NULL) { if ( (XtHasCallbacks(selWidget, XmNhelpCallback) == XtCallbackHasSome) ) { XtCallCallbacks(selWidget, XmNhelpCallback, NULL); break; } else selWidget = XtParent(selWidget); } break; case DtHELP_SELECT_ABORT: /* Display error dialog here, * "Selection Aborted by user." */ break; case DtHELP_SELECT_INVALID: DoErrorDialog( GETSTR(14,4,"You must select an item\nwithin the Icon Editor.") ); break; } #ifdef DEBUG if (debug) stat_out("Leaving HelpOnItemCB\n"); #endif } void HelpHyperlinkCB( Widget w, caddr_t client_data_unused, caddr_t call_data ) { DtHelpDialogCallbackStruct *pHyper = (DtHelpDialogCallbackStruct *) call_data; switch(pHyper->hyperType) { case DtHELP_LINK_JUMP_NEW : DisplayNewHelp(pHyper->helpVolume, pHyper->locationId); break; default : ; /* application defined link code goes here */ } /* switch */ } void HelpCloseCB( Widget w, caddr_t client_data, caddr_t call_data_unused ) { HelpStruct *pHelp = (HelpStruct *)client_data; #ifdef DEBUG if (debug) stat_out("Entering HelpCloseCB\n"); #endif if(pHelp != (HelpStruct *)NULL) { /* this is a "cached" help dialog */ pHelp->inUse = False; } XtUnmanageChild(w); #ifdef DEBUG if (debug) stat_out("Leaving HelpCloseCB\n"); #endif } static Widget GetHelpDialog( void ) { HelpStruct *pHelp; Arg args[5]; int i, done; #ifdef DEBUG if (debug) stat_out("Entering GetHelpDialog\n"); #endif if(help_head == (HelpStruct *)NULL) { pHelp = (HelpStruct *)XtMalloc(sizeof(HelpStruct)); pHelp->pNext = (HelpStruct *)NULL; pHelp->pPrev = (HelpStruct *)NULL; pHelp->inUse = True; pHelp->dialog = CreateHelpDialog(pHelp); help_head = pHelp; #ifdef DEBUG if (debug) stat_out("Leaving GetHelpDialog: Created the 1st help dialog\n"); #endif return pHelp->dialog; } else { pHelp = help_head; done = False; while (!done) { if(pHelp->inUse == False) { pHelp->inUse = True; #ifdef DEBUG if (debug) stat_out("Leaving GetHelpDialog: activated an existing help dialog\n"); #endif return pHelp->dialog; } /* if */ if(pHelp->pNext != (HelpStruct *)NULL) pHelp = pHelp->pNext; else done = True; } /* while */ pHelp->pNext = (HelpStruct *) XtMalloc(sizeof(HelpStruct)); pHelp->pNext->pPrev = pHelp; pHelp = pHelp->pNext; pHelp->pNext = (HelpStruct *)NULL; pHelp->inUse = True; pHelp->dialog = CreateHelpDialog(pHelp); #ifdef DEBUG if (debug) stat_out("Leaving GetHelpDialog: Created a new help dialog\n"); #endif return pHelp->dialog; } } void HelpSetVolAndLocation( int topic) { char *helpVolume, *locationId; #ifdef DEBUG if (debug) stat_out("Entering HelpSetVolAndLocation: topic = %d\n", topic); #endif helpVolume = HELP_VOLUME; switch (topic) { /*** choices for the 'Help' pulldown menu ***/ case HELP_INTRODUCTION: locationId = HELP_INTRODUCTION_STR; break; case HELP_TASKS: locationId = HELP_TASKS_STR; break; case HELP_REFERENCE: locationId = HELP_REFERENCE_STR; break; case HELP_ON_ITEM: locationId = HELP_ON_ITEM_STR; break; case HELP_USING_HELP: helpVolume = HELP_HELP_VOLUME; locationId = HELP_USING_HELP_STR; break; case HELP_VERSION: locationId = HELP_VERSION_STR; break; /*** choices for the top-level menus on the main menubar ***/ case HELP_FILE_BUTTON: locationId = HELP_FILE_BUTTON_STR; break; case HELP_EDIT_BUTTON: locationId = HELP_EDIT_BUTTON_STR; break; case HELP_OPTIONS_BUTTON: locationId = HELP_OPTIONS_BUTTON_STR; break; case HELP_HELP_BUTTON: locationId = HELP_HELP_BUTTON_STR; break; /*** choices for the 'File' pulldown menu ***/ case HELP_NEW_BUTTON: locationId = HELP_NEW_BUTTON_STR; break; case HELP_OPEN_BUTTON: locationId = HELP_OPEN_BUTTON_STR; break; case HELP_SAVE_BUTTON: locationId = HELP_SAVE_BUTTON_STR; break; case HELP_SAVE_AS_BUTTON: locationId = HELP_SAVE_AS_BUTTON_STR; break; case HELP_QUIT_BUTTON: locationId = HELP_QUIT_BUTTON_STR; break; /*** choices for the 'Edit' pulldown menu ***/ case HELP_UNDO_BUTTON: locationId = HELP_UNDO_BUTTON_STR; break; case HELP_CUT_BUTTON: locationId = HELP_CUT_BUTTON_STR; break; case HELP_COPY_BUTTON: locationId = HELP_COPY_BUTTON_STR; break; case HELP_PASTE_BUTTON: locationId = HELP_PASTE_BUTTON_STR; break; case HELP_ROTATE_BUTTON: locationId = HELP_ROTATE_BUTTON_STR; break; case HELP_FLIP_BUTTON: locationId = HELP_FLIP_BUTTON_STR; break; case HELP_SCALE_BUTTON: locationId = HELP_SCALE_BUTTON_STR; break; case HELP_RESIZE_ICON_BUTTON: locationId = HELP_RESIZE_ICON_BUTTON_STR; break; case HELP_ADD_HOTSPOT_BUTTON: locationId = HELP_ADD_HOTSPOT_BUTTON_STR; break; case HELP_DELETE_HOTSPOT_BUTTON: locationId = HELP_DELETE_HOTSPOT_BUTTON_STR; break; case HELP_GRAB_BUTTON: locationId = HELP_GRAB_BUTTON_STR; break; case HELP_CLEAR_ICON_BUTTON: locationId = HELP_CLEAR_ICON_BUTTON_STR; break; /*** choices for the 'Options' pulldown menu ***/ case HELP_VISIBLE_GRID_BUTTON: locationId = HELP_VISIBLE_GRID_BUTTON_STR; break; case HELP_OUTPUT_FORMAT_BUTTON: locationId = HELP_OUTPUT_FORMAT_BUTTON_STR; break; case HELP_MAGNIFICATION_BUTTON: locationId = HELP_MAGNIFICATION_BUTTON_STR; break; /*** choices for the 'Help' pulldown menu ***/ case HELP_HELP_INTRODUCTION: locationId = HELP_HELP_INTRODUCTION_STR; break; case HELP_HELP_TASKS: locationId = HELP_HELP_TASKS_STR; break; case HELP_HELP_REFERENCE: locationId = HELP_HELP_REFERENCE_STR; break; case HELP_HELP_ON_ITEM: locationId = HELP_HELP_ON_ITEM_STR; break; case HELP_HELP_USING_HELP: locationId = HELP_HELP_USING_HELP_STR; break; case HELP_HELP_VERSION: locationId = HELP_HELP_VERSION_STR; break; /*** choices for each of the Graphics Tool pushbuttons ***/ case HELP_POINT_BUTTON: locationId = HELP_POINT_BUTTON_STR; break; case HELP_FLOOD_BUTTON: locationId = HELP_FLOOD_BUTTON_STR; break; case HELP_LINE_BUTTON: locationId = HELP_LINE_BUTTON_STR; break; case HELP_POLYLINE_BUTTON: locationId = HELP_POLYLINE_BUTTON_STR; break; case HELP_RECTANGLE_BUTTON: locationId = HELP_RECTANGLE_BUTTON_STR; break; case HELP_POLYGON_BUTTON: locationId = HELP_POLYGON_BUTTON_STR; break; case HELP_CIRCLE_BUTTON: locationId = HELP_CIRCLE_BUTTON_STR; break; case HELP_ELLIPSE_BUTTON: locationId = HELP_ELLIPSE_BUTTON_STR; break; case HELP_ERASER_BUTTON: locationId = HELP_ERASER_BUTTON_STR; break; case HELP_SELECT_BUTTON: locationId = HELP_SELECT_BUTTON_STR; break; case HELP_FILL_BUTTON: locationId = HELP_FILL_BUTTON_STR; break; /*** choices for each of the Pen Color Group pushbuttons ***/ case HELP_STATIC_COLOR_BUTTON: locationId = HELP_STATIC_COLOR_BUTTON_STR; break; case HELP_STATIC_GREY_BUTTON: locationId = HELP_STATIC_GREY_BUTTON_STR; break; case HELP_DYNAMIC_COLOR_BUTTON: locationId = HELP_DYNAMIC_COLOR_BUTTON_STR; break; /*** choice for other GUI components ***/ case HELP_MENUBAR: locationId = HELP_MENUBAR_STR; break; case HELP_QUERY: locationId = HELP_QUERY_STR; break; case HELP_ERROR: locationId = HELP_ERROR_STR; break; case HELP_NEW_ICON: locationId = HELP_NEW_ICON_STR; break; case HELP_FILEIO_ICON: locationId = HELP_FILEIO_ICON_STR; break; case HELP_VIEWPORT: locationId = HELP_VIEWPORT_STR; break; case HELP_MAIN_WINDOW: locationId = HELP_MAIN_WINDOW_STR; break; default: locationId = HELP_MAIN_WINDOW_STR; break; } DisplayHelp(helpVolume, locationId); #ifdef DEBUG if (debug) stat_out("Leaving HelpSetVolAndLocation\n"); #endif } void DisplayHelp( char *helpVolume, char *locationId) { static Widget mainHelpDialog = NULL; #ifdef DEBUG if (debug) stat_out("Entering DisplayHelp\n"); #endif if (mainHelpDialog == NULL) mainHelpDialog = CreateHelpDialog(NULL); DisplayHelpDialog (mainHelpDialog, helpVolume, locationId); #ifdef DEBUG if (debug) stat_out("Leaving DisplayHelp\n"); #endif } void DisplayNewHelp( char *helpVolume, char *locationId) { Widget helpDialog; #ifdef DEBUG if (debug) stat_out("Entering DisplayNewHelp\n"); #endif helpDialog = GetHelpDialog(); DisplayHelpDialog (helpDialog, helpVolume, locationId); #ifdef DEBUG if (debug) stat_out("Leaving DisplayNewHelp\n"); #endif } void DisplayHelpDialog ( Widget helpDialog, char *helpVolume, char *locationId) { Arg args[10]; int n; #ifdef DEBUG if (debug) stat_out("Entering DisplayHelpDialog\n"); #endif n = 0; XtSetArg(args[n], DtNhelpVolume, helpVolume); n++; XtSetArg(args[n], DtNhelpType, DtHELP_TYPE_TOPIC); n++; XtSetArg(args[n], DtNlocationId, locationId); n++; XtSetValues(helpDialog, args, n); XtManageChild(helpDialog); #ifdef DEBUG if (debug) stat_out("Leaving DisplayHelpDialog\n"); #endif } Widget CreateHelpDialog (HelpStruct *pHelp) { Widget helpDialog; Arg args[10]; int i; #ifdef DEBUG if (debug) stat_out("Entering CreateHelpDialog, pHelp is %x\n", pHelp); #endif i = 0; XtSetArg(args[i], XmNtitle, GETSTR(14,2, "Icon Editor - Help")); i++; XtSetArg(args[i], XmNiconName,GETSTR(14,2, "Icon Editor - Help"));i++; helpDialog = DtCreateHelpDialog(dtIconShell, "helpDlg", args, i); XtAddCallback(helpDialog, DtNhyperLinkCallback, (XtCallbackProc)HelpHyperlinkCB, NULL); XtAddCallback(helpDialog, DtNcloseCallback, (XtCallbackProc)HelpCloseCB, pHelp); #ifdef DEBUG if (debug) stat_out("Leaving CreateHelpDialog\n"); #endif return helpDialog; }