2 * CDE - Common Desktop Environment
4 * Copyright (c) 1993-2012, The Open Group. All rights reserved.
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)
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
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
23 /* $TOG: Main.h /main/8 1999/12/09 13:06:45 mgreess $ */
24 /************************************<+>*************************************
25 ****************************************************************************
29 * COMPONENT_NAME: Desktop File Manager
31 * DESCRIPTION: Structures and defines needed by all of the files
40 * MakeFilesFromBuffers
41 * MakeFilesFromBuffersDT
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.
49 ****************************************************************************
50 ************************************<+>*************************************/
55 /* ANSI C definitions */
62 /* Replacing XtMalloc by XtCalloc */
64 #define XtMalloc(x) XtCalloc(1,x)
65 /* Unknown type of file. */
70 /* The defines for icon states */
76 /* Generally used defines */
79 #define BLOCK_SIZE 1024
83 /* Current Directory Area defines */
85 #define CURRENT_DIRECTORY_PAD_X 10
86 #define CURRENT_DIRECTORY_PAD_Y 4
88 #define FAST_RENAME "fast_rename"
90 /* Session restore defines */
92 #define NORMAL_RESTORE 0
93 #define HOME_RESTORE 1
94 #define TOOL_RESTORE 2
96 #define TOOL_SETTINGS_FILENAME "dtfile.appl"
97 #define HOME_SETTINGS_FILENAME "dtfile.fmgr"
99 #define HOME_DIR_RESTORE 1
100 #define CURRENT_DIR_RESTORE 2
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
112 /* Physical file type defines */
115 #define DtDIRECTORY 2
116 #define DtEXECUTABLE 3
119 /* Logical file type defines */
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"
135 /* _DtMessage Dialog build defines */
137 #define ERROR_DIALOG 1
138 #define WARNING_DIALOG 2
139 #define QUESTION_DIALOG 3
142 /* Trash movement defines -- see FileMgr.c and Desktop.c */
145 #define WITHIN_TRASH 2
150 #define TRASH_ACTION "Trash"
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"
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"
164 /* File manipulation types */
168 #define REMOVE_FILE 3
170 #define RENAME_FILE 5
172 #define MAKE_BUFFER 7
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)
187 /* defines for the icon type on the Desktop */
192 /* defines for whether to open New or use current */
196 /* defines for tree branch operations */
197 #define BRANCH_UPDATE 0
198 #define BRANCH_EXPAND 1
199 #define BRANCH_COLLAPSE 2
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.
210 /* defines for default Buffer file names */
211 #define DEFAULT_BUFFER_FILENAME "Untitled"
212 #define MAX_POSTFIX_LENGTH 11
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
223 /* The main directory structure and directory set list */
226 XtPointer dialog_data;
228 char * directory_name;
239 typedef int (*StrcollProc) (const char *,const char *);
242 extern char DESKTOP_DIR[];
243 extern char DTFILE_CLASS_NAME[];
244 extern char DTFILE_HELP_NAME[];
248 extern Widget trashShell;
249 extern DialogData * primaryTrashHelpDialog;
250 extern DialogData ** secondaryTrashHelpDialogList;
251 extern int secondaryTrashHelpDialogCount;
254 /* debugging output */
257 #define DBGFORK(p) if (debug) {fflush(stdout); printf("pid %d, ppid %d: ",getpid(),getppid()); printf p ; fflush(stdout);}
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 ;}
263 #define DBGFORK(p) /* noop */
264 #define DPRINTF(p) /* noop */
265 #define DPRINTF2(p) /* noop */
268 /* Externally referenced globals */
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;
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;
303 extern int treeFiles;
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;
352 extern FileMgrPopup fileMgrPopup;
353 extern unsigned char keybdFocusPolicy;
354 extern FileMgrData *trashFileMgrData;
355 extern DialogData *trashDialogData;
357 extern Boolean shapeExtension;
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;
384 extern Widget widget_dragged;
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;
396 /* BMenu button binding */
397 extern int bMenuButton;
399 extern char translations_sp_esc[];
400 extern char translations_space[];
401 extern char translations_escape[];
402 extern char translations_da[];
404 extern View ** view_set;
405 extern int view_count;
406 extern int view_set_size;
408 extern StrcollProc FMStrcoll;
409 extern XtIntervalId checkBrokenLinkTimerId;
411 /******** Public Function Declarations ********/
414 #include <Xm/GadgetP.h>
415 #include <Xm/ManagerP.h>
418 #include <Dt/Action.h>
421 #include "sharedFuncs.h"
423 #include "ChangeDir.h"
426 /* prototypes from Main.c */
428 extern void SaveSettingsCB(
430 XtPointer client_data,
431 XtPointer call_data) ;
432 extern void SaveSessionCallback(
434 XtPointer client_data,
435 XtPointer call_data) ;
436 extern DialogData *ViewDirectoryProc(
440 extern DialogData *GetNewView(
442 char *directory_name,
444 WindowPosition *position,
446 extern void CloseView(
447 DialogData *dialog_data) ;
448 extern void DirectoryContentsModified(
450 char *directory_name,
451 FileMgrRec *file_mgr_rec) ;
452 extern void DirectoryChanged(
453 XtPointer file_mgr_data,
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 (
465 extern void CleanUp (
467 XtPointer client_data,
468 XtPointer call_data) ;
469 extern void DragEndedHandler(
470 Display *drop_display,
477 unsigned int modifiers,
480 XtPointer client_data) ;
481 extern char * GetMessage(
485 extern FileMgrData * CheckOpenDir (
488 extern char * GetRestrictedDirectory ( Widget widget) ;
489 extern char * BuildTrueDTFilePath(
490 DesktopRec *desktopWindow,
491 FileViewData *file_view_data) ;
492 extern void ForceMyIconClosed (
494 char * directory_name) ;
495 extern void ForceMyIconOpen (
497 char * directory_name) ;
498 extern Tt_callback_action HandleTtRequest(
502 /* prototype from ChangeDir.c */
504 extern void ChangeToNewDir (
506 XtPointer client_data,
507 XmAnyCallbackStruct * callback_data );
508 extern void DropOnChangeView (
510 XtPointer client_data,
511 XtPointer call_data ) ;
512 extern void TextChange(
514 XtPointer client_data,
515 XmTextVerifyCallbackStruct * callback_data );
517 /* prototypes from ChangeDirP.c */
519 extern void ShowNewDirectory(
523 extern void ShowChangeDirDialog(
525 XtPointer client_data,
526 XtPointer callback) ;
527 extern void CurrentDirSelected(
529 XtPointer client_data,
530 XtPointer call_data) ;
531 extern void CurrentDirDropCallback(
533 XtPointer client_data,
534 XtPointer call_data) ;
535 extern void CurrentDirIconCallback(
537 XtPointer client_data,
538 XtPointer call_data) ;
539 extern void CurrentDirExposed(
541 XtPointer client_data,
542 XtPointer call_data) ;
543 extern Boolean GetStatusMsg(
544 FileMgrData *file_mgr_data,
546 extern void DrawCurrentDirectory(
548 FileMgrRec *file_mgr_rec,
549 FileMgrData *file_mgr_data) ;
550 extern void CurrentDirectoryIconMotion(
552 XtPointer client_data,
554 extern void ShowFastChangeDir(
555 FileMgrRec *file_mgr_rec,
556 FileMgrData *file_mgr_data ) ;
557 extern void IconicPathExposeCallback(
559 XtPointer client_data,
560 XtPointer call_data) ;
561 extern void IconicPathResizeCallback(
563 XtPointer client_data,
566 /* prototype from Command.c */
568 extern void UpdateActionMenuPane(
569 XtPointer client_data,
570 FileMgrRec *file_mgr_rec,
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,
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,
599 char *restricted_dir,
602 /* prototype from Common.c */
604 extern void VFTextChangeSpace(
608 XtPointer num_params ) ;
609 extern void CancelOut(
613 XtPointer num_params ) ;
614 extern void AddString(
620 /* prototype from MakeDir.c */
622 extern int RunFileCommand(
623 register char *command_path,
624 register char *argument1,
625 register char *argument2,
626 register char *argument3) ;
628 /* prototypes from Directory.h */
630 extern void InitializeDirectoryRead(
632 extern void FileWindowMapUnmap(
633 FileMgrData *file_mgr_data) ;
636 FileMgrData *file_mgr_data,
638 char *directory_name,
642 char **branch_list) ;
643 extern void RereadDirectory(
646 char *directory_name) ;
647 extern void UpdateDirectory(
650 char *directory_name) ;
651 extern void DirectoryBeginModify(
653 char *directory_name) ;
654 extern void DirectoryModifyTime(
656 char *directory_name,
658 extern void DirectoryFileModified(
660 char *directory_name,
662 extern void DirectoryEndModify(
664 char *directory_name) ;
665 extern void UpdateDirectorySet( void ) ;
666 extern void UpdateCachedDirectories(
669 extern char * GetLongName(
670 FileData *file_data) ;
671 extern Boolean DirectoryBusy(
673 extern char * GetDirectoryLogicalType(
674 FileMgrData *file_mgr_data,
676 extern FileData * FileData2toFileData(
677 FileData2 *file_data2,
679 extern int ReadFileData2(
681 char *full_directory_name,
684 extern void FreeFileData(
687 extern FileData * LookupFileData(
689 char *directory_name,
691 extern int GetDirectoryPositionInfo(
693 char *directory_name,
694 PositionInfo **position_info) ;
695 extern int SetDirectoryPositionInfo(
697 char *directory_name,
699 PositionInfo *position_info) ;
700 extern void TimerEventBrokenLinks(
701 XtPointer client_data,
703 extern char * GetTTPath(
706 /* prototypes for File.c */
708 extern void SetHotRects (
709 FileViewData * file_view_data,
710 XtCallbackProc callback,
711 XtPointer callback_data) ;
712 extern unsigned char TypeToDropOperations (
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(
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(
754 XtPointer clientData,
755 XtPointer callData) ;
756 extern void FileIconMotion(
758 XtPointer clientData,
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,
770 extern void DeselectAllFiles(
771 FileMgrData *file_mgr_data) ;
772 extern void SelectAllFiles(
773 FileMgrData *file_mgr_data) ;
774 extern void SetToSelectColors(
778 extern void SetToNormalColors(
781 Widget top_shadow_colors,
783 extern void GetTarget(
790 extern Boolean FileMoveCopy(
791 FileMgrData *file_mgr_data,
798 unsigned int modifiers,
799 void (*finish_callback)(),
800 XtPointer callback_data);
801 extern void RepositionIcons(
802 FileMgrData *file_mgr_data,
807 Boolean late_binding_needed) ;
808 extern void RegisterDesktopHotspots(
809 FileMgrData *file_mgr_data,
810 FileMgrRec *file_mgr_rec) ;
811 extern void DestroyIconName(
813 XtPointer client_data,
814 XtPointer call_data) ;
815 extern void CreateNameChangeDialog(
817 FileViewData *file_view_data,
818 XtPointer client_data,
820 extern void SavePositionalData(
822 FileMgrData *file_mgr_data,
825 extern void RestorePositionalData(
828 FileMgrData *file_mgr_data,
830 extern void UnpostTextField(
831 FileMgrData *file_mgr_data) ;
832 extern void UnpostTextPath(
833 FileMgrData *file_mgr_data) ;
834 extern void RedrawOneGadget(
838 extern void RepaintDesktop(
839 FileMgrData *file_mgr_data,
842 extern void DrawingAreaRedisplay(
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,
854 extern ObjectPtr FindCurrentPosition(
855 FileMgrData *file_mgr_data,
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 (
866 FileViewData *file_view_data,
867 FileMgrData *file_mgr_data,
869 extern void DrawUnhighlight (
872 extern void DrawShadowTh (
876 extern void FmPopup (
878 XtPointer client_data,
880 FileMgrData *file_mgr_data);
881 extern Boolean VerticalScrollbarIsVisible(
884 extern Boolean HorizontalScrollbarIsVisible(
887 extern void RepairFileWindow (
888 FileMgrData * file_mgr_data);
889 StrcollProc GetStrcollProc(void);
894 /* prototypes from FileDialog.h */
896 extern void ShowRenameFileDialog(
898 XtPointer client_data,
899 XtPointer call_data) ;
900 extern void ShowCopyFileDialog(
902 XtPointer client_data,
903 XtPointer call_data) ;
904 extern void ShowMoveFileDialog(
906 XtPointer client_data,
907 XtPointer call_data) ;
908 extern void ShowLinkFileDialog(
910 XtPointer client_data,
911 XtPointer call_data) ;
912 extern void ShowMakeFileDialog(
914 XtPointer client_data,
915 XtPointer call_data) ;
916 extern void RenameDone(
917 XtPointer client_data,
919 extern int RecheckFlag(
922 extern void ResetFlag(
926 /* prototypes from FileManip.h */
928 extern void FileOperationError(
932 extern Boolean FileManip(
938 void (*errorHandler)(),
939 Boolean checkForBusyDir,
942 register char *name) ;
944 /* prototypes from FileMgr.h */
946 extern PixmapData * GetPixmapData(
947 FileMgrRec *file_mgr_rec,
948 FileMgrData *file_mgr_data,
951 extern void SetSpecialMsg(
952 FileMgrRec *file_mgr_rec,
953 FileMgrData *file_mgr_data,
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,
966 char *directory_name) ;
967 extern void FileMgrReread(
968 FileMgrRec *file_mgr_rec) ;
969 extern void FileMgrBuildDirectories(
970 FileMgrData *file_mgr_data,
972 char *directory_name) ;
973 extern Boolean DropOnGadget(
974 FileMgrData *file_mgr_data,
978 extern void FileMgrProcessDrop(
979 FileMgrData *file_mgr_data,
980 FileMgrRec *file_mgr_rec,
984 unsigned int modifiers,
987 extern void FileMgrPropagateSettings(
988 FileMgrData *src_data,
989 FileMgrData *dst_data) ;
992 XtPointer client_data,
993 XtPointer call_data) ;
994 extern void ShowChangeDirField(
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) ;
1017 extern FileViewData * DropOnPrimaryHotspot (
1018 FileMgrData * file_mgr_data,
1021 DirectorySet ** directory_data);
1022 extern void DropOnFileWindow (
1024 XtPointer client_data,
1025 XtPointer call_data);
1026 extern void DropOnObject (
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,
1037 unsigned int modifiers,
1042 extern void UpdateBranchList(
1043 FileMgrData *file_mgr_data,
1044 DirectorySet *directory_set) ;
1045 extern Boolean QueryBranchList(
1046 FileMgrData *file_mgr_data,
1048 char *directory_name,
1050 extern void UpdateBranchState(
1051 FileMgrData *file_mgr_data,
1055 extern void DirTreeExpand(
1056 FileMgrData *file_mgr_data,
1060 /* prototype from Filter.c */
1061 extern void UpdataFilterAfterDBReread (
1062 DialogData * dialog_data) ;
1064 /* prototype from FilterP.c */
1066 extern void ShowFilterDialog(
1068 XtPointer client_data,
1069 XtPointer callback) ;
1070 extern void ShowHiddenFiles (
1072 XtPointer client_data,
1073 XtPointer callback) ;
1074 extern void NewFileTypeSelected (
1076 XtPointer client_data,
1077 XtPointer callback) ;
1078 extern void SelectAllFileTypes (
1080 XtPointer client_data,
1081 XtPointer callback) ;
1082 extern void UnselectAllFileTypes (
1084 XtPointer client_data,
1085 XtPointer callback) ;
1087 /* prototype from FindP.c */
1089 extern void ShowFindDialog(
1091 XtPointer client_data,
1092 XtPointer callback) ;
1094 /* prototype from IconWindow.c */
1096 extern void FileWindowExposeCallback(
1098 XtPointer client_data,
1099 XtPointer call_data) ;
1100 extern void FileWindowResizeCallback(
1102 XtPointer client_data,
1104 extern void FileWindowMapCallback(
1106 XtPointer client_data,
1108 extern void FileWindowInputCallback(
1110 XtPointer client_data,
1111 XtPointer call_data) ;
1112 extern void WidgetRectToRegion (
1113 FileMgrData * file_mgr_data,
1117 /* prototype from Menu.c */
1119 extern Widget CreateMenu(
1121 FileMgrRec *file_mgr_rec) ;
1122 extern void ActivateSingleSelect(
1123 FileMgrRec *file_mgr_rec,
1125 extern void ActivateMultipleSelect(
1126 FileMgrRec *file_mgr_rec) ;
1127 extern void ActivateNoSelect(
1128 FileMgrRec *file_mgr_rec) ;
1129 extern void UnselectAll(
1131 XtPointer client_data,
1132 XtPointer call_data) ;
1133 extern void SelectAll(
1135 XtPointer client_data,
1136 XtPointer call_data) ;
1138 extern void TrashFiles(
1140 XtPointer client_data,
1141 XtPointer call_data) ;
1142 extern void ChangeToHome(
1144 XtPointer client_data,
1145 XtPointer call_data ) ;
1146 extern void ChangeToParent(
1148 XtPointer client_data,
1149 XtPointer call_data ) ;
1151 /* prototype from ModAttr.c */
1153 extern Boolean LoadFileAttributes(
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 );
1171 /* prototype from ModAttrP.c */
1173 extern void ShowModAttrDialog(
1175 XtPointer client_data,
1176 XtPointer callback) ;
1178 /* prototypes from Prefs.c */
1180 extern void ShowTypeToString(
1182 unsigned char *value,
1184 extern void StringToShowType(
1189 extern void TreeFilesToString(
1191 unsigned char *value,
1193 extern void StringToTreeFiles(
1198 extern void ViewToString(
1200 unsigned char *value,
1202 extern void StringToView(
1207 extern void OrderToString(
1209 unsigned char *value,
1211 extern void StringToOrder(
1216 extern void DirectionToString(
1218 unsigned char *value,
1220 extern void RandomToString(
1222 unsigned char *value,
1224 extern void StringToDirection(
1229 extern void StringToRandom(
1234 extern void UpdatePreferencesDialog (
1235 FileMgrData * file_mgr_data) ;
1237 /* prototype for PrefsP.c */
1239 extern void ShowPreferencesDialog(
1241 XtPointer client_data,
1242 XtPointer callback) ;
1244 /* prototype for Trash.c */
1246 extern Boolean TrashIsInitialized(
1248 extern Boolean InitializeTrash(
1249 Boolean enableVerifyPrompt);
1250 extern void TrashCreateDialog(
1252 extern void TrashDisplayHandler(
1254 extern void TrashEmptyHandler(
1256 extern void TrashRemoveHandler(
1258 extern void TrashEmpty( void );
1259 extern void TrashRestoreHandler(
1261 extern void TrashRemoveNoConfirmHandler(
1263 extern Widget CreateTrashMenu(
1265 FileMgrRec *file_mgr_rec) ;
1266 extern void SensitizeTrashBtns( void ) ;
1267 extern void DropOnTrashCan(
1271 DtDndDropCallbackStruct *parameters) ;
1272 extern void MoveOutOfTrashCan(
1273 FileMgrData *file_mgr_data,
1274 FileMgrRec *file_mgr_rec,
1281 extern void Restore(
1283 XtPointer client_data,
1284 XtPointer call_data ) ;
1285 extern void ConfirmRemove(
1287 XtPointer client_data,
1288 XtPointer call_data ) ;
1291 XtPointer client_data,
1292 XtPointer call_data ) ;
1293 extern Boolean FileFromTrash(
1295 extern int CheckDeletePermission(
1299 /* prototype for Desktop.c */
1301 extern void InitializeDesktopWindows(
1304 extern void CheckDesktop( void ) ;
1305 extern void DesktopObjectRemoved(
1306 DesktopRec *desktopWindow ) ;
1307 extern void DesktopObjectChanged(
1308 DesktopRec *desktopWindow ) ;
1309 extern FileViewData * DropOnDesktopHotspot(
1313 DirectorySet **directory_data,
1314 DesktopRec *desktopWindow) ;
1315 extern Boolean FileMoveCopyDesktop(
1316 FileViewData *file_view_data,
1321 unsigned int modifiers,
1322 DesktopRec *desktopWindow,
1323 void (*finish_callback)(),
1324 XtPointer callback_data);
1325 extern void SaveDesktopInfo(
1327 extern void LoadDesktopInfo(
1329 extern void RemoveDT(
1331 XtPointer client_data,
1332 XtPointer call_data) ;
1334 extern void RemoveMovedObjectFromDT(
1336 XtPointer client_data,
1339 #endif /* SUN_PERF */
1341 extern void DeselectAllDTFiles(
1342 WorkspaceRec *workspaceData) ;
1343 extern void DeselectDTFile(
1344 WorkspaceRec *workspaceData,
1345 DesktopRec *desktopWindow) ;
1346 extern void DTActionCallback(
1348 XtPointer client_data,
1349 XtPointer call_data) ;
1350 extern void RunDTCommand(
1352 DesktopRec *desktopWindow,
1353 DtDndDropCallbackStruct *parameters) ;
1354 extern char * IsAFileOnDesktop(
1357 extern char * IsAFileOnDesktop2(
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(
1377 extern void PutOnDTCB(
1379 XtPointer client_data,
1380 XtPointer call_data) ;
1381 extern void SetupDesktopWindow(
1383 FileMgrData *file_mgr_data,
1384 FileMgrRec *file_mgr_rec,
1387 char *directory_name,
1392 extern void CleanUpWSName(
1393 char *workspace_name) ;
1394 extern void CheckDesktopMarquee(
1400 extern void GenerateShape( DesktopRec *desktopWindow );
1402 extern void RegisterIconDropsDT(DesktopRec *desktopWindow) ;
1403 extern void WorkSpaceRemoved(
1407 XtPointer client_data );
1409 /* prototype for HelpCB.c */
1410 XtPointer LocateRecordStructure(
1413 /* prototype for FileOp.c */
1414 extern int PipeRead(
1418 extern int PipeWriteString(
1421 extern char * PipeReadString(
1423 extern void FileOpError(
1427 extern void ChangeIconName(
1429 XtPointer client_data,
1430 XmTextVerifyCallbackStruct *call_data) ;
1431 extern void ChangeIconNameDT(
1433 XtPointer client_data,
1434 XtPointer call_data) ;
1435 extern void MakeFile(
1438 char *directory_name,
1441 void (*finish_callback)(),
1442 XtPointer callback_data) ;
1443 extern Boolean MakeFilesFromBuffers(
1444 FileMgrData *file_mgr_data,
1449 BufferInfo *buffer_set,
1451 void (*finish_callback)(),
1452 XtPointer callback_data);
1453 extern Boolean MakeFilesFromBuffersDT(
1454 FileViewData *file_view_data,
1458 BufferInfo *buffer_set,
1460 DesktopRec *desktopWindow,
1461 void (*finish_callback)(),
1462 XtPointer callback_data);
1464 /* prototype for fsDialog.c */
1465 extern Boolean fsDialogAvailable(const String path,
1466 dtFSData * fsDialogData);
1469 /* prototype for Utils.c */
1471 ResolveLocalPathName(
1473 char *directory_name,
1475 char *local_hostname,
1476 Tt_status *tt_status);
1477 extern char * ResolveTranslationString(
1478 char * originalString,
1479 char * addressString );
1481 /* prototype for OverWrite.c */
1483 create_replace_rename_dialog(
1484 Widget parent_widget,
1488 int filop_confirm_fd,
1489 ActionAreaDefn actions,
1493 create_replace_merge_dialog(
1494 Widget parent_widget,
1498 int filop_confirm_fd,
1499 ActionAreaDefn actions);
1502 create_multicollide_dialog(
1503 Widget parent_widget,
1509 int filop_confirm_fd,
1510 ActionAreaDefn actions,
1514 replace_rename_cancel_callback(
1516 XtPointer client_data,
1517 XtPointer call_data);
1520 replace_rename_ok_callback(
1522 XtPointer client_data,
1523 XtPointer call_data);
1526 buffer_replace_rename_ok_callback(
1528 XtPointer client_data,
1529 XtPointer call_data);
1532 replace_merge_cancel_callback(
1534 XtPointer client_data,
1535 XtPointer call_data);
1538 replace_merge_ok_callback(
1540 XtPointer client_data,
1541 XtPointer call_data);
1544 multicollide_cancel_callback(
1546 XtPointer client_data,
1547 XtPointer call_data);
1550 multicollide_ok_callback(
1552 XtPointer client_data,
1553 XtPointer call_data);
1556 buffer_multicollide_ok_callback(
1558 XtPointer client_data,
1559 XtPointer call_data);
1563 * macro to get message catalog strings
1566 #ifndef NO_MESSAGE_CATALOG
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))
1576 # define GETMESSAGE(set, number, string)\
1580 #endif /* _Main_h */
1581 /* DON'T ADD ANYTHING AFTER THIS #endif */