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