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