Initial import of the CDE 2.1.30 sources from the Open Group.
[oweals/cde.git] / cde / programs / dtfile / Main.h
1 /* $TOG: Main.h /main/8 1999/12/09 13:06:45 mgreess $ */
2 /************************************<+>*************************************
3  ****************************************************************************
4  *
5  *   FILE:           Main.h
6  *
7  *   COMPONENT_NAME: Desktop File Manager
8  *
9  *   DESCRIPTION:    Structures and defines needed by all of the files
10  *
11  *   MACROS:    DPRINTF
12  *              DPRINTF2
13  *              FileManip
14  *              FileMoveCopy
15  *              FileMoveCopyDesktop
16  *              GETMESSAGE
17  *              MakeFile
18  *              MakeFilesFromBuffers
19  *              MakeFilesFromBuffersDT
20  *              XtMalloc
21  *
22  *   (c) Copyright 1993, 1994, 1995 Hewlett-Packard Company
23  *   (c) Copyright 1993, 1994, 1995 International Business Machines Corp.
24  *   (c) Copyright 1993, 1994, 1995 Sun Microsystems, Inc.
25  *   (c) Copyright 1993, 1994, 1995 Novell, Inc.
26  *
27  ****************************************************************************
28  ************************************<+>*************************************/
29
30 #ifndef _Main_h
31 #define _Main_h
32
33 /* ANSI C definitions */
34 #ifdef __STDC__
35 #define Const const
36 #else
37 #define Const /**/
38 #endif
39
40 /*  Replacing XtMalloc by XtCalloc */
41
42 #define XtMalloc(x)     XtCalloc(1,x)
43 /*  Unknown type of file.  */
44
45 #define DtUNKNOWN       255
46
47
48 /*  The defines for icon states  */
49
50 #define NORMAL          0
51 #define SELECTED        1
52
53
54 /*  Generally used defines  */
55
56 #define MAX_PATH        1024
57 #define BLOCK_SIZE      1024
58 #define BUF_SIZE        256
59
60
61 /*  Current Directory Area defines  */
62
63 #define CURRENT_DIRECTORY_PAD_X 10
64 #define CURRENT_DIRECTORY_PAD_Y 4
65
66 #define FAST_RENAME "fast_rename"
67
68 /*  Session restore defines  */
69
70 #define NORMAL_RESTORE  0
71 #define HOME_RESTORE    1
72 #define TOOL_RESTORE    2
73
74 #define TOOL_SETTINGS_FILENAME  "dtfile.appl"
75 #define HOME_SETTINGS_FILENAME  "dtfile.fmgr"
76
77 #define HOME_DIR_RESTORE     1
78 #define CURRENT_DIR_RESTORE  2
79
80 #define TOOL     0
81 #define NON_TOOL 1
82
83 #define PIXELS_PER_ROW_LARGE    82
84 #define PIXELS_PER_COLUMN_LARGE 128
85 #define PIXELS_PER_ROW_SMALL    35
86 #define PIXELS_PER_COLUMN_SMALL 128
87 #define FP_HEIGHT 115
88
89
90 /* Physical file type defines */
91
92 #define DtDATA          1
93 #define DtDIRECTORY     2
94 #define DtEXECUTABLE    3
95
96
97 /* Logical file type defines */
98
99 #define LT_BROKEN_LINK            "BROKEN_LINK"
100 #define LT_RECURSIVE_LINK         "RECURSIVE_LINK"
101 #define LT_DIRECTORY              "FOLDER"
102 #define LT_DATA                   "DATA"
103 #define LT_AGROUP                 "AGROUP"
104 #define LT_AGROUP_SUBDIR          "APPGROUP"
105 #define LT_TRASH                  "TRASH_FOLDER"
106 #define LT_FOLDER_LOCK            "FOLDER_LOCK"
107 #define LT_NON_WRITABLE_FOLDER    "NON_WRITABLE_FOLDER"
108 #define LT_DOT_FOLDER     "DOT_FOLDER"
109 #define LT_CURRENT_FOLDER "CURRENT_FOLDER"
110 #define LT_NON_WRITABLE_FOLDER    "NON_WRITABLE_FOLDER"
111
112
113 /* _DtMessage Dialog build defines */
114
115 #define ERROR_DIALOG    1
116 #define WARNING_DIALOG  2
117 #define QUESTION_DIALOG 3
118
119
120 /* Trash movement defines -- see FileMgr.c and Desktop.c */
121
122 #define TO_TRASH     1
123 #define WITHIN_TRASH 2
124 #define FROM_TRASH   3
125
126
127 /* Trash Action */
128 #define TRASH_ACTION    "Trash"
129
130
131 /*  Internal bitmap file names  */
132 #define CHANGE_VIEW_ICON_S      "change_view.s"
133 #define CHANGE_VIEW_ICON_M      "change_view.m"
134 #define MULTIPLE_FILE_DRAG      "drag.bm"
135 #define SMALL_DIRECTORY_ICON    CDE_INSTALLATION_TOP "/appconfig/icons/C/dirblue.t.pm"
136
137 #define TOOL_ICON_NAME     CDE_INSTALLATION_TOP "/appconfig/icons/C/Fpapps.l.pm"
138 #define TRASH_ICON_NAME    CDE_INSTALLATION_TOP "/appconfig/icons/C/Fptrsh.l.pm"
139 #define HOME_ICON_NAME     CDE_INSTALLATION_TOP "/appconfig/icons/C/Fphome.l.pm"
140
141
142 /* File manipulation types */
143 #define MOVE_FILE       0
144 #define COPY_FILE       1
145 #define LINK_FILE       2
146 #define REMOVE_FILE     3
147 #define TRASH_FILE      4
148 #define RENAME_FILE     5
149 #define MERGE_DIR       6
150 #define MAKE_BUFFER     7
151
152 /* object placement values (for objectPlacement on the desktop) */
153 #define OBJ_PLACE_LEFT_PRIMARY         (1L << 0)
154 #define OBJ_PLACE_RIGHT_PRIMARY        (1L << 1)
155 #define OBJ_PLACE_TOP_PRIMARY          (1L << 2)
156 #define OBJ_PLACE_BOTTOM_PRIMARY       (1L << 3)
157 #define OBJ_PLACE_LEFT_SECONDARY       (1L << 4)
158 #define OBJ_PLACE_RIGHT_SECONDARY      (1L << 5)
159 #define OBJ_PLACE_TOP_SECONDARY        (1L << 6)
160 #define OBJ_PLACE_BOTTOM_SECONDARY     (1L << 7)
161 #define OBJ_PLACE_EDGE                 (1L << 8)
162 #define OBJ_PLACE_TIGHT                (1L << 9)
163 #define OBJ_PLACE_RESERVE              (1L << 10)
164
165 /* defines for the icon type on the Desktop */
166 #define DEFAULT 0
167 #define LARGE   1
168 #define SMALL   2
169
170 /* defines for whether to open New or use current */
171 #define CURRENT 0
172 #define NEW 1
173
174 /* defines for tree branch operations */
175 #define BRANCH_UPDATE   0
176 #define BRANCH_EXPAND   1
177 #define BRANCH_COLLAPSE 2
178
179 /* defines for Selected Menu button */
180 #define SELECTED_MENU_MAX  12  /* This is the number of children in Selected
181                                   menu pane excluding all action items
182                                   ('move to', 'copy to' ...
183                                    'change permission', separator)
184                                   Will use this to know where to unmanage
185                                   action menu items for the Selected menu pane.
186                                */
187                       
188 /* defines for default Buffer file names */
189 #define DEFAULT_BUFFER_FILENAME        "Untitled"
190 #define MAX_POSTFIX_LENGTH              11
191
192
193 /* Creation mask */
194 #define DtFILE_DATA_CREATION_MASK    S_IRUSR | S_IWUSR |  S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH
195 #define DtFILE_DIR_CREATION_MASK     S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP | S_IROTH | S_IWOTH | S_IXOTH
196 #define DtFILE_OTHER_CREATION_MASK   S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP | S_IROTH | S_IWOTH | S_IXOTH
197
198
199 #include <Tt/tttk.h>
200
201 /*  The main directory structure and directory set list  */
202 typedef struct
203 {
204    XtPointer dialog_data;
205    char  * host_name;
206    char  * directory_name;
207    Tt_message msg;
208    Tt_pattern * pats;
209 } View;
210
211 typedef struct
212 {
213   int x, y;
214 } WindowPosition;
215
216 /* Used by File.c */
217 typedef int (*StrcollProc) (const char *,const char *);
218
219 /* Global strings */
220 extern char DESKTOP_DIR[];
221 extern char DTFILE_CLASS_NAME[];
222 extern char DTFILE_HELP_NAME[];
223
224
225 /* Trash globals */
226 extern Widget trashShell;
227 extern DialogData * primaryTrashHelpDialog;
228 extern DialogData ** secondaryTrashHelpDialogList;
229 extern int secondaryTrashHelpDialogCount;
230
231
232 /*  debugging output  */
233 #ifdef DEBUG
234 extern int debug;
235 #define DBGFORK(p)  if (debug) {fflush(stdout); printf("pid %d, ppid %d:  ",getpid(),getppid()); printf p ; fflush(stdout);}
236 #define DPRINTF(p)  \
237   if (debug) {printf("pid %d, ppid %d:  ",getpid(),getppid()); printf p ;}
238 #define DPRINTF2(p) \
239   if (debug>=2) {printf("pid %d, ppid %d:  ",getpid(),getppid()); printf p ;}
240 #else
241 #define DBGFORK(p)  /* noop */
242 #define DPRINTF(p)  /* noop */
243 #define DPRINTF2(p) /* noop */
244 #endif
245
246 /*  Externally referenced globals  */
247
248 extern Widget toplevel;
249 extern char * application_name;
250 extern long root_user;
251 extern char home_host_name[];
252 extern char users_home_dir[];
253 extern Pixel black_pixel;
254 extern Pixel white_pixel;
255 extern XtPointer initiating_view;
256 extern Boolean special_view;
257 extern Boolean TrashView;
258 extern XmFontList user_font;
259 extern Boolean showFilesystem;
260 extern Boolean showDropZone;
261 extern Boolean showEmptySet;
262 extern Boolean showEmptyMsg;
263 extern Boolean restrictMode;
264 extern int openDirType;
265 extern char *root_title;
266 extern char *fileMgrTitle;
267 extern char *fileMgrHelpVol;
268 extern int desktopIconType;
269 extern Boolean freezeOnConfig;
270 #if defined(__hpux) || defined(sun)
271 extern Boolean follow_links;
272 #endif
273 extern int maxDirectoryProcesses;
274 extern int maxRereadProcesses;
275 extern int maxRereadProcsPerTick;
276 extern int rereadTime;
277 extern int checkBrokenLink;
278 extern int trashWait;
279 extern int desktopPlacement;
280 extern int treeType;
281 extern int treeFiles;
282 extern int viewType;
283 extern int orderType;
284 extern int directionType;
285 extern int randomType;
286 extern int special_treeType;
287 extern int special_treeFiles;
288 extern int special_viewType;
289 extern int special_orderType;
290 extern int special_directionType;
291 extern int special_randomType;
292 extern int instanceWidth;
293 extern int instanceHeight;
294 extern char *special_restricted;
295 extern char *special_title;
296 extern char *special_helpVol;
297 extern char *fileMgrIcon;
298 extern char *appMgrIcon;
299 extern char *trashIcon;
300 extern int retryLoadDesktopInfo;
301 extern int smallIconWidth;
302 extern int smallIconHeight;
303 extern int largeIconWidth;
304 extern int largeIconHeight;
305 extern Boolean emptyTrashOnExit;
306 extern String openInPlace;
307 extern String openNewView;
308 extern char * desktop_dir;
309 extern char * trash_dir;
310 extern char * remote_sys_dir;
311 extern XmString okXmString;
312 extern XmString cancelXmString;
313 extern XmString helpXmString;
314 extern XmString applyXmString;
315 extern XmString closeXmString;
316 extern unsigned int currentMenuStates;
317 extern Boolean b1Drag;
318 extern Boolean dragActive;
319 extern int restoreType;
320 extern int file_mgr_dialog;
321 extern int change_dir_dialog;
322 extern int preferences_dialog;
323 extern int filter_dialog;
324 extern int find_dialog;
325 extern int mod_attr_dialog;
326 extern int help_dialog;
327 extern Boolean TurnOnTextName;
328 extern int numColumns;
329 extern int numRows;
330 extern FileMgrPopup fileMgrPopup;
331 extern unsigned char keybdFocusPolicy;
332 extern FileMgrData *trashFileMgrData;
333 extern DialogData *trashDialogData;
334 #ifdef SHAPE
335 extern Boolean shapeExtension;
336 #endif
337
338 extern Widget * create_dataBtn;
339 extern Widget * renameBtn;
340 extern Widget * moveBtn;
341 extern Widget * duplicateBtn;
342 extern Widget * linkBtn;
343 extern Widget * findBtn;
344 extern Widget * create_directoryBtn;
345 extern Widget * change_directoryBtn;
346 extern Widget * preferencesBtn;
347 extern Widget * filterBtn;
348 extern Widget * defaultEnvBtn;
349 extern Widget * homeBarBtn;
350 extern Widget * upBarBtn;
351 extern Widget * newViewBtn;
352 extern Widget * cleanUpBtn;
353 extern Widget * separator1;
354 extern Widget * separator2;
355 extern Widget * terminalBtn;
356 extern Widget * showHiddenMenu;
357 extern Widget * usingHelp;
358 extern Widget * fileManagerHelp;
359 extern Widget * applicationManagerHelp;
360 extern Widget * usingHelpTrash;
361
362 extern Widget widget_dragged;
363
364 /* Drag state variables */
365 extern Boolean B1DragPossible;
366 extern Boolean B2DragPossible;
367 extern Boolean ProcessBtnUp;
368 extern Boolean ProcessBtnUpCD;
369 extern int initialDragX;
370 extern int initialDragY;
371 extern int dragThreshold;
372 extern int xErrorDetected;
373
374 /* BMenu button binding */
375 extern int bMenuButton;
376
377 extern char translations_sp_esc[];
378 extern char translations_space[];
379 extern char translations_escape[];
380 extern char translations_da[];
381
382 extern View ** view_set;
383 extern int view_count;
384 extern int view_set_size;
385
386 extern StrcollProc FMStrcoll;
387 extern XtIntervalId checkBrokenLinkTimerId;
388
389 /********    Public Function Declarations    ********/
390
391
392 #include <Xm/GadgetP.h>
393 #include <Xm/ManagerP.h>
394
395 #include <Dt/DtP.h>
396 #include <Dt/Action.h>
397 #include <Dt/Dnd.h>
398
399 #include "sharedFuncs.h"
400 #include "FileMgr.h"
401 #include "ChangeDir.h"
402 #include "ModAttr.h"
403
404 /* prototypes from Main.c */
405
406 extern void SaveSettingsCB(
407                         Widget w,
408                         XtPointer client_data,
409                         XtPointer call_data) ;
410 extern void SaveSessionCallback(
411                         Widget w,
412                         XtPointer client_data,
413                         XtPointer call_data) ;
414 extern DialogData *ViewDirectoryProc(
415                         char *root_dir,
416                         int restricted,
417                         Tt_message msg) ;
418 extern DialogData *GetNewView(
419                         char *host_name,
420                         char *directory_name,
421                         char *type,
422                         WindowPosition *position,
423                         Tt_message msg) ;
424 extern void CloseView(
425                         DialogData *dialog_data) ;
426 extern void DirectoryContentsModified(
427                         char *host_name,
428                         char *directory_name,
429                         FileMgrRec *file_mgr_rec) ;
430 extern void DirectoryChanged(
431                         XtPointer file_mgr_data,
432                         char *old_host_name,
433                         char *new_host_name,
434                         char *old_directory_name,
435                         char *new_directory_name) ;
436 extern PixmapData * CheckForOpenDirectory(
437                         FileViewData *order_list,
438                         DirectorySet *directory_set,
439                         FileMgrData *file_mgr_data,
440                         char * logical_type) ;
441 extern FileMgrData * ReturnDesktopPtr (
442                         Widget w);
443 extern void CleanUp (
444                         Widget w,
445                         XtPointer client_data,
446                         XtPointer call_data) ;
447 extern void DragEndedHandler(
448                         Display *drop_display,
449                         Window drop_window,
450                         Position drop_x,
451                         Position drop_y,
452                         Window root_window,
453                         Position root_x,
454                         Position root_y,
455                         unsigned int modifiers,
456                         char *types,
457                         char *objects,
458                         XtPointer client_data) ;
459 extern char * GetMessage(
460                         int set,
461                         int n,
462                         char *s) ;
463 extern FileMgrData * CheckOpenDir (
464                         char * directory,
465                         char * host) ;
466 extern char * GetRestrictedDirectory ( Widget widget) ;
467 extern char * BuildTrueDTFilePath(
468                         DesktopRec *desktopWindow,
469                         FileViewData *file_view_data) ;
470 extern void ForceMyIconClosed (
471                         char * host_name,
472                         char * directory_name) ;
473 extern void ForceMyIconOpen (
474                         char * host_name,
475                         char * directory_name) ;
476 extern Tt_callback_action HandleTtRequest(
477                         Tt_message msg,
478                         Tt_pattern pat) ;
479
480 /* prototype from ChangeDir.c */
481
482 extern void ChangeToNewDir (
483                         Widget text_field,
484                         XtPointer client_data,
485                         XmAnyCallbackStruct * callback_data );
486 extern void DropOnChangeView (
487                         Widget w,
488                         XtPointer client_data,
489                         XtPointer call_data ) ;
490 extern void TextChange(
491                         Widget text,
492                         XtPointer client_data,
493                         XmTextVerifyCallbackStruct * callback_data );
494
495 /* prototypes from ChangeDirP.c */
496
497 extern void ShowNewDirectory(
498                         FileMgrData *,
499                         char *,
500                         char * );
501 extern void ShowChangeDirDialog(
502                         Widget w,
503                         XtPointer client_data,
504                         XtPointer callback) ;
505 extern void CurrentDirSelected(
506                         Widget w,
507                         XtPointer client_data,
508                         XtPointer call_data) ;
509 extern void CurrentDirDropCallback(
510                         Widget w,
511                         XtPointer client_data,
512                         XtPointer call_data) ;
513 extern void CurrentDirIconCallback(
514                         Widget w,
515                         XtPointer client_data,
516                         XtPointer call_data) ;
517 extern void CurrentDirExposed(
518                         Widget w,
519                         XtPointer client_data,
520                         XtPointer call_data) ;
521 extern Boolean GetStatusMsg(
522                         FileMgrData *file_mgr_data,
523                         char *buf) ;
524 extern void DrawCurrentDirectory(
525                         Widget w,
526                         FileMgrRec *file_mgr_rec,
527                         FileMgrData *file_mgr_data) ;
528 extern void CurrentDirectoryIconMotion(
529                         Widget w,
530                         XtPointer client_data,
531                         XEvent *event) ;
532 extern void ShowFastChangeDir(
533                         FileMgrRec *file_mgr_rec,
534                         FileMgrData *file_mgr_data ) ;
535 extern void IconicPathExposeCallback(
536                         Widget w,
537                         XtPointer client_data,
538                         XtPointer call_data) ;
539 extern void IconicPathResizeCallback(
540                         Widget w,
541                         XtPointer client_data,
542                         XEvent *event) ;
543
544 /* prototype from Command.c */
545
546 extern void UpdateActionMenuPane(
547                         XtPointer client_data,
548                         FileMgrRec *file_mgr_rec,
549                         char * file_type,
550                         int type,
551                         int number,
552                         Widget widget,
553                         unsigned char physical_type) ;
554 extern void RunCommand( char *command,
555                         FileMgrData *file_mgr_data,
556                         FileViewData *file_view_data,
557                         WindowPosition *position,
558                         DtDndDropCallbackStruct *drop_parameters,
559                         Widget drop_window) ;
560 extern Boolean InvalidTrashDragDrop ( int drop_op,
561                                       int trash_context,
562                                       Widget w) ;
563 extern void ProcessNewView ( char *command,
564                              FileMgrData *file_mgr_data,
565                              FileViewData *file_view_data,
566                              WindowPosition *position) ;
567 extern void ProcessMoveCopyLink ( char *command,
568                                   FileMgrData *file_mgr_data,
569                                   FileViewData *file_view_data,
570                                   DtDndDropCallbackStruct *drop_parameters,
571                                   Widget drop_window) ;
572 extern void ProcessAction ( char *action,
573                             FileViewData *file_view_data,
574                             DtDndDropCallbackStruct *drop_parameters,
575                             char *cur_host,
576                             char *cur_dir,
577                             char *restricted_dir,
578                             Widget w) ;
579
580 /* prototype from Common.c */
581
582 extern void VFTextChangeSpace(
583                         Widget text,
584                         XEvent *event,
585                         XtPointer params,
586                         XtPointer num_params ) ;
587 extern void CancelOut(
588                         Widget widget,
589                         XEvent *event,
590                         XtPointer params,
591                         XtPointer num_params ) ;
592 extern void AddString(
593                         String *buf,
594                         int *size,
595                         String string,
596                         String header ) ;
597
598 /* prototype from MakeDir.c */
599
600 extern int RunFileCommand(
601                         register char *command_path,
602                         register char *argument1,
603                         register char *argument2,
604                         register char *argument3) ;
605
606 /* prototypes from Directory.h */
607
608 extern void InitializeDirectoryRead(
609                         Widget widget) ;
610 extern void FileWindowMapUnmap(
611                         FileMgrData *file_mgr_data) ;
612 extern int ReadDir(
613                         Widget w,
614                         FileMgrData *file_mgr_data,
615                         char *host_name,
616                         char *directory_name,
617                         FileViewData *dp,
618                         int level,
619                         int read_level,
620                         char **branch_list) ;
621 extern void RereadDirectory(
622                         Widget w,
623                         char *host_name,
624                         char *directory_name) ;
625 extern void UpdateDirectory(
626                         Widget w,
627                         char *host_name,
628                         char *directory_name) ;
629 extern void DirectoryBeginModify(
630                         char *host_name,
631                         char *directory_name) ;
632 extern void DirectoryModifyTime(
633                         char *host_name,
634                         char *directory_name,
635                         long modify_time) ;
636 extern void DirectoryFileModified(
637                         char *host_name,
638                         char *directory_name,
639                         char *file_name) ;
640 extern void DirectoryEndModify(
641                         char *host_name,
642                         char *directory_name) ;
643 extern void UpdateDirectorySet( void ) ;
644 extern void UpdateCachedDirectories(
645                         View **view_set,
646                         int view_count) ;
647 extern char * GetLongName(
648                         FileData *file_data) ;
649 extern Boolean DirectoryBusy(
650                         char *path) ;
651 extern char * GetDirectoryLogicalType(
652                         FileMgrData *file_mgr_data,
653                         char *path) ;
654 extern FileData * FileData2toFileData(
655                         FileData2 *file_data2,
656                         int *l);
657 extern int ReadFileData2(
658                         FileData2 *fdata,
659                         char *full_directory_name,
660                         char *file_name,
661                         Boolean IsToolBox) ;
662 extern void FreeFileData(
663                         FileData *file_data,
664                         Boolean free_all) ;
665 extern FileData * LookupFileData(
666                         char *host_name,
667                         char *directory_name,
668                         char *file_name) ;
669 extern int GetDirectoryPositionInfo(
670                         char *host_name,
671                         char *directory_name,
672                         PositionInfo **position_info) ;
673 extern int SetDirectoryPositionInfo(
674                         char *host_name,
675                         char *directory_name,
676                         int position_count,
677                         PositionInfo *position_info) ;
678 extern void TimerEventBrokenLinks(
679                         XtPointer client_data,
680                         XtIntervalId *id);
681 extern char * GetTTPath(
682                         char *name) ;
683
684 /* prototypes for File.c */
685
686 extern void SetHotRects (
687                         FileViewData * file_view_data,
688                         XtCallbackProc callback,
689                         XtPointer callback_data) ;
690 extern unsigned char TypeToDropOperations (
691                         char * file_type) ;
692 extern char * TypeToAction (
693                         unsigned char operation,
694                         char * logical_type) ;
695 extern void OrderFiles(
696                         FileMgrData *file_mgr_data,
697                         DirectorySet *directory_set) ;
698 extern void FilterFiles(
699                         FileMgrData *file_mgr_data,
700                         DirectorySet *directory_set) ;
701 extern void UnmanageFileIcons(
702                         FileMgrRec *file_mgr_rec,
703                         FileMgrData *file_mgr_data,
704                         FileViewData *file_view_data);
705 extern void UpdateFileIcons(
706                         FileMgrRec *file_mgr_rec,
707                         FileMgrData *file_mgr_data,
708                         Boolean new_directory) ;
709 extern void AddFileIcons(
710                         FileMgrRec *file_mgr_rec,
711                         FileMgrData *file_mgr_data,
712                         DirectorySet * add_dir_set) ;
713 extern void EraseTreeLines(
714                         FileMgrRec *file_mgr_rec,
715                         FileMgrData *file_mgr_data,
716                         FileViewData *file_view_data) ;
717 extern void RedrawTreeLines(
718                         Widget w,
719                         int ex, int ey, int ewidth, int eheight, int ecount,
720                         FileMgrRec *file_mgr_rec,
721                         FileMgrData *file_mgr_data) ;
722 extern void LayoutFileIcons(
723                         FileMgrRec *file_mgr_rec,
724                         FileMgrData *file_mgr_data,
725                         Boolean update_scrolling_position,
726                         Boolean turn_off_hourglass) ;
727 extern Pixmap GetTreebtnPixmap(
728                         FileMgrData *file_mgr_data,
729                         FileViewData *file_view_data);
730 extern void IconCallback(
731                         Widget w,
732                         XtPointer clientData,
733                         XtPointer callData) ;
734 extern void FileIconMotion(
735                         Widget w,
736                         XtPointer clientData,
737                         XEvent *event) ;
738 extern Boolean FileIsSelected(
739                         FileMgrData *file_mgr_data,
740                         FileViewData *file_view_data) ;
741 extern void SelectFile(
742                         FileMgrData *file_mgr_data,
743                         FileViewData *file_view_data) ;
744 extern void DeselectFile(
745                         FileMgrData *file_mgr_data,
746                         FileViewData *file_view_data,
747                         Boolean valid ) ;
748 extern void DeselectAllFiles(
749                         FileMgrData *file_mgr_data) ;
750 extern void SelectAllFiles(
751                         FileMgrData *file_mgr_data) ;
752 extern void SetToSelectColors(
753                         Widget widget,
754                         Widget file_window,
755                         int type) ;
756 extern void SetToNormalColors(
757                         Widget widget,
758                         Widget bg_fg_colors,
759                         Widget top_shadow_colors,
760                         int type) ;
761 extern void GetTarget(
762                         char *from_host,
763                         char *from_dir,
764                         char *new_name,
765                         char *to_host,
766                         char *to_dir,
767                         char *to_file);
768 extern Boolean FileMoveCopy(
769                         FileMgrData *file_mgr_data,
770                         char *to_file,
771                         char *directory,
772                         char *host,
773                         char **host_set,
774                         char **file_set,
775                         int file_count,
776                         unsigned int modifiers,
777                         void (*finish_callback)(),
778                         XtPointer callback_data);
779 extern void RepositionIcons(
780                         FileMgrData *file_mgr_data,
781                         char **file_list,
782                         int file_count,
783                         Position drop_x,
784                         Position drop_y,
785                         Boolean late_binding_needed) ;
786 extern void RegisterDesktopHotspots(
787                         FileMgrData *file_mgr_data,
788                         FileMgrRec *file_mgr_rec) ;
789 extern void DestroyIconName(
790                         Widget w,
791                         XtPointer client_data,
792                         XtPointer call_data) ;
793 extern void CreateNameChangeDialog(
794                         Widget w,
795                         FileViewData *file_view_data,
796                         XtPointer client_data,
797                         int type) ;
798 extern void SavePositionalData(
799                         int fd,
800                         FileMgrData *file_mgr_data,
801                         char **name_list,
802                         char *name) ;
803 extern void RestorePositionalData(
804                         XrmDatabase db,
805                         char **name_list,
806                         FileMgrData *file_mgr_data,
807                         char *name) ;
808 extern void UnpostTextField(
809                         FileMgrData *file_mgr_data) ;
810 extern void UnpostTextPath(
811                         FileMgrData *file_mgr_data) ;
812 extern void RedrawOneGadget(
813                         Widget child,
814                         XEvent *event,
815                         Region region) ;
816 extern void RepaintDesktop(
817                         FileMgrData *file_mgr_data,
818                         XEvent *event,
819                         Region region) ;
820 extern void DrawingAreaRedisplay(
821                         Widget wid,
822                         XEvent *event,
823                         Region region) ;
824 extern ObjectPtr GetBottomOfStack(
825                         FileMgrData *file_mgr_data) ;
826 extern ObjectPtr GetTopOfStack(
827                         FileMgrData *file_mgr_data) ;
828 extern void RepositionUpInStack(
829                         FileMgrData *file_mgr_data,
830                         int oldPos,
831                         int newPos) ;
832 extern ObjectPtr FindCurrentPosition(
833                         FileMgrData *file_mgr_data,
834                         char *file_name) ;
835 extern void RepairStackingPointers(
836                         FileMgrData *file_mgr_data) ;
837 extern void OrderChildrenList(
838                         FileMgrData *file_mgr_data) ;
839 extern void PositionFileView(
840                         FileViewData *file_view_data,
841                         FileMgrData *file_mgr_data) ;
842 extern void DrawHighlight (
843                         Widget w,
844                         FileViewData *file_view_data,
845                         FileMgrData *file_mgr_data,
846                         int type );
847 extern void DrawUnhighlight (
848                         Widget w,
849                         int type);
850 extern void DrawShadowTh (
851                         Widget w,
852                         GC gc,
853                         int type);
854 extern void FmPopup (
855                         Widget w,
856                         XtPointer client_data,
857                         XEvent *event,
858                         FileMgrData *file_mgr_data);
859 extern Boolean VerticalScrollbarIsVisible(
860                         Widget vertSB,
861                         Widget scrolledWin);
862 extern Boolean HorizontalScrollbarIsVisible(
863                         Widget hortSB,
864                         Widget scrolledWin);
865 extern void RepairFileWindow (
866                         FileMgrData * file_mgr_data);
867 StrcollProc GetStrcollProc(void);
868
869
870
871
872 /* prototypes from FileDialog.h */
873
874 extern void ShowRenameFileDialog(
875                         Widget w,
876                         XtPointer client_data,
877                         XtPointer call_data) ;
878 extern void ShowCopyFileDialog(
879                         Widget w,
880                         XtPointer client_data,
881                         XtPointer call_data) ;
882 extern void ShowMoveFileDialog(
883                         Widget w,
884                         XtPointer client_data,
885                         XtPointer call_data) ;
886 extern void ShowLinkFileDialog(
887                         Widget w,
888                         XtPointer client_data,
889                         XtPointer call_data) ;
890 extern void ShowMakeFileDialog(
891                         Widget w,
892                         XtPointer client_data,
893                         XtPointer call_data) ;
894 extern void RenameDone(
895                         XtPointer client_data,
896                         int rc) ;
897 extern int RecheckFlag(
898                         Widget parent,
899                         Widget w);
900 extern void ResetFlag(
901                         Widget parent,
902                         Widget w);
903
904 /* prototypes from FileManip.h */
905
906 extern void FileOperationError(
907                         Widget w,
908                         char *message1,
909                         char *message2) ;
910 extern Boolean FileManip(
911                         Widget w,
912                         int mode,
913                         register char *from,
914                         register char *to,
915                         Boolean isContainer,
916                         void (*errorHandler)(),
917                         Boolean checkForBusyDir,
918                         int type);
919 extern char * DName(
920                         register char *name) ;
921
922 /* prototypes from FileMgr.h */
923
924 extern PixmapData * GetPixmapData(
925                         FileMgrRec *file_mgr_rec,
926                         FileMgrData *file_mgr_data,
927                         char *path,
928                         Boolean large) ;
929 extern void SetSpecialMsg(
930                         FileMgrRec *file_mgr_rec,
931                         FileMgrData *file_mgr_data,
932                         char *msg) ;
933 extern void UpdateHeaders(
934                         FileMgrRec *file_mgr_rec,
935                         FileMgrData *file_mgr_data,
936                         Boolean icons_changed) ;
937 extern void FileMgrRedisplayFiles(
938                         FileMgrRec *file_mgr_rec,
939                         FileMgrData *file_mgr_data,
940                         Boolean new_directory) ;
941 extern void ShowNewDirectory(
942                         FileMgrData *file_mgr_data,
943                         char *host_name,
944                         char *directory_name) ;
945 extern void FileMgrReread(
946                         FileMgrRec *file_mgr_rec) ;
947 extern void FileMgrBuildDirectories(
948                         FileMgrData *file_mgr_data,
949                         char *host_name,
950                         char *directory_name) ;
951 extern Boolean DropOnGadget(
952                         FileMgrData *file_mgr_data,
953                         Widget w,
954                         Position x,
955                         Position y) ;
956 extern void FileMgrProcessDrop(
957                         FileMgrData *file_mgr_data,
958                         FileMgrRec *file_mgr_rec,
959                         Window w,
960                         Position drop_x,
961                         Position drop_y,
962                         unsigned int modifiers,
963                         char *types,
964                         char *files) ;
965 extern void FileMgrPropagateSettings(
966                         FileMgrData *src_data,
967                         FileMgrData *dst_data) ;
968 extern void Close(
969                         Widget w,
970                         XtPointer client_data,
971                         XtPointer call_data) ;
972 extern void ShowChangeDirField(
973                         Widget w,
974                         XtPointer client_data,
975                         XtPointer callback) ;
976 extern void FreePositionInfo(
977                         FileMgrData *file_mgr_data) ;
978 extern Boolean PositioningEnabledInView(
979                         FileMgrData *file_mgr_data) ;
980 extern Boolean PositionFlagSet(
981                         FileMgrData *file_mgr_data) ;
982 extern void InheritPositionInfo(
983                         FileMgrData *src_file_mgr_data,
984                         FileMgrData *dest_file_mgr_data) ;
985 extern void SavePositionInfo(
986                         FileMgrData *file_mgr_data) ;
987 extern void LoadPositionInfo(
988                         FileMgrData *file_mgr_data) ;
989 extern void SetPWD(
990                         char *viewHost,
991                         char *viewDir,
992                         char **pwdHostRet,
993                         char **pwdDirRet,
994                         char *type) ;
995 extern FileViewData * DropOnPrimaryHotspot (
996                         FileMgrData * file_mgr_data,
997                         Position drop_x,
998                         Position drop_y,
999                         DirectorySet ** directory_data);
1000 extern void DropOnFileWindow (
1001                         Widget w,
1002                         XtPointer client_data,
1003                         XtPointer call_data);
1004 extern void DropOnObject (
1005                         Widget w,
1006                         XtPointer client_data,
1007                         XtPointer call_data);
1008 extern void CheckMoveType(
1009                         FileMgrData *file_mgr_data,
1010                         FileViewData *file_view_data,
1011                         DirectorySet * directory_data,
1012                         DesktopRec * desktopWindow,
1013                         char **file_set,
1014                         char **host_set,
1015                         unsigned int modifiers,
1016                         int file_count,
1017                         Position drop_x,
1018                         Position drop_y,
1019                         int view ) ;
1020 extern void UpdateBranchList(
1021                         FileMgrData *file_mgr_data,
1022                         DirectorySet *directory_set) ;
1023 extern Boolean QueryBranchList(
1024                         FileMgrData *file_mgr_data,
1025                         char **branch_list,
1026                         char *directory_name,
1027                         TreeShow *tsp) ;
1028 extern void UpdateBranchState(
1029                         FileMgrData *file_mgr_data,
1030                         FileViewData *ip,
1031                         int op,
1032                         Boolean busy) ;
1033 extern void DirTreeExpand(
1034                         FileMgrData *file_mgr_data,
1035                         FileViewData *ip,
1036                         Boolean expand) ;
1037
1038 /* prototype from Filter.c */
1039 extern void UpdataFilterAfterDBReread (
1040                         DialogData * dialog_data) ;
1041
1042 /* prototype from FilterP.c */
1043
1044 extern void ShowFilterDialog(
1045                         Widget w,
1046                         XtPointer client_data,
1047                         XtPointer callback) ;
1048 extern void ShowHiddenFiles (
1049                         Widget  w,
1050                         XtPointer client_data,
1051                         XtPointer callback) ;
1052 extern void NewFileTypeSelected (
1053                         Widget  w,
1054                         XtPointer client_data,
1055                         XtPointer callback) ;
1056 extern void SelectAllFileTypes (
1057                         Widget  w,
1058                         XtPointer client_data,
1059                         XtPointer callback) ;
1060 extern void UnselectAllFileTypes (
1061                         Widget  w,
1062                         XtPointer client_data,
1063                         XtPointer callback) ;
1064
1065 /* prototype from FindP.c */
1066
1067 extern void ShowFindDialog(
1068                         Widget w,
1069                         XtPointer client_data,
1070                         XtPointer callback) ;
1071
1072 /* prototype from IconWindow.c */
1073
1074 extern void FileWindowExposeCallback(
1075                         Widget w,
1076                         XtPointer client_data,
1077                         XtPointer call_data) ;
1078 extern void FileWindowResizeCallback(
1079                         Widget w,
1080                         XtPointer client_data,
1081                         XEvent *event) ;
1082 extern void FileWindowMapCallback(
1083                         Widget w,
1084                         XtPointer client_data,
1085                         XEvent *event ) ;
1086 extern void FileWindowInputCallback(
1087                         Widget w,
1088                         XtPointer client_data,
1089                         XtPointer call_data) ;
1090 extern void WidgetRectToRegion (
1091                         FileMgrData * file_mgr_data,
1092                         Widget w,
1093                         Region region) ;
1094
1095 /* prototype from Menu.c */
1096
1097 extern Widget CreateMenu(
1098                         Widget main,
1099                         FileMgrRec *file_mgr_rec) ;
1100 extern void ActivateSingleSelect(
1101                         FileMgrRec *file_mgr_rec,
1102                         char * file_type) ;
1103 extern void ActivateMultipleSelect(
1104                         FileMgrRec *file_mgr_rec) ;
1105 extern void ActivateNoSelect(
1106                         FileMgrRec *file_mgr_rec) ;
1107 extern void UnselectAll(
1108                         Widget w,
1109                         XtPointer client_data,
1110                         XtPointer call_data) ;
1111 extern void SelectAll(
1112                         Widget w,
1113                         XtPointer client_data,
1114                         XtPointer call_data) ;
1115
1116 extern void TrashFiles(
1117                         Widget w,
1118                         XtPointer client_data,
1119                         XtPointer call_data) ;
1120 extern void ChangeToHome(
1121                         Widget w,
1122                         XtPointer client_data,
1123                         XtPointer call_data ) ;
1124 extern void ChangeToParent(
1125                         Widget w,
1126                         XtPointer client_data,
1127                         XtPointer call_data ) ;
1128
1129 /* prototype from ModAttr.c */
1130
1131 extern Boolean LoadFileAttributes(
1132                         String host,
1133                         String dir,
1134                         String file,
1135                         ModAttrData *modAttr_data) ;
1136 extern void ModAttrChange(
1137                         XtPointer client_data,
1138                         DialogData *old_dialog_data,
1139                         DialogData *new_dialog_data,
1140                         XtPointer call_data) ;
1141 extern void ModAttrClose(
1142                         XtPointer client_data,
1143                         DialogData *old_dialog_data,
1144                         DialogData *new_dialog_data) ;
1145 extern void ModAttrFreeValues(
1146                         ModAttrData *modAttr_data );
1147
1148
1149 /* prototype from ModAttrP.c */
1150
1151 extern void ShowModAttrDialog(
1152                         Widget w,
1153                         XtPointer client_data,
1154                         XtPointer callback) ;
1155
1156 /* prototypes from Prefs.c */
1157
1158 extern void ShowTypeToString(
1159                         int fd,
1160                         unsigned char *value,
1161                         char *out_buf) ;
1162 extern void StringToShowType(
1163                         XrmValuePtr args,
1164                         Cardinal *num_args,
1165                         XrmValue *from_val,
1166                         XrmValue *to_val) ;
1167 extern void TreeFilesToString(
1168                         int fd,
1169                         unsigned char *value,
1170                         char *out_buf) ;
1171 extern void StringToTreeFiles(
1172                         XrmValuePtr args,
1173                         Cardinal *num_args,
1174                         XrmValue *from_val,
1175                         XrmValue *to_val) ;
1176 extern void ViewToString(
1177                         int fd,
1178                         unsigned char *value,
1179                         char *out_buf) ;
1180 extern void StringToView(
1181                         XrmValuePtr args,
1182                         Cardinal *num_args,
1183                         XrmValue *from_val,
1184                         XrmValue *to_val) ;
1185 extern void OrderToString(
1186                         int fd,
1187                         unsigned char *value,
1188                         char *out_buf) ;
1189 extern void StringToOrder(
1190                         XrmValuePtr args,
1191                         Cardinal *num_args,
1192                         XrmValue *from_val,
1193                         XrmValue *to_val) ;
1194 extern void DirectionToString(
1195                         int fd,
1196                         unsigned char *value,
1197                         char *out_buf) ;
1198 extern void RandomToString(
1199                         int fd,
1200                         unsigned char *value,
1201                         char *out_buf) ;
1202 extern void StringToDirection(
1203                         XrmValuePtr args,
1204                         Cardinal *num_args,
1205                         XrmValue *from_val,
1206                         XrmValue *to_val) ;
1207 extern void StringToRandom(
1208                         XrmValuePtr args,
1209                         Cardinal *num_args,
1210                         XrmValue *from_val,
1211                         XrmValue *to_val) ;
1212 extern void UpdatePreferencesDialog (
1213                         FileMgrData * file_mgr_data) ;
1214
1215 /* prototype for PrefsP.c */
1216
1217 extern void ShowPreferencesDialog(
1218                         Widget w,
1219                         XtPointer client_data,
1220                         XtPointer callback) ;
1221
1222 /* prototype for Trash.c */
1223
1224 extern Boolean TrashIsInitialized(
1225                         void ) ;
1226 extern Boolean InitializeTrash(
1227                         Boolean enableVerifyPrompt);
1228 extern void TrashCreateDialog(
1229                         Display *display) ;
1230 extern void TrashDisplayHandler(
1231                         Tt_message msg);
1232 extern void TrashEmptyHandler(
1233                         Tt_message msg);
1234 extern void TrashRemoveHandler(
1235                         Tt_message msg);
1236 extern void TrashEmpty( void );
1237 extern void TrashRestoreHandler(
1238                         Tt_message msg);
1239 extern void TrashRemoveNoConfirmHandler(
1240                         Tt_message msg);
1241 extern Widget CreateTrashMenu(
1242                         Widget mainw,
1243                         FileMgrRec *file_mgr_rec) ;
1244 extern void SensitizeTrashBtns( void ) ;
1245 extern void DropOnTrashCan(
1246                         int file_count,
1247                         char **host_set,
1248                         char **file_set,
1249                         DtDndDropCallbackStruct *parameters) ;
1250 extern void MoveOutOfTrashCan(
1251                         FileMgrData *file_mgr_data,
1252                         FileMgrRec *file_mgr_rec,
1253                         Window w,
1254                         int file_count,
1255                         char **host_set,
1256                         char **file_set,
1257                         Position drop_x,
1258                         Position drop_y);
1259 extern void Restore(
1260                         Widget w,
1261                         XtPointer client_data,
1262                         XtPointer call_data ) ;
1263 extern void ConfirmRemove(
1264                         Widget w,
1265                         XtPointer client_data,
1266                         XtPointer call_data ) ;
1267 extern void Remove(
1268                         Widget w,
1269                         XtPointer client_data,
1270                         XtPointer call_data ) ;
1271 extern Boolean FileFromTrash(
1272                         char *filename) ;
1273 extern int CheckDeletePermission(
1274                         char *dir,
1275                         char *file);
1276
1277 /* prototype for Desktop.c */
1278
1279 extern void InitializeDesktopWindows(
1280                         int number_cache,
1281                         Display *display) ;
1282 extern void CheckDesktop( void ) ;
1283 extern void DesktopObjectRemoved(
1284                         DesktopRec *desktopWindow ) ;
1285 extern void DesktopObjectChanged(
1286                         DesktopRec *desktopWindow ) ;
1287 extern FileViewData * DropOnDesktopHotspot(
1288                         Window win,
1289                         Position drop_x,
1290                         Position drop_y,
1291                         DirectorySet **directory_data,
1292                         DesktopRec *desktopWindow) ;
1293 extern Boolean FileMoveCopyDesktop(
1294                         FileViewData *file_view_data,
1295                         char *directory,
1296                         char **host_set,
1297                         char **file_set,
1298                         int file_count,
1299                         unsigned int modifiers,
1300                         DesktopRec *desktopWindow,
1301                         void (*finish_callback)(),
1302                         XtPointer callback_data);
1303 extern void SaveDesktopInfo(
1304                         int session) ;
1305 extern void LoadDesktopInfo(
1306                         char *session) ;
1307 extern void RemoveDT(
1308                         Widget w,
1309                         XtPointer client_data,
1310                         XtPointer call_data) ;
1311 #ifdef SUN_PERF
1312 extern void RemoveMovedObjectFromDT(
1313                         Widget w,
1314                         XtPointer client_data,
1315                         int  file_cnt,
1316                         char **file_list) ;
1317 #endif /* SUN_PERF */
1318
1319 extern void DeselectAllDTFiles(
1320                         WorkspaceRec *workspaceData) ;
1321 extern void DeselectDTFile(
1322                         WorkspaceRec *workspaceData,
1323                         DesktopRec *desktopWindow) ;
1324 extern void DTActionCallback(
1325                         Widget w,
1326                         XtPointer client_data,
1327                         XtPointer call_data) ;
1328 extern void RunDTCommand(
1329                         char *command,
1330                         DesktopRec *desktopWindow,
1331                         DtDndDropCallbackStruct *parameters) ;
1332 extern char * IsAFileOnDesktop(
1333                         DtString message,
1334                         int *number) ;
1335 extern char * IsAFileOnDesktop2(
1336                         char **file_set,
1337                         int file_count,
1338                         int *number,
1339                         Boolean *IsToolBox) ;
1340 extern void ProcessDTSelection(
1341                         DesktopRec *desktopRec,
1342                         XButtonEvent *event) ;
1343 extern void UnpostDTTextField(void) ;
1344 extern Boolean DTFileIsSelected(
1345                         DesktopRec *desktopRec,
1346                         FileViewData *fileViewData) ;
1347 extern void InitializeDesktopGrid( void ) ;
1348 extern void RegisterInGrid(
1349                         int width,
1350                         int height,
1351                         int rX,
1352                         int rY,
1353                         int workspace,
1354                         Boolean type) ;
1355 extern void PutOnDTCB(
1356                         Widget w,
1357                         XtPointer client_data,
1358                         XtPointer call_data) ;
1359 extern void SetupDesktopWindow(
1360                         Display *display,
1361                         FileMgrData *file_mgr_data,
1362                         FileMgrRec *file_mgr_rec,
1363                         char *file_name,
1364                         char *host_name,
1365                         char *directory_name,
1366                         int root_x,
1367                         int root_y,
1368                         char *type,
1369                         int EndIndex) ;
1370 extern void CleanUpWSName(
1371                         char *workspace_name) ;
1372 extern void CheckDesktopMarquee(
1373                         int x,
1374                         int y,
1375                         int width,
1376                         int height) ;
1377 #ifdef SHAPE
1378 extern void GenerateShape( DesktopRec *desktopWindow );
1379 #endif
1380 extern void RegisterIconDropsDT(DesktopRec *desktopWindow) ;
1381 extern void WorkSpaceRemoved(
1382                          Widget w,
1383                          Atom atom_name,
1384                          int type,
1385                          XtPointer client_data );
1386
1387 /* prototype for HelpCB.c */
1388 XtPointer LocateRecordStructure(
1389                         Widget w) ;
1390
1391 /* prototype for FileOp.c */
1392 extern int PipeRead(
1393                         int fd,
1394                         void *buf,
1395                         int len) ;
1396 extern int PipeWriteString(
1397                         int fd,
1398                         char *s) ;
1399 extern char * PipeReadString(
1400                         int fd) ;
1401 extern void FileOpError(
1402                         Widget w,
1403                         char *message1,
1404                         char *message2) ;
1405 extern void ChangeIconName(
1406                         Widget w,
1407                         XtPointer client_data,
1408                         XmTextVerifyCallbackStruct *call_data) ;
1409 extern void ChangeIconNameDT(
1410                         Widget w,
1411                         XtPointer client_data,
1412                         XtPointer call_data) ;
1413 extern void MakeFile(
1414                         Widget w,
1415                         char *host_name,
1416                         char *directory_name,
1417                         char *new_name,
1418                         unsigned char type,
1419                         void (*finish_callback)(),
1420                         XtPointer callback_data) ;
1421 extern Boolean MakeFilesFromBuffers(
1422                              FileMgrData *file_mgr_data,
1423                              char *directory,
1424                              char *host,
1425                              char **file_set,
1426                              char **host_set,
1427                              BufferInfo *buffer_set,
1428                              int num_of_buffers,
1429                              void (*finish_callback)(),
1430                              XtPointer callback_data); 
1431 extern Boolean MakeFilesFromBuffersDT(
1432                              FileViewData *file_view_data,
1433                              char *directory,
1434                              char **file_set,
1435                              char **host_set,
1436                              BufferInfo *buffer_set,
1437                              int num_of_buffers,
1438                              DesktopRec *desktopWindow,
1439                              void (*finish_callback)(),
1440                              XtPointer callback_data); 
1441
1442 /* prototype for fsDialog.c */
1443 extern Boolean fsDialogAvailable(const String      path,
1444                                        dtFSData  * fsDialogData);
1445
1446
1447 /* prototype for Utils.c */
1448 extern char *
1449 ResolveLocalPathName(
1450      char *hostname,
1451      char *directory_name,
1452      char *file_name,
1453      char *local_hostname,
1454      Tt_status *tt_status);
1455 extern char * ResolveTranslationString(
1456      char * originalString,
1457      char * addressString );
1458
1459 /* prototype for OverWrite.c */
1460 extern void
1461 create_replace_rename_dialog(
1462      Widget          parent_widget,
1463      int             mode,
1464      String          directory,
1465      String          file,
1466      int             filop_confirm_fd,
1467       ActionAreaDefn  actions,
1468       Boolean         Same);
1469
1470 extern void
1471 create_replace_merge_dialog(
1472      Widget          parent_widget,
1473      int             mode,
1474      String          directory,
1475      String          file,
1476      int             filop_confirm_fd,
1477      ActionAreaDefn  actions);
1478
1479 extern void
1480 create_multicollide_dialog(
1481      Widget          parent_widget,
1482      int             mode,
1483      int             nSelected,
1484      int             nCollisions,
1485      String          destination,
1486      String        * fileList,
1487      int             filop_confirm_fd,
1488      ActionAreaDefn  actions,
1489      Boolean         Same);
1490
1491 extern void
1492 replace_rename_cancel_callback(
1493      Widget    w,
1494      XtPointer client_data,
1495      XtPointer call_data);
1496
1497 extern void
1498 replace_rename_ok_callback(
1499      Widget    w,
1500      XtPointer client_data,
1501      XtPointer call_data);
1502
1503 extern void
1504 buffer_replace_rename_ok_callback(
1505      Widget    w,
1506      XtPointer client_data,
1507      XtPointer call_data);
1508
1509 extern void
1510 replace_merge_cancel_callback(
1511      Widget    w,
1512      XtPointer client_data,
1513      XtPointer call_data);
1514
1515 extern void
1516 replace_merge_ok_callback(
1517      Widget    w,
1518      XtPointer client_data,
1519      XtPointer call_data);
1520
1521 extern void
1522 multicollide_cancel_callback(
1523      Widget w,
1524      XtPointer client_data,
1525      XtPointer call_data);
1526
1527 extern void
1528 multicollide_ok_callback(
1529      Widget w,
1530      XtPointer client_data,
1531      XtPointer call_data);
1532
1533 extern void
1534 buffer_multicollide_ok_callback(
1535      Widget w,
1536      XtPointer client_data,
1537      XtPointer call_data);
1538
1539
1540  /*
1541  * macro to get message catalog strings
1542  */
1543
1544 #ifndef NO_MESSAGE_CATALOG
1545 # ifdef __ultrix
1546 #  define _CLIENT_CAT_NAME "dtfile.cat"
1547 # else  /* __ultrix */
1548 #  define _CLIENT_CAT_NAME "dtfile"
1549 # endif /* __ultrix */
1550 extern char *_DtGetMessage(char *filename, int set, int n, char *s);
1551 # define GETMESSAGE(set, number, string)\
1552     (_DtGetMessage(_CLIENT_CAT_NAME, set, number, string))
1553 #else
1554 # define GETMESSAGE(set, number, string)\
1555     string
1556 #endif
1557
1558 #endif /* _Main_h */
1559 /* DON'T ADD ANYTHING AFTER THIS #endif */