Initial import of the CDE 2.1.30 sources from the Open Group.
This commit is contained in:
468
cde/programs/dtfile/FileMgr.h
Normal file
468
cde/programs/dtfile/FileMgr.h
Normal file
@@ -0,0 +1,468 @@
|
||||
/* $XConsortium: FileMgr.h /main/6 1996/10/07 13:45:03 mustafa $ */
|
||||
/************************************<+>*************************************
|
||||
****************************************************************************
|
||||
*
|
||||
* FILE: FileMgr.h
|
||||
*
|
||||
* COMPONENT_NAME: Desktop File Manager
|
||||
*
|
||||
* DESCRIPTION: Public include file for the main window of the
|
||||
* File Manager.
|
||||
*
|
||||
* (c) Copyright 1993, 1994, 1995 Hewlett-Packard Company
|
||||
* (c) Copyright 1993, 1994, 1995 International Business Machines Corp.
|
||||
* (c) Copyright 1993, 1994, 1995 Sun Microsystems, Inc.
|
||||
* (c) Copyright 1993, 1994, 1995 Novell, Inc.
|
||||
*
|
||||
****************************************************************************
|
||||
************************************<+>*************************************/
|
||||
|
||||
#ifndef _FileMgr_h
|
||||
#define _FileMgr_h
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
|
||||
/* Resource names */
|
||||
|
||||
#define SELECTION_LIST "selectionList"
|
||||
#define BRANCH_LIST "branchList"
|
||||
|
||||
/* Used in all the dialogs as its userData value for OK and Cancel buttons */
|
||||
|
||||
#define FLAG_SET 0x22
|
||||
#define FLAG_RESET 0x33
|
||||
|
||||
/* Menu button sensitivity defines */
|
||||
|
||||
#define RENAME (1 << 1)
|
||||
#define MOVE (1 << 2)
|
||||
#define DUPLICATE (1 << 3)
|
||||
#define LINK (1 << 4)
|
||||
#define TRASH (1 << 5)
|
||||
#define MODIFY (1 << 6)
|
||||
#define CHANGEDIR (1 << 7)
|
||||
#define PREFERENCES (1 << 8)
|
||||
#define FILTER (1 << 9)
|
||||
#define FIND (1 << 10)
|
||||
#define CREATE_DIR (1 << 11)
|
||||
#define CREATE_FILE (1 << 12)
|
||||
#define SETTINGS (1 << 13)
|
||||
#define PUTBACK (1 << 14)
|
||||
#define PUT_ON_DESKTOP (1 << 15)
|
||||
#define CLEAN_UP (1 << 16)
|
||||
#define MOVE_UP (1 << 17)
|
||||
#define HOME (1 << 18)
|
||||
#define CHANGE_DIR (1 << 19)
|
||||
#define TERMINAL (1 << 20)
|
||||
/* CLEAN_UP_OP is not really a menu state.
|
||||
It's a flag to let GetFileData in FileMgr.c (call when the directory
|
||||
is being reread) not to reload icon positions from the .!dt<userid> file.
|
||||
*/
|
||||
#define CLEAN_UP_OP (1 << 21)
|
||||
|
||||
|
||||
#define NOT_DESKTOP 0
|
||||
#define DESKTOP 1
|
||||
#define NOT_DESKTOP_DIR 2
|
||||
#define FM_POPUP 3
|
||||
#define TRASH_DIRECTORY 4
|
||||
|
||||
/* the number of columns standard in the fast change to text widget */
|
||||
#define FAST_CHANGE_COLUMNS 35
|
||||
|
||||
/* Forward structure pointer declaration */
|
||||
typedef struct _ObjectPosition * ObjectPtr;
|
||||
|
||||
/* Structure for containing the data for 1 file */
|
||||
|
||||
typedef struct _FileData
|
||||
{
|
||||
struct _FileData * next;
|
||||
char * file_name; /* name of the file */
|
||||
char * action_name; /* if it is an Action, the LABEL name */
|
||||
unsigned char physical_type; /* file, directory, device, pipe, ... */
|
||||
char * logical_type; /* data type from data typing db */
|
||||
int errnum; /* error code */
|
||||
struct stat stat; /* file status */
|
||||
char * link; /* value of symbolic link */
|
||||
char * final_link; /* last of a chain of symbolic links */
|
||||
Boolean is_subdir; /* directory other than "." or ".." */
|
||||
Boolean is_broken; /* broken link */
|
||||
} FileData;
|
||||
|
||||
typedef struct _FileData2
|
||||
{
|
||||
struct _FileData2 * next;
|
||||
short file_name; /* name of the file */
|
||||
short action_name; /* if it is an Action, the LABEL name */
|
||||
unsigned char physical_type; /* file, directory, device, pipe, ... */
|
||||
short logical_type; /* data type from data typing db */
|
||||
int errnum; /* error code */
|
||||
struct stat stat; /* file status */
|
||||
short link; /* value of symbolic link */
|
||||
short final_link; /* last of a chain of symbolic links */
|
||||
Boolean is_subdir; /* directory other than "." or ".." */
|
||||
Boolean is_broken; /* broken link */
|
||||
char text[BUFSIZ];
|
||||
} FileData2;
|
||||
|
||||
|
||||
/* position info read from the position info file */
|
||||
typedef struct
|
||||
{
|
||||
char *name;
|
||||
Position x;
|
||||
Position y;
|
||||
int stacking_order;
|
||||
} PositionInfo;
|
||||
|
||||
|
||||
/* tree branch expansion states */
|
||||
typedef enum {
|
||||
tsNotRead, /* directory not yet read */
|
||||
tsError, /* error reading directory */
|
||||
tsReading, /* directory currently being read for the first time */
|
||||
tsNone, /* no contents shown */
|
||||
tsDirs, /* only sub directories shown */
|
||||
tsAll /* all contents shown */
|
||||
} TreeShow;
|
||||
|
||||
typedef struct _FileViewData
|
||||
{
|
||||
XtPointer directory_set;
|
||||
FileData * file_data;
|
||||
struct _FileViewData *parent; /* ptr to dir containing this entry */
|
||||
struct _FileViewData *next; /* ptr to next entry in the same dir */
|
||||
struct _FileViewData *desc; /* if this is a dir: list of entries */
|
||||
Boolean filtered; /* True if file is filtered */
|
||||
Boolean selected; /* True if file is selected */
|
||||
Boolean displayed; /* False if filtered or collapsed tree branch*/
|
||||
TreeShow ts; /* how much to show in tree mode */
|
||||
int ndir; /* no of sub directories */
|
||||
int nfile; /* no of non-dir files */
|
||||
int nnew; /* no of new files */
|
||||
Widget widget; /* icon gadget for this entry */
|
||||
Widget treebtn; /* button gadget for tree branch expand */
|
||||
Boolean need_update; /* False until widget created and up-to-date */
|
||||
Boolean registered; /* True if drop zone registered */
|
||||
Position x, y; /* bottom left corner of icon gadget */
|
||||
char *label; /* icon label string */
|
||||
long icon_mtime; /* modified time of instance icon */
|
||||
ObjectPtr position_info;
|
||||
} FileViewData;
|
||||
|
||||
|
||||
/* Structure for containing a set of directories */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char * name;
|
||||
FileViewData * sub_root; /* root of the sub-tree */
|
||||
int file_count;
|
||||
FileViewData ** file_view_data;
|
||||
FileViewData ** order_list;
|
||||
int filtered_file_count;
|
||||
int invisible_file_count;
|
||||
XtPointer file_mgr_data;
|
||||
} DirectorySet;
|
||||
|
||||
|
||||
/* Structure for containing desktop object position information */
|
||||
|
||||
typedef struct _ObjectPosition {
|
||||
char * name;
|
||||
Position x;
|
||||
Position y;
|
||||
Boolean in_use;
|
||||
Boolean late_bind;
|
||||
int stacking_order;
|
||||
FileViewData * file_view_data;
|
||||
ObjectPtr next;
|
||||
ObjectPtr prev;
|
||||
} ObjectPosition;
|
||||
|
||||
/* External definitions for the file manager dialog class */
|
||||
|
||||
extern DialogClass * fileMgrClass;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
not_busy = 0, /* not busy */
|
||||
busy_readdir, /* busy reading directory */
|
||||
initiating_readdir /* inside call to ReadDir */
|
||||
} BusyStatus;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
/* first 5 fields must be identical to DialogInstanceData struct */
|
||||
Boolean displayed;
|
||||
Position x;
|
||||
Position y;
|
||||
Dimension width;
|
||||
Dimension height;
|
||||
|
||||
Boolean mapped;
|
||||
short busy_status;
|
||||
int busy_detail;
|
||||
|
||||
unsigned char show_type; /* single directory or directory tree? */
|
||||
unsigned char tree_files; /* show only subdirs or files as well? */
|
||||
short tree_preread_level; /* how many levels to pre-read */
|
||||
short tree_show_level; /* how many levels to show initially */
|
||||
|
||||
int restoreKind;
|
||||
|
||||
char * host;
|
||||
char * current_directory;
|
||||
char ** branch_list;
|
||||
|
||||
unsigned char view; /* current view */
|
||||
unsigned char view_single; /* view for singlge directory */
|
||||
unsigned char view_tree; /* view for tree mode */
|
||||
unsigned char order; /* sort order */
|
||||
unsigned char direction; /* sort direction */
|
||||
unsigned char positionEnabled; /* random positioning vs sorted grid */
|
||||
|
||||
Boolean newSize;
|
||||
char * restricted_directory;
|
||||
char * title;
|
||||
char * helpVol;
|
||||
Boolean toolbox;
|
||||
Boolean dropSite;
|
||||
Boolean IsTrashCan;
|
||||
|
||||
int directory_count;
|
||||
DirectorySet ** directory_set;
|
||||
FileViewData * tree_root; /* root of the tree */
|
||||
|
||||
FileViewData * renaming;
|
||||
|
||||
FileViewData ** selection_list;
|
||||
char ** selection_table;
|
||||
int selected_file_count;
|
||||
|
||||
Boolean show_iconic_path;
|
||||
Boolean show_current_dir;
|
||||
Boolean show_status_line;
|
||||
Boolean fast_cd_enabled;
|
||||
Boolean show_hid_enabled;
|
||||
|
||||
char *special_msg;
|
||||
XtIntervalId msg_timer_id;
|
||||
|
||||
Boolean cd_inited;
|
||||
XFontStruct * cd_font;
|
||||
XFontSet cd_fontset;
|
||||
XmFontType cd_fonttype;
|
||||
GC cd_normal_gc;
|
||||
GC cd_select_gc;
|
||||
char *cd_select;
|
||||
|
||||
GC tree_solid_thin_gc;
|
||||
GC tree_solid_thick_gc;
|
||||
GC tree_dash_thin_gc;
|
||||
GC tree_dash_thick_gc;
|
||||
|
||||
XtPointer file_mgr_rec;
|
||||
FileViewData * popup_menu_icon;
|
||||
FileViewData * drag_file_view_data;
|
||||
|
||||
DialogData * find;
|
||||
DialogData * attribute;
|
||||
DialogData * change_dir;
|
||||
DialogData * preferences;
|
||||
DialogData * filter_active;
|
||||
DialogData * filter_edit;
|
||||
DialogData ** attr_dialog_list;
|
||||
int attr_dialog_count;
|
||||
DialogData ** secondaryHelpDialogList;
|
||||
int secondaryHelpDialogCount;
|
||||
DialogData * primaryHelpDialog;
|
||||
|
||||
ObjectPosition ** object_positions;
|
||||
int num_objects;
|
||||
Dimension grid_height;
|
||||
Dimension grid_width;
|
||||
|
||||
/* When user creates new file or directory, we want to store
|
||||
away the new file info so we can scroll to it later.
|
||||
*/
|
||||
char * scrollToThisFile;
|
||||
char * scrollToThisDirectory;
|
||||
|
||||
XtPointer layout_data;
|
||||
char * desktop_file;
|
||||
} FileMgrData, * FileMgrDataPtr;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
Widget shell;
|
||||
Widget main;
|
||||
Widget menu;
|
||||
Widget header_frame;
|
||||
Widget header_separator;
|
||||
Widget iconic_path_da;
|
||||
Widget current_directory_frame;
|
||||
Widget current_directory_drop;
|
||||
Widget current_directory_icon;
|
||||
Widget current_directory;
|
||||
Widget current_directory_text;
|
||||
Widget status_line;
|
||||
Widget scroll_window;
|
||||
Widget horizontal_scroll_bar;
|
||||
Widget vertical_scroll_bar;
|
||||
Widget file_window;
|
||||
Widget actions;
|
||||
Widget action_pane;
|
||||
Widget directoryBarBtn;
|
||||
Dimension iconic_path_width;
|
||||
char * action_pane_file_type;
|
||||
unsigned int menuStates;
|
||||
Widget focus_widget;
|
||||
Widget create_directoryBtn_child;
|
||||
Widget create_dataBtn_child;
|
||||
Widget findBtn_child;
|
||||
Widget change_directoryBtn_child;
|
||||
Widget preferencesBtn_child;
|
||||
Widget defaultEnvBtn_child;
|
||||
Widget filterBtn_child;
|
||||
} FileMgrRec;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char * action_pane_file_type;
|
||||
Widget menu;
|
||||
Widget title;
|
||||
Widget wsPopup[6];
|
||||
Widget objPopup[6];
|
||||
Widget trash_objPopup[2];
|
||||
Widget action_separator;
|
||||
} FileMgrPopup;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
Widget dialog_widget;
|
||||
Widget menu_widget;
|
||||
Widget dir_text_widget;
|
||||
Widget file_text_widget;
|
||||
Widget file_type_widget;
|
||||
Widget Ok;
|
||||
Widget Cancel;
|
||||
Widget Apply;
|
||||
Widget Help;
|
||||
Widget Misc;
|
||||
int original_physical_type;
|
||||
char * original_logical_type;
|
||||
char * file_name;
|
||||
char * directory_name;
|
||||
char * host_name;
|
||||
int mode;
|
||||
FileMgrRec * file_mgr_rec;
|
||||
char * previous_file_type;
|
||||
FileMgrData * file_mgr_data;
|
||||
} DialogCallbackStruct;
|
||||
|
||||
/* Local structure used for passing callback data */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
Widget w;
|
||||
DialogCallbackStruct *call_struct;
|
||||
unsigned char type;
|
||||
unsigned int btnMask;
|
||||
char *new_name;
|
||||
} MakeFileDoneData;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
Widget w;
|
||||
DialogCallbackStruct *call_struct;
|
||||
int mode;
|
||||
unsigned int btnMask;
|
||||
} RenameDoneData;
|
||||
|
||||
/* data for doing icon update and layout */
|
||||
typedef struct
|
||||
{
|
||||
/* ordered list of all files */
|
||||
FileViewData ** order_list;
|
||||
int order_count;
|
||||
|
||||
/* icon layout parameters */
|
||||
Dimension width;
|
||||
Dimension height;
|
||||
Dimension pixmap_width;
|
||||
Dimension pixmap_height;
|
||||
Dimension char_width;
|
||||
Dimension margin;
|
||||
Dimension spacing;
|
||||
Dimension highlight;
|
||||
unsigned char alignment;
|
||||
unsigned char pixmap_position;
|
||||
Boolean icon_top;
|
||||
int treebtn_size;
|
||||
|
||||
/* colors to use */
|
||||
Pixel background;
|
||||
Pixel foreground;
|
||||
Pixel pixmap_back;
|
||||
Pixel pixmap_fore;
|
||||
#ifdef _SHOW_LINK
|
||||
Pixel topshadow;
|
||||
#endif
|
||||
|
||||
/* widgets to be re-used */
|
||||
Widget *reuse_icons;
|
||||
Widget *reuse_btns;
|
||||
Widget *next_icon_to_use;
|
||||
Widget *next_btn_to_use;
|
||||
Widget dup_icon_widget;
|
||||
Widget *manage;
|
||||
int manage_count;
|
||||
|
||||
/* DisplayWorkProc */
|
||||
XtWorkProcId work_id;
|
||||
Widget drop_site_w;
|
||||
int ex, ey;
|
||||
Boolean focus_done;
|
||||
Boolean visible_done;
|
||||
Boolean all_done;
|
||||
int i_do_next_vis;
|
||||
int i_do_next_all;
|
||||
} IconLayoutData;
|
||||
|
||||
|
||||
|
||||
|
||||
#define FM_POPUP_CHILDREN 17
|
||||
#define FM_POPUP_CHILDREN_NA 15
|
||||
|
||||
#define WS_BTNS 6
|
||||
#define OBJ_BTNS 6
|
||||
#define OBJ_BTNS_NA 4
|
||||
#define TRASH_OBJ_BTNS 2
|
||||
|
||||
#define BTN_PROPERTIES 0
|
||||
|
||||
/* white space buttons */
|
||||
#define BTN_FIND 1
|
||||
#define BTN_CLEANUP 2
|
||||
#define BTN_SELECTALL 3
|
||||
#define BTN_UNSELECTALL 4
|
||||
#define BTN_SHOWHIDDEN 5
|
||||
|
||||
/* object buttons */
|
||||
#define BTN_PUTON 1
|
||||
#define BTN_TRASH 2
|
||||
#define BTN_HELP 3
|
||||
|
||||
/* trash object buttons */
|
||||
#define BTN_RESTORE 0
|
||||
#define BTN_REMOVE 1
|
||||
|
||||
#endif /* _FileMgr_h */
|
||||
/* DON'T ADD ANYTHING AFTER THIS #endif */
|
||||
Reference in New Issue
Block a user