#ifndef __RFM_CONSTANTS_H__ #define __RFM_CONSTANTS_H__ #include "errors.h" #include "types.h" #ifdef ENABLE_NLS # include # define _(String) dgettext(GETTEXT_PACKAGE,String) # define N_(String) String #else # define _(String) String # define N_(String) String # define ngettext(Format1,Format2,N) Format1 # define textdomain(String) # define bindtextdomain(Domain,Directory) #endif #include "debug.h" #define DEFAULT_WIDTH 740 #define DEFAULT_HEIGHT 650 /* main thread status indicator for threads and * inner gtk loops caused by gtk_iteration_main within * gtk callbacks (a necesary evil) */ #define STATUS_IDLE 0 #define STATUS_CLOSING 2 #define MONITOR_THREAD_DONE 0x02 enum { ICONVIEW_TYPE, DESKVIEW_TYPE }; enum { TYPE_SORT, NAME_SORT, SIZE_SORT, DATE_SORT, OWNER_SORT, GROUP_SORT, MODE_SORT }; enum { TR_COPY, TR_MOVE, TR_LINK }; enum { TARGET_URI_LIST, TARGET_PLAIN, TARGET_UTF8, TARGET_STRING, TARGET_ROOTWIN, TARGET_MOZ_URL, TARGET_XDS, TARGET_RAW, TARGETS }; #define PREVIEW_IMAGE_SIZE 400 #define MAX_PIXBUF_HASH_SIZE 128 /* for preview threads, this limits the number of threads which are * spawn concurrently. Increase this number with efective core count */ #define PREVIEW_THREAD_LIMIT 4 /* icon parameters: */ #define BIG_ICON_SIZE 96 #define SMALL_ICON_SIZE 48 #define SIZE_BUTTON 20 #define SIZE_DIALOG 36 #define SIZE_ICON 48 #define SIZE_PREVIEW 96 #define SIZE_TIP 128 #define MAX_COMMAND_ARGS 2048 #define TEXTSPACING 3 #define MINIMUM_ICON_COLUMNS 1 #define MINIMUM_VISIBLE_ROWS 1 #define CELLWSPACING ((view_p->column_width-view_p->icon_size)/2) #define CELLHSPACING (view_p->text_height+TEXTSPACING) #define CELLWIDTH (view_p->column_width) #define CELLHEIGHT (view_p->icon_size+(2*CELLHSPACING)) #define X_OFFSET 5 #define Y_OFFSET view_p->icon_size #define CUT_BUFFER 0 #define BACKGROUND_COLOR 0 #define TEXT_COLOR 1 #define SATURATE_TEXT_COLOR 2 #define SATURATE_LABEL_COLOR 3 #define SELECT_TEXT_COLOR 4 #define INVALID_UTF8_TEXT_COLOR 5 #define SHADOW_COLOR 7 /* files */ //#define DESKVIEW_GEOMETRY_DBH_FILE "rfm","deskview_geometry-4.6.dbh" #define DESKVIEW_GEOMETRY_DBH_FILE "rfm","deskview_geometry-"BUILD".dbh" #define LP_TERMINAL_HISTORY "rfm","lp_terminal_history" #define RUN_FLAG_FILE "rfm","runflag-4.6.dbh" #define RUN_DBH_FILE "rfm","runlist-4.6.dbh" #define GOTO_DBH_FILE "rfm","golist-4.6.dbh" #define WORKDIR_DBH_FILE "rfm","workdir-4.6.dbh" #define FILTER_DBH_FILE "rfm","filterlist-4.6.dbh" #define FIND_DBH_FILE "rfm","fgr_list-4.6.dbh" #define FIND_PATHS_DBH_FILE "rfm","fgr_paths_list-4.6.dbh" #define FIND_GREP_DBH_FILE "rfm","fgr_grep_list-4.6.dbh" //#define GRIDVIEW_GEOMETRY_DBH_FILE "rfm","geometry-4.6.dbh" #define GRIDVIEW_GEOMETRY_DBH_FILE "rfm","geometry-"BUILD".dbh" //#define GRIDVIEW_PREFERENCES_DBH_FILE "rfm","preferences-4.6.dbh" #define GRIDVIEW_PREFERENCES_DBH_FILE "rfm","preferences-"BUILD".dbh" /***** mime ****/ #define FREEDESKTOP_MIME_FILE PACKAGE_DATA_DIR,"rfm","freedesktop.org.xml" #define MAGIC_MIME_FILE PACKAGE_DATA_DIR,"rfm","types.xml" #define APPLICATION_MIME_FILE PACKAGE_DATA_DIR,"rfm","applications-module.xml" #define LOG_DIR g_get_user_cache_dir,"rfm" #define LOG_FILE LOG_DIR,"rfm_error.log" /***** end mime ****/ #define GETWD (g_get_home_dir()?g_get_home_dir():g_get_tmp_dir()) #define SETWD(x) \ if (chdir(GETWD)<0){ \ g_warning("chdir %s: %s",GETWD, strerror (errno));\ } /* custom assert_not_reached() for rfm */ #ifdef __GNUC__ #define assert_not_reached() G_STMT_START{ \ { \ char *logdir=g_build_filename(LOG_DIR,NULL); \ char *logfile=g_build_filename(LOG_FILE,NULL); \ FILE *f=fopen(logfile,"a"); \ fprintf(stderr, "rfm: logfile = %s\n",logfile); \ fprintf(stderr, "rfm: dumping core at= %s\n",logdir); \ chdir(logdir); g_free(logdir); g_free(logfile);\ fprintf(f,"%s%s Core dump --> file %s: line %d (%s): should not be reached\n", \ tod(),(g_get_prgname())?g_get_prgname():"?",\ __FILE__, \ __LINE__, \ __PRETTY_FUNCTION__); \ fclose(f); \ abort(); \ }; }G_STMT_END #else /* !__GNUC__ */ #define assert_not_reached() G_STMT_START{ \ { \ char *logdir=g_build_filename(LOG_DIR,NULL); \ char *logfile=g_build_filename(LOG_FILE,NULL); \ FILE *f=fopen(logfile,"a"); \ fprintf(stderr, "rfm: logfile = %s\n",logfile); \ fprintf(stderr, "rfm: dumping core at= %s\n",logdir);\ chdir(logdir); g_free(logdir); g_free(logfile);\ fprintf(f,"%s%s Core dump --> file %s: line %d (not GNUC): should not be reached\n",\ tod(),(g_get_prgname())?g_get_prgname():"?",\ __FILE__, \ __LINE__); \ fclose(f); \ abort(); \ }; }G_STMT_END #endif /* __GNUC__ */ #define COMM_IGNORE_RELEASE 0x01 #define __MASK 0xffffffff // 32bit only for compatibility with old processors /** Basic stat types (not necesarily exclusive) **/ // (0x1<<0) not used #define __SFIFO (0x1<<1) #define IS_SFIFO(x) ((x) & __SFIFO) #define SET_SFIFO(x) ((x) |= __SFIFO) #define UNSET_SFIFO(x) (x) &= (__SFIFO ^ __MASK ) #define __SCHR (0x1<<2) #define IS_SCHR(x) ((x) & __SCHR) #define SET_SCHR(x) ((x) |= __SCHR) #define UNSET_SCHR(x) (x) &= (__SCHR ^ __MASK ) #define __SDIR (0x1<<3) #define IS_SDIR(x) ((x) & __SDIR) #define SET_SDIR(x) ((x) |= __SDIR) #define UNSET_SDIR(x) (x) &= (__SDIR ^ __MASK ) #define __SBLK (0x1<<4) #define IS_SBLK(x) ((x) & __SBLK) #define SET_SBLK(x) ((x) |= __SBLK) #define UNSET_SBLK(x) (x) &= (__SBLK ^ __MASK ) #define __SREG (0x1<<5) #define IS_SREG(x) ((x) & __SREG) #define SET_SREG(x) ((x) |= __SREG) #define UNSET_SREG(x) (x) &= (__SREG ^ __MASK ) #define __SLNK (0x1<<6) #define IS_SLNK(x) ((x) & __SLNK) #define SET_SLNK(x) ((x) |= __SLNK) #define UNSET_SLNK(x) (x) &= (__SLNK ^ __MASK ) #define __SSOCK (0x1<<7) #define IS_SSOCK(x) ((x) & __SSOCK) #define SET_SSOCK(x) ((x) |= __SSOCK) #define UNSET_SSOCK(x) (x) &= (__SSOCK ^ __MASK ) /** higher level types **/ #define __NET_TYPE (0x1<<8) #define IS_NET_TYPE(x) ((x) & __NET_TYPE) #define SET_NET_TYPE(x) (x) |= __NET_TYPE #define UNSET_NET_TYPE(x) (x) &= (__NET_TYPE ^ __MASK ) #define __LOCAL_TYPE (0x1<<9) #define IS_LOCAL_TYPE(x) ((x) & __LOCAL_TYPE) #define SET_LOCAL_TYPE(x) (x) |= __LOCAL_TYPE #define UNSET_LOCAL_TYPE(x) (x) &= (__LOCAL_TYPE ^ __MASK ) #define __DUMMY_TYPE (0x1<<10) #define IS_DUMMY_TYPE(x) ((x) & __DUMMY_TYPE) #define SET_DUMMY_TYPE(x) (x) |= __DUMMY_TYPE #define UNSET_DUMMY_TYPE(x) (x) &= (__DUMMY_TYPE ^ __MASK ) #define __ROOT_TYPE (0x1<<11) #define IS_ROOT_TYPE(x) ((x) & __ROOT_TYPE) #define SET_ROOT_TYPE(x) (x) |= __ROOT_TYPE #define UNSET_ROOT_TYPE(x) (x) &= (__ROOT_TYPE ^ __MASK ) #define __UP_TYPE (0x1<<12) #define IS_UP_TYPE(x) ((x) & __UP_TYPE) #define SET_UP_TYPE(x) (x) |= __UP_TYPE #define UNSET_UP_TYPE(x) (x) &= (__UP_TYPE ^ __MASK ) #define __PROC_TYPE (0x1<<13) #define IS_PROC_TYPE(x) ((x) & __PROC_TYPE) #define SET_PROC_TYPE(x) (x) |= __PROC_TYPE #define UNSET_PROC_TYPE(x) (x) &= (__PROC_TYPE ^ __MASK ) #define __CDFS_TYPE (0x1<<14) #define IS_CDFS_TYPE(x) ((x) & __CDFS_TYPE) #define SET_CDFS_TYPE(x) (x) |= __CDFS_TYPE #define UNSET_CDFS_TYPE(x) (x) &= (__CDFS_TYPE ^ __MASK ) #define __USER_TYPE (0x1<<15) #define IS_USER_TYPE(x) ((x) & __USER_TYPE) #define SET_USER_TYPE(x) (x) |= __USER_TYPE #define UNSET_USER_TYPE(x) (x) &= (__USER_TYPE ^ __MASK ) #define __NFS_TYPE (0x1<<16) #define IS_NFS_TYPE(x) ((x) & __NFS_TYPE) #define SET_NFS_TYPE(x) (x) |= __NFS_TYPE #define UNSET_NFS_TYPE(x) (x) &= (__NFS_TYPE ^ __MASK ) #define __SMB_TYPE (0x1<<17) #define IS_SMB_TYPE(x) ((x) & __SMB_TYPE) #define SET_SMB_TYPE(x) (x) |= __SMB_TYPE #define UNSET_SMB_TYPE(x) (x) &= (__SMB_TYPE ^ __MASK ) #define __FSTAB_TYPE (0x1<<18) #define IS_FSTAB_TYPE(x) ((x) & __FSTAB_TYPE) #define SET_FSTAB_TYPE(x) (x) |= __FSTAB_TYPE #define UNSET_FSTAB_TYPE(x) (x) &= (__FSTAB_TYPE ^ __MASK ) #define __MTAB_TYPE (0x1<<19) #define IS_MTAB_TYPE(x) ((x) & __MTAB_TYPE) #define SET_MTAB_TYPE(x) (x) |= __MTAB_TYPE #define UNSET_MTAB_TYPE(x) (x) &= (__MTAB_TYPE ^ __MASK ) #define __PARTITION_TYPE (0x1<<20) #define IS_PARTITION_TYPE(x) ((x) & __PARTITION_TYPE) #define SET_PARTITION_TYPE(x) (x) |= __PARTITION_TYPE #define UNSET_PARTITION_TYPE(x) (x) &= (__PARTITION_TYPE ^ __MASK ) #define __EXE_TYPE (0x1<<21) #define IS_EXE_TYPE(x) ((x) & __EXE_TYPE) #define SET_EXE_TYPE(x) (x) |= __EXE_TYPE #define UNSET_EXE_TYPE(x) (x) &= (__EXE_TYPE ^ __MASK ) #define __NOWRITE_TYPE (0x1<<22) #define IS_NOWRITE_TYPE(x) ((x) & __NOWRITE_TYPE) #define SET_NOWRITE_TYPE(x) (x) |= __NOWRITE_TYPE #define UNSET_NOWRITE_TYPE(x) (x) &= (__NOWRITE_TYPE ^ __MASK ) #define __NOACCESS_TYPE (0x1<<23) #define IS_NOACCESS_TYPE(x) ((x) & __NOACCESS_TYPE) #define SET_NOACCESS_TYPE(x) (x) |= __NOACCESS_TYPE #define UNSET_NOACCESS_TYPE(x) (x) &= (__NOACCESS_TYPE ^ __MASK ) #define __BROKEN_LNK (0x1<<24) #define IS_BROKEN_LNK(x) ((x) & __BROKEN_LNK) #define SET_BROKEN_LNK(x) (x) |= __BROKEN_LNK #define UNSET_BROKEN_LNK(x) (x) &= (__BROKEN_LNK ^ __MASK ) #define __SHOWS_HIDDEN (0x1<<25) #define SHOWS_HIDDEN(x) ((x) & __SHOWS_HIDDEN) #define SET_SHOWS_HIDDEN(x) (x) |= __SHOWS_HIDDEN #define UNSET_SHOWS_HIDDEN(x) (x) &= (__SHOWS_HIDDEN ^ __MASK ) #define __MOUNTED_TYPE (0x1<<26) #define IS_MOUNTED_TYPE(x) ((x) & __MOUNTED_TYPE) #define SET_MOUNTED_TYPE(x) (x) |= __MOUNTED_TYPE #define UNSET_MOUNTED_TYPE(x) (x) &= (__MOUNTED_TYPE ^ __MASK ) #define __SHOWS_IMAGES (0x1<<27) #define SHOWS_IMAGES(x) ((x) & __SHOWS_IMAGES) #define SET_SHOWS_IMAGES(x) (x) |= __SHOWS_IMAGES #define UNSET_SHOWS_IMAGES(x) (x) &= (__SHOWS_IMAGES ^ __MASK ) #define __SHOWS_ASCENDING (0x1<<28) #define SHOWS_ASCENDING(x) ((x) & __SHOWS_ASCENDING) #define SET_SHOWS_ASCENDING(x) (x) |= __SHOWS_ASCENDING #define UNSET_SHOWS_ASCENDING(x) (x) &= (__SHOWS_ASCENDING ^ __MASK ) /******************************************************/ #define INHERIT_OPTIONS (__SHOW_HIDDEN|__SHOW_IMAGES) #define INHERIT_TYPE(x,y) x |= ((y)& INHERIT_OPTIONS) // IS_FILE excludes directories and symlinks to directories #define IS_FILE(x) \ ( \ !IS_SDIR(x) \ && \ ( \ (x) | __SREG | __SCHR | __SBLK | __SFIFO | __SSOCK \ || \ IS_BROKEN_LNK(x) \ ) \ ) #define SINGLE_CLICK_MODE \ (!(getenv("RFM_DOUBLE_CLICK_NAVIGATION") && \ strlen(getenv("RFM_DOUBLE_CLICK_NAVIGATION")))) /**** preferences flag (view and preferences) *****/ #define __SHOW_HIDDEN __SHOWS_HIDDEN #define __SHOW_IMAGES __SHOWS_IMAGES // show images, and sort descending #define DEFAULT_PREFERENCES (__SHOW_IMAGES) #define DEFAULT_VIEW_PREFERENCES DEFAULT_PREFERENCES #define DEFAULT_SORT_COLUMN (TYPE_SORT) #define SORT_ASCENDING __SHOWS_ASCENDING #define BIT_MASK 0xffffffff #define GLADE_HOOKUP_OBJECT(component,widget,name) \ g_object_set_data_full (G_OBJECT (component), name, \ g_object_ref (widget), (GDestroyNotify) g_object_unref) #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ g_object_set_data (G_OBJECT (component), name, widget) #endif /*__CONSTANTS__*/ .