dtcm: Coverity 89287
[oweals/cde.git] / cde / programs / dtpad / dtpad.h
1 /*
2  * CDE - Common Desktop Environment
3  *
4  * Copyright (c) 1993-2012, The Open Group. All rights reserved.
5  *
6  * These libraries and programs are free software; you can
7  * redistribute them and/or modify them under the terms of the GNU
8  * Lesser General Public License as published by the Free Software
9  * Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * These libraries and programs are distributed in the hope that
13  * they will be useful, but WITHOUT ANY WARRANTY; without even the
14  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15  * PURPOSE. See the GNU Lesser General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with these libraries and programs; if not, write
20  * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21  * Floor, Boston, MA 02110-1301 USA
22  */
23 /* $TOG: dtpad.h /main/20 1999/09/15 15:14:33 mgreess $ */
24 /**********************************<+>*************************************
25 ***************************************************************************
26 **
27 **  File:        dtpad.h
28 **
29 **  Project:     COSE dtpad, a memo maker type editor based on the motif
30 **               text widget.
31 **
32 **  Description:
33 **  -----------
34 **  This is the header file for the dtpad list of file which include:
35 **      dtpad.c
36 **
37 *******************************************************************
38 **  (c) Copyright Hewlett-Packard Company, 1990.  All rights are
39 **  reserved.  Copying or other reproduction of this program
40 **  except for archival purposes is prohibited without prior
41 **  written consent of Hewlett-Packard Company.
42 ********************************************************************
43 **
44 ********************************************************************
45 **  (c) Copyright 1993, 1994 Hewlett-Packard Company
46 **  (c) Copyright 1993, 1994 International Business Machines Corp.
47 **  (c) Copyright 1993, 1994 Sun Microsystems, Inc.
48 **  (c) Copyright 1993, 1994 Novell, Inc.
49 ********************************************************************
50 **
51 **
52 **************************************************************************
53 **********************************<+>*************************************/
54
55 #ifndef DTPAD_H
56 #define DTPAD_H
57
58 #include <stdio.h>
59 #include <stdint.h>
60 #include <fcntl.h>
61 #include <errno.h>
62 #include <limits.h>
63 #include <sys/types.h>
64 #include <sys/stat.h>
65
66 #include <X11/Xatom.h>
67 #include <X11/Intrinsic.h>
68 #include <X11/Shell.h>
69 #include <Xm/Protocols.h>
70
71 #include <Xm/Xm.h>
72 #include <Xm/XmP.h>
73 #include <Xm/CascadeB.h>
74 #include <Xm/CascadeBG.h>
75 #include <Xm/FileSB.h>
76 #include <Xm/LabelG.h>
77 #include <Xm/List.h>
78 #include <Xm/MainW.h>
79 #include <Xm/MessageB.h>
80 #include <Xm/PushB.h>
81 #include <Xm/PushBG.h>
82 #include <Xm/RowColumn.h>
83 #include <Xm/SelectioB.h>
84 #include <Xm/SeparatoG.h>
85 #include <Xm/Text.h>
86 #include <Xm/TextF.h>
87 #include <Xm/ToggleB.h>
88 #include <Xm/ToggleBG.h>
89
90 #include <Dt/Session.h>
91 #include <Dt/Dt.h>
92 #include <Dt/Dts.h>
93 #include <Dt/Message.h>
94 #include <Dt/UserMsg.h>
95 #include <Dt/Editor.h>
96 #include <Dt/Print.h>
97 #include <Dt/PrintOptionsP.h>
98
99 #include <Tt/tttk.h>
100
101 #define DTPAD_CLASS_NAME        "Dtpad"
102 #define CHECKSPELLING           0
103 #define FINDCHANGE              1
104 #define OPTIONS                 2
105
106 #define UNKNOWN_ACTION          -1
107 #define EXTEND_SELECTION        0
108
109 #define OPEN                    0
110 #define INCLUDE                 1
111
112 #define DEFAULT_GEOMETRY_STR    "80x24"
113 #define DEFAULT_COLS            80
114 #define DEFAULT_ROWS            24
115
116 typedef enum {
117       SUCCESS,
118       COPYOFTEMPFAILED,
119       UNWRITABLEFILE,
120       NOTEMPFILE
121 } WriteStatus;
122
123
124 /************************************************************************
125  * Resources
126  ************************************************************************/
127 typedef struct {
128       Boolean   statusLine;
129       Boolean   wordWrap;
130       Boolean   overstrike;
131       Boolean   saveOnClose;
132       Boolean   missingFileWarning;
133       Boolean   readOnlyWarning;
134       Boolean   nameChange;
135       Boolean   viewOnly;
136       String    workspaceList;
137       String    session;
138
139       Boolean   standAlone;
140       Boolean   blocking;
141       Boolean   server;
142       Boolean   exitOnLastClose;
143 } ApplicationData, *ApplicationDataPtr;
144
145
146 /************************************************************************
147  * structures related to various dialogs
148  ************************************************************************/
149 typedef struct {
150         Widget  newl_radio,
151                 with_newl,
152                 without_newl;
153 } ToggleWidgets; 
154
155 /* -----> "Open" file selection box and "Save?" dialog widgets
156  *        (indentation indicates widget hierarchy) */
157 typedef struct {
158         Widget file_dialog,
159                dir_list,
160                filter_text,
161                select_text,
162                file_list,
163                save_warning,
164                work_area,
165                row_col,
166                wkArea_textLabel,
167                separator,
168                cancelBtn;
169  ToggleWidgets toggleWidgets;
170 } Select;
171
172 /* -----> "Save As" file selection box and "Already Exists" dialog widgets
173  *        (indentation indicates widget hierarchy) */
174 typedef struct {
175         Widget saveAs_form,
176                alrdy_exist;
177  ToggleWidgets toggleWidgets;
178 } SaveAs;
179
180 /* ----->  */
181 typedef struct _confirm {
182     int confirmationStatus;     /* status from resource-spec'd comfirm dlg */
183     Widget dialog,
184            wk_area,
185            wkArea_textLabel;
186 } ConfirmStuff;
187
188
189 /************************************************************************
190  * structures related to menu bar functions
191  ************************************************************************/
192 /* -----> structs related to "File" pulldown menu */
193 typedef struct {
194     Select select;
195     SaveAs saveAs;
196     Widget gen_warning;
197     Widget newBtn;
198     Widget openBtn;
199     Widget includeBtn;
200     Widget saveBtn;
201     Widget saveAsBtn;
202     Widget printBtn;
203     Widget silentPrintBtn;
204     Widget xprintBtn;   /* Added temporarily to support X Print Service */
205     Widget exitBtn;
206 } FileWidgets;
207
208 typedef struct {
209     void (*pendingFileFunc)();
210     void (*pendingFileHelpFunc)();
211     Boolean fileExists,
212             saveWithNewlines,
213             readOnly;
214     char *fileName,
215          *netfile,              /* obpaque Took Talk string handle to file */
216          *savingName,
217          *lastIncludeName,
218          pathDir[512],          /* dir in specified path */
219          includePathDir[512];   /* dir in specified path */
220     FileWidgets fileWidgets;
221     XmString openTitle,
222              includeTitle,
223              saveBtnLabel,
224              saveNeededBtnLabel;
225 } FileStuff;
226
227 /* -----> structs related to "Edit" pulldown menu */
228 typedef struct {
229     Widget undoBtn,
230            cutBtn,
231            copyBtn,
232            pasteBtn,
233            clearBtn,
234            deleteBtn,
235            selectAllBtn,
236            findChangeBtn,
237            checkSpellingBtn;
238 } EditWidgets;
239
240 typedef struct {
241     EditWidgets widgets;
242 } EditStuff;
243
244 /* -----> structs related to "Format" pulldown menu */
245 typedef struct {
246     Widget separator,
247            paragraph,
248            all,
249            close,
250            help,
251            formatBtn;
252 } FormatWidgets;
253
254 typedef struct {
255     FormatWidgets widgets;
256     int right_margin;           /* format size */
257     int left_margin;
258 } FormatStuff;
259
260 /* -----> structs related to "Options" pulldown menu */
261 typedef struct {
262     Widget overstrikeBtn,
263            wordWrapBtn,
264            statusLineBtn,
265            helpBtn,
266            optionsBtn;
267 } OptionsMenuWidgets;
268
269 typedef struct {
270     OptionsMenuWidgets widgets;
271 } OptionsStuff;
272
273 /* -----> structs related to "Help" pulldown menu */
274 typedef struct _helpStruct {
275     struct _helpStruct *pNext;
276     struct _helpStruct *pPrev;
277     Widget dialog;
278     Boolean inUse;
279 } HelpStruct;
280
281
282 /************************************************************************
283  * structs related to the status line
284  ************************************************************************/
285 typedef struct _statusWidgets {
286     Widget container,
287            lineLabel,
288            lineText,
289            colLabel,
290            colText;
291 } StatusWidgets;
292
293 typedef struct _status {
294     StatusWidgets widgets;
295     int currentLine,
296     currentCol;
297 } StatusStuff;
298
299
300 /************************************************************************
301  * structs related to a ToolTalk Edit/Display/Instantiate message and any
302  * related Quit and Save messages.
303  ************************************************************************/
304 typedef struct _ttEditRequest {
305     Tt_message contract;        /* media request */
306     char *msg_id;               /* id of ToolTalk media request */
307     Tttk_op op;                 /* op code = Edit/Display/Instantiate */
308     char *vtype;                /* media type */
309     Boolean contents;           /* indicates file or buffer request */
310     Boolean returnBufContents;  /* indicates if contents returned in reply */
311     char *fileName;             /* file name supplied in media request */
312     char *docName;              /* title of file/buffer */
313     Tt_pattern savePattern;     /* pattern to handle Save requests */
314 } TTEditRequest;
315
316 typedef struct _ttQuitRequest {
317     Tt_message contract;        /* original TTDT_QUIT request */        
318     Boolean silent;             /* arg #1 */
319     Boolean force;              /* arg #2 */
320     char * operation2Quit;      /* arg #3 - window to quit (its Edit msg ID) */
321 } TTQuitRequest;
322
323 typedef struct _ttSaveRequest {
324     Tt_message contract;        /* original TTDT_SAVE request */        
325     char * messageID;           /* window to save (i.e. its Edit message ID) */
326 } TTSaveRequest;
327
328 /************************************************************************
329  * Editor struct - the primary sturcture for each Editor instance
330  ************************************************************************/
331 typedef struct _editor {
332    char *progname;              /* program name without the full pathname */
333    char *dialogTitle;           /* string retrieved from message catalog */
334    Display *display;            /* Display */
335    XtAppContext app_context;    /* Application Context */
336    ApplicationData  xrdb;
337    TTEditRequest ttEditReq;     /* ToolTalk Edit/Display/Instantiate msg info */
338    TTQuitRequest ttQuitReq;     /* ToolTalk Quit msg info */
339    TTSaveRequest ttSaveReq;     /* ToolTalk Save msg info */
340    HelpStruct *pHelpCache;
341    FileStuff fileStuff;         /* all data for File functions */
342    EditStuff editStuff;         /* all data for Edit functions */
343    FormatStuff formatStuff;     /* all data for Format functions */
344    OptionsStuff optionsStuff;   /* all data for Options functions */
345    ConfirmStuff confirmStuff;   /* data for resource spec'd confirm dialog */
346    StatusStuff  statusStuff;
347
348    Boolean nodo,
349            saveRestore;
350    Boolean iconic;
351    Position x,y;
352    Dimension width, height;
353    String geometry;
354    char select_string[512];
355    Widget app_shell,            /* ApplicationShell */
356           editor,               /* Dt Editor widget */
357           statusLineMsg,        /* Dt Editor widget status line text field */
358           panedWindow,          /* Paned window */
359           mainWindow,           /* MainWindow */
360           menu_bar,             /* RowColumn */
361 #ifdef POPUP
362           popup,                
363 #endif
364           ExitWid,
365           MainHelp,
366           pseudo;
367
368     unsigned short group_id,    /* users group id - for file type checking */
369                    user_id;     /* the users id - for file type checking */
370     struct _editor *pNextPad;
371     struct _editor *pPrevPad;
372     Boolean inUse;
373     char *blockChannel;
374
375     int                 numPendingTasks;
376     XtWorkProcId        fileExitWorkprocID;
377 } Editor;
378
379 typedef struct {
380         Editor *pPad;
381         int argc;
382         char **argv;
383 } StartupStruct;
384
385 /************************************************************************
386  * Printing structs - structures to support prining using the X Print Service
387  ************************************************************************/
388 /*
389  * Enums for the strings that appear in the header and footer fields
390  * on each page.
391  */
392 typedef enum {
393     PRINT_NONE_STRING_TYPE_ENUM,
394     PRINT_DATE_STRING_TYPE_ENUM,
395     PRINT_DOCNAME_STRING_TYPE_ENUM,
396     PRINT_PAGE_NUMBER_STRING_TYPE_ENUM,
397     PRINT_USER_NAME_STRING_TYPE_ENUM
398 } PrintStringTypeEnum;
399
400
401 /*
402  * Data structure to saving print options from the PrintSetup GUI.
403  */
404 typedef struct {
405     Boolean     wordWrap;
406
407     char        *marginBottom,
408                 *marginLeft,
409                 *marginRight,
410                 *marginTop;
411
412     PrintStringTypeEnum
413                 footerLeft,
414                 footerRight,
415                 headerLeft,
416                 headerRight;
417 } PrintOptions;
418
419 /*
420  * Structure summarizing the setup context for a print job.
421  * Includes the widgets which make up the print setup dialog,
422  * and the printing options retrieved from the print setup dialog.
423  */
424 typedef struct print_setup_widgets {
425     Widget      parent;
426     Widget      dtprintSetup;
427     Widget      form;
428     Widget      hdrftrFrame;
429     Widget      marginFrame;
430     Widget      docLabel;
431     Widget      docNameLabel;
432     Widget      wordWrapTB;
433 } psWidgets;
434
435 typedef struct print_setup {
436
437     char        *docName;
438     XtCallbackProc
439                 cancelCB,
440                 closeDisplayCB,
441                 printCB,
442                 setupCB;
443     XtPointer   cancelClosure,
444                 closeDisplayClosure,
445                 printClosure,
446                 setupClosure;
447
448     Editor      *pPad;
449     Widget      parent;
450     Widget      dtprintSetup;
451     psWidgets   *widgets;
452
453     PrintOptions
454                 options;
455 } PrintSetup;
456
457 /*
458  * Structure summarizing a print job including the print options used
459  * and the current state of the job.
460  */
461 typedef struct print_output {
462     Widget              pShell;
463     Widget              page;
464     Widget              innerPage;
465     Widget              headerLeft;
466     Widget              headerRight;
467     Widget              editor;
468     Widget              footerLeft;
469     Widget              footerRight;
470
471     int                 currentLine;
472     int                 linesPerPage;
473     Dimension           marginTop;
474     Dimension           marginRight;
475     Dimension           marginBottom;
476     Dimension           marginLeft;
477 } PrintOutput;
478
479
480 /*
481  * Structure summarizing a print job including the print options used
482  * and the current state of the job.
483  */
484 typedef struct print_job {
485     struct _editor      *pPad;
486     Widget              parentShell;
487     char                *tempFileName;
488     char                *documentName;
489     Boolean             silent;
490
491     PrintOutput         *pOutput;
492     PrintSetup          *pSetup;
493     Widget              pShell;
494     DtPrintSetupData    *printData;
495
496     int                 npagesDone;
497     int                 npagesTotal;
498
499     Widget              nextpageShell,
500                         nextpageButton;
501 } PrintJob;
502
503
504 /************************************************************************
505  *      macro to get message catalog strings
506  ************************************************************************/
507 #ifndef NO_MESSAGE_CATALOG
508 # define GETMESSAGE(set, number, string)\
509     _DtpadGetMessage(set, number, string)
510 #else
511 # define GETMESSAGE(set, number, string)\
512     string
513 #endif
514
515 #define UNNAMED_TITLE ((char *)GETMESSAGE(7, 6, "(UNTITLED)"))
516 /*[SuG 5/10/95] Added for fixing print bug. */
517 #define UNNAMED_TITLE_P ((char *)GETMESSAGE(5, 21, "UNTITLED"))
518
519
520 /************************************************************************
521  *                      functions in fileCB.c
522  ************************************************************************/
523 extern void FileCascadingCB(
524         Widget w,
525         caddr_t client_data,
526         caddr_t call_data);
527 extern void FileNewCB(
528         Widget w,
529         caddr_t client_data,
530         caddr_t call_data);
531 extern void FileOpenCB(
532         Widget w,
533         caddr_t client_data,
534         caddr_t call_data);
535 extern void FileIncludeCB(
536         Widget w,
537         caddr_t client_data,
538         caddr_t call_data);
539 extern void FileSaveCB(
540         Widget w,
541         caddr_t client_data,
542         caddr_t call_data);
543 extern void FileSaveAsCB(
544         Widget w,
545         caddr_t client_data,
546         caddr_t call_data);
547 extern void FilePrintCB(
548         Widget w,
549         caddr_t client_data,
550         caddr_t call_data);
551 extern void FileXpPrintCB(
552         Widget w,
553         caddr_t client_data,
554         caddr_t call_data);
555 extern void FileExitCB(
556         Widget w,
557         caddr_t client_data,
558         caddr_t call_data);
559 extern void NoSaveCB(
560         Widget w,
561         caddr_t client_data,
562         caddr_t call_data);
563 extern void CancelFileSelectCB(
564         Widget w,
565         caddr_t client_data,
566         caddr_t call_data);
567 extern void SaveNewLinesCB(
568         Widget w,
569         XtPointer client_data,
570         XtPointer call_data);
571 extern void SaveAsOkCB(
572         Widget w,
573         caddr_t client_data,
574         caddr_t call_data);
575 extern void AlrdyExistsOkCB(
576         Widget w,
577         caddr_t client_data,
578         caddr_t call_data);
579 extern void SaveAsCancelCB(
580         Widget w,
581         caddr_t client_data,
582         caddr_t call_data);
583 extern void AlrdyExistsCancelCB(
584         Widget w,
585         caddr_t client_data,
586         caddr_t call_data);
587 extern void AskIfSaveCancelCB(
588         Widget w,
589         caddr_t client_data,
590         caddr_t call_data);
591
592 /************************************************************************
593  *                      functions in fileDlg.c
594  ************************************************************************/
595 extern void PostAlreadyExistsDlg( 
596         Editor *pPad);
597 extern void SetSaveAsDefaultString(Editor *pPad);
598 extern void CreateSaveAsDialog(
599         Editor *pPad);
600 extern void ExtractAndStoreDir(
601         Editor *pPad,
602         char *fileName,
603         short type);
604 extern void GetFileName( 
605         Editor *pPad,
606         XmString title,
607         short type);
608 extern char *DialogTitle(
609         Editor *pPad);
610 extern void Warning( 
611         Editor *pPad,
612         char *mess,
613         unsigned char dialogType);
614 extern void AskIfSave(
615         Editor *pPad);
616 extern void PostSaveError(
617       Editor *pPad,
618       char *saveName,
619       DtEditorErrorCode errorCode);
620 extern void AskForConfirmation(
621         Editor *pPad);
622
623
624 /************************************************************************
625  *                      functions in editCB.c
626  ************************************************************************/
627 extern void EditUndoCB(
628         Widget w,
629         caddr_t client_data,
630         caddr_t call_data);
631 extern void EditCutCB(
632         Widget w,
633         caddr_t client_data,
634         caddr_t call_data);
635 extern void EditCopyCB(
636         Widget w,
637         caddr_t client_data,
638         caddr_t call_data);
639 extern void EditPasteCB(
640         Widget w,
641         caddr_t client_data,
642         caddr_t call_data);
643 extern void EditClearCB(
644         Widget w,
645         caddr_t client_data,
646         caddr_t call_data);
647 extern void EditDeleteCB(
648         Widget w,
649         caddr_t client_data,
650         caddr_t call_data);
651 extern void SelectAllCB(
652         Widget w,
653         caddr_t client_data,
654         caddr_t call_data);
655 extern void FindChangeCB(
656         Widget w,
657         caddr_t client_data,
658         caddr_t call_data);
659 extern void CheckSpellingCB(
660         Widget w,
661         caddr_t client_data,
662         caddr_t call_data);
663 extern void SetSelectionMenuItems(
664         Editor *pPad,
665         Boolean sensitivity);
666 extern void TextSelectedCB(
667         Widget w,
668         caddr_t client_data,
669         caddr_t call_data);
670 extern void TextDeselectedCB(
671         Widget w,
672         caddr_t client_data,
673         caddr_t call_data);
674
675
676 /************************************************************************
677  *                      functions in formatCB.c
678  ************************************************************************/
679 extern void FormatCB(
680         Widget w,
681         caddr_t client_data,
682         caddr_t call_data);
683 extern void FormatParaCB(
684         Widget w,
685         caddr_t client_data,
686         caddr_t call_data);
687 extern void FormatAllCB(
688         Widget w,
689         caddr_t client_data,
690         caddr_t call_data);
691
692
693 /************************************************************************
694  *                      functions in optionsCB.c
695  ************************************************************************/
696 extern void OverstrikeCB(
697         Widget w,
698         caddr_t client_data,
699         caddr_t call_data);
700
701 extern void WordWrapCB(
702         Widget w,
703         caddr_t client_data,
704         caddr_t call_data);
705
706 extern void StatusLineCB(
707         Widget w,
708         caddr_t client_data,
709         caddr_t call_data);
710
711
712 /************************************************************************
713  *                      functions in main.c
714  ************************************************************************/
715 extern void CreatePad(
716         Editor **ppPad);
717 extern void StartDbUpdate(
718         XtPointer clientData);
719 extern void exitCB(
720         Widget w,
721         XtPointer callData,
722         XtPointer clientData);
723 extern void setPanicConditions(void);
724 extern void SetWindowSize(
725         Editor *pPad);
726 extern void SetAppShellResizeHints(
727         Editor *pPad);
728 extern void RealizeNewPad(
729         Editor *pPad);
730 extern void ManageOldPad(
731         Editor *pPad,
732         Boolean isCurrentlyVisible);
733 extern void InitDtEditSession(
734         Editor *pPad,
735         int argc,
736         char **argv);
737 extern void SigcldHndlr(
738         int dummy);
739 extern void UnmanageAllDialogs(
740         Editor *pPad);
741 extern void RestoreInitialServerResources(
742         Editor *pPad);
743
744 #ifndef NO_MESSAGE_CATALOG
745 extern char * _DtpadGetMessage(
746         int set,
747         int number,
748         char *string);
749 #endif
750
751
752 /************************************************************************
753  *                      functions in dtpad.c
754  ************************************************************************/
755 extern void CreateDefaultImage(
756         char *bits,
757         int width,
758         int height,
759         char *name);
760 extern void ChangeMainWindowTitle(
761         Editor *pPad);
762 extern void SetWindowTitles(
763         Editor *pPad);
764 extern void SetSaveAsLabelAndDialog(
765         Editor *pPad);
766 extern void CreateMenuBar(
767         Editor *pPad);
768 extern void CreateEditorWidget(
769         Editor *pPad);
770 extern Boolean FindOrCreatePad(
771         Editor **ppPad);
772 extern char *MbStrchr(
773         char *str,
774         int ch);
775 extern char *MbStrchri(
776         char *str,
777         int ch,
778         int* in);
779 extern char *MbStrrchr(
780         char *str,
781         int ch);
782 extern char *MbBasename(
783         char *str);
784 #ifndef NO_MESSAGE_CATALOG
785 extern char *GetMessage(
786         int set,
787         int n,
788         char *s);
789 #endif
790 extern void SetStatusMessage(
791         Editor *pPad,
792         char *str);
793 extern void ClearStatusMessage(
794         Editor *pPad);
795
796
797 /************************************************************************
798  *                      functions in session.c
799  ************************************************************************/
800 extern void SaveSessionCB(
801         Widget w,
802         caddr_t client_data,
803         caddr_t call_data );
804 extern void closeCB(
805         Widget w,
806         caddr_t client_data,
807         caddr_t call_data );
808 extern void restoreSession(
809         Editor *pPad);
810 extern void RestorePad(
811         Editor *pPad,
812         int padNum,
813         XrmDatabase db);
814
815
816 /************************************************************************
817  *                      functions in fileIo.c
818  ************************************************************************/
819 extern void LoadFile(
820         Editor *pPad,
821         char *include);
822 extern char * GetTempFile(
823         void);
824 extern void PanicSave(
825         void);
826 extern void SetStatusLineMsg(
827         Editor *pPad);
828
829
830 /************************************************************************
831  *                      functions in helpDlg.c
832  ************************************************************************/
833 extern void SetHelpVolAndDisplayHelp(
834         Editor *pPad,
835         char *locationId,
836         char *helpVolume);
837 extern void DisplayHelp(
838         Editor *pPad,
839         char *helpVolume,
840         char *locationId);
841 extern void DisplayNewHelpWindow(
842         Editor *pPad,
843         char *helpVolume,
844         char *locationId);
845 extern Widget CreateHelpDialog(
846         Editor *pPad);
847 extern void DisplayHelpDialog(
848         Editor *pPad,
849         Widget helpDialog,
850         char *helpVolume,
851         char *locationId);
852
853
854 /************************************************************************
855  *                      functions in helpCB.c
856  ************************************************************************/
857 extern void HelpMenubarCB(
858         Widget w,
859         caddr_t client_data,
860         caddr_t call_data );
861
862 extern void HelpFileCB(
863         Widget w,
864         caddr_t client_data,
865         caddr_t call_data );
866 extern void HelpEditCB(
867         Widget w,
868         caddr_t client_data,
869         caddr_t call_data );
870 extern void HelpFormatCB(
871         Widget w,
872         caddr_t client_data,
873         caddr_t call_data );
874 extern void HelpOptionsCB(
875         Widget w,
876         caddr_t client_data,
877         caddr_t call_data );
878 extern void HelpHelpCB(
879         Widget w,
880         caddr_t client_data,
881         caddr_t call_data );
882
883 extern void HelpOpenDialogCB(
884         Widget w,
885         caddr_t client_data,
886         caddr_t call_data );
887 extern void HelpIncludeDialogCB(
888         Widget w,
889         caddr_t client_data,
890         caddr_t call_data );
891 extern void HelpSaveAsDialogCB(
892         Widget w,
893         caddr_t client_data,
894         caddr_t call_data );
895 extern void HelpFileSaveNewLinesCB(
896         Widget w,
897         caddr_t client_data,
898         caddr_t call_data );
899 extern void HelpAskIfSaveDialogCB(
900         Widget w,
901         caddr_t client_data,
902         caddr_t call_data );
903 extern void HelpFileAlreadyExistsCB(
904         Widget w,
905         caddr_t client_data,
906         caddr_t call_data );
907 extern void HelpEditorWidgetCB(
908         Widget w,
909         caddr_t client_data,
910         caddr_t call_data );
911
912 extern void HelpPrintSetupDialogCB(
913         Widget w,
914         XtPointer client_data,
915         XtPointer call_data );
916 extern void HelpPrintSetupAppSpecificCB(
917         Widget w,
918         XtPointer client_data,
919         XtPointer call_data );
920 extern void HelpPrintSetupGenericCB(
921         Widget w,
922         XtPointer client_data,
923         XtPointer call_data );
924 extern void HelpPrintSetupPageHeadersFootersCB(
925         Widget w,
926         XtPointer client_data,
927         XtPointer call_data );
928 extern void HelpPrintSetupPageMargins(
929         Widget w,
930         XtPointer client_data,
931         XtPointer call_data );
932
933 extern void HelpOverviewCB(
934         Widget w,
935         caddr_t client_data,
936         caddr_t call_data );
937 extern void HelpTasksCB(
938         Widget w,
939         caddr_t client_data,
940         caddr_t call_data );
941 extern void HelpTOCCB(
942         Widget w,
943         caddr_t client_data,
944         caddr_t call_data );
945 extern void HelpReferenceCB(
946         Widget w,
947         caddr_t client_data,
948         caddr_t call_data );
949 extern void HelpOnItemCB(
950         Widget w,
951         caddr_t client_data,
952         caddr_t call_data );
953 extern void HelpUsingHelpCB(
954         Widget w,
955         caddr_t client_data,
956         caddr_t call_data );
957 extern void HelpAboutCB(
958         Widget w,
959         caddr_t client_data,
960         caddr_t call_data );
961
962 extern void HelpHyperlinkCB(
963         Widget w,
964         caddr_t client_data,
965         caddr_t call_data );
966 extern void HelpCloseCB(
967         Widget w,
968         caddr_t client_data,
969         caddr_t call_data );
970
971
972 /************************************************************************
973  *                      functions in ttMsgSupport.c
974  ************************************************************************/
975 extern Tt_status TTstartDesktopMediaExchange(
976         Widget topLevelWithWmCommand,
977         Editor *pPad);
978 extern Boolean TTmediaDepositContents(
979         Editor *pPad);
980 extern Boolean TTmediaReply(
981         Editor *pPad);
982 extern void TTresetQuitArgs(
983         Editor *pPad);
984 extern void TTfailPendingQuit(
985         Editor *pPad);
986 extern Tt_status TTdesktopOpen(
987         int *ttFd,
988         Editor *pPad,
989         Boolean sendStarted );
990 extern void TTwarning(
991         Editor *pPad,
992         Tt_status status,
993         char *errsuff);
994
995 /************************************************************************
996  *                      functions in printJob.c
997  ************************************************************************/
998 extern PrintJob * PrintJobCreate(
999         char *documentName,
1000         char *tempFileName,
1001         Boolean silent,
1002         Editor *pPad);
1003 extern void PrintJobDestroy(
1004         PrintJob *pJob);
1005 extern void PrintJobExecute(
1006         PrintJob *pJob);
1007 extern void PrintJobCancel(
1008         PrintJob *pJob);
1009
1010 extern Display * PrintJobGetErrorPrintDisplay();
1011 extern void PrintJobSetErrorPrintDisplay(Display *display);
1012 extern Boolean PrintJobIsActivePrintDisplay(Display *display);
1013
1014 /************************************************************************
1015  *                      functions in printOption.c
1016  ************************************************************************/
1017 extern void PrintOptionsGetCurrent(
1018        PrintOptions *pOptions);
1019 extern void PrintOptionsGetDefault(
1020         PrintOptions *pOptions);
1021 extern void PrintOptionsSave(
1022         PrintOptions *pOptions);
1023
1024 /************************************************************************
1025  *                      functions in printOutput.c
1026  ************************************************************************/
1027 extern PrintOutput *PrintOutputCreate(
1028         Widget shell);
1029 extern void PrintOutputDestroy(
1030         PrintOutput *pOutput);
1031 extern void PrintOutputHideFooters(
1032         PrintOutput *pOutput);
1033 extern void PrintOutputShowFooters(
1034         PrintOutput *pOutput);
1035 extern void PrintOutputHideHeaders(
1036         PrintOutput *pOutput);
1037 extern void PrintOutputShowHeaders(
1038         PrintOutput *pOutput);
1039 extern void PrintOutputSetHdrFtrString(
1040         PrintOutput *pOutput,
1041         _DtPrintHdrFtrEnum which,
1042         char *contents);
1043 extern void PrintOutputSetHdrFtrStrings(
1044         PrintOutput *pOutput,
1045         char *hdrLeft,
1046         char *hdrRight,
1047         char *ftrLeft,
1048         char *ftrRight);
1049 extern void PrintOutputSetPageMargin(
1050         PrintOutput *pOutput,
1051         _DtPrintMarginEnum which,
1052         const char *margin,
1053         Boolean *parseError);
1054 extern void PrintOutputSetPageMargins(
1055         PrintOutput *pOutput,
1056         const char *marginTop,
1057         const char *marginRight,
1058         const char *marginBottom,
1059         const char *marginLeft,
1060         Boolean *parseError);
1061 extern void PrintOutputSetWordWrap(
1062         PrintOutput *pOutput,
1063         Boolean onOff);
1064 extern int PrintOutputGetLinesPerPage(
1065         PrintOutput *pOutput);
1066 extern int PrintOutputGetNumLines(
1067         PrintOutput *pOutput);
1068 extern Boolean PrintOutputPageUp(
1069         PrintOutput *pOutput);
1070 extern Boolean PrintOutputPageDown(
1071         PrintOutput *pOutput);
1072 extern void PrintOutputFirstPage(
1073         PrintOutput *pOutput);
1074 extern DtEditorErrorCode PrintOutputLoadFile(
1075         PrintOutput *pOutput,
1076         char *file);
1077
1078 /************************************************************************
1079  *                      functions in printSetup.c
1080  ************************************************************************/
1081 extern PrintSetup *PrintSetupCreate(
1082         Widget parent,
1083         char *docName,
1084         Boolean wordWrap,
1085         Editor *pPad,
1086         XtCallbackProc cancelCB, XtPointer cancelClosure,
1087         XtCallbackProc closeDisplayCB, XtPointer closeDisplayClosure,
1088         XtCallbackProc printCB, XtPointer printClosure,
1089         XtCallbackProc setupCB, XtPointer setupClosure
1090         );
1091 extern void PrintSetupDestroy(
1092         PrintSetup *pSetup);
1093 extern void PrintSetupDisplay(
1094         PrintSetup *pSetup);
1095 extern void PrintSetupSaveOptions(
1096         PrintSetup *pSetup);
1097 extern PrintStringTypeEnum PrintSetupGetHdrFtrSpec(
1098         PrintSetup *pSetup,
1099         _DtPrintHdrFtrEnum which);
1100 extern char *PrintSetupGetMarginSpec(
1101         PrintSetup *pSetup,
1102         _DtPrintMarginEnum which);
1103 extern Boolean PrintSetupGetDefaultPrintData(
1104         PrintSetup *pSetup,
1105         DtPrintSetupData *pData);
1106 extern Boolean  PrintSetupUseWordWrap(
1107         PrintSetup *pSetup);
1108
1109 #endif /* DTPAD_H */