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