#ifndef _GDESKTOP_H #define _GDESKTOP_H #define MC_LIB_DESKTOP "mc.desktop" /* Drag and drop types recognized by us */ enum { TARGET_URI_LIST, TARGET_URL_LIST, TARGET_TEXT_PLAIN, }; /* Types of desktop icons: * * o Application: Double click: start up application; * Dropping: start up program with arguments. * * o Directory: Double click: opens the directory in a panel. * Double click: copies/moves files. * * o File: Opens the application according to regex_command */ typedef enum { application, directory, file } icon_t; /* A structure that describes each icon on the desktop */ typedef struct { GnomeDesktopEntry *dentry; GtkWidget *widget; icon_t type; int x, y; int grid_x, grid_y; char *pathname; } desktop_icon_t; /* size of the snap to grid size */ #define SNAP_X 80 #define SNAP_Y 80 /* gtrans.c */ extern int want_transparent_icons; extern int want_transparent_text; GtkWidget *make_transparent_window (char *file); /* gdesktop.c */ void drop_on_directory (GtkSelectionData *sel_data, GdkDragContext *context, GdkDragAction action, char *dest, int force_manually); #if 0 void drop_on_directory (GdkEventDropDataAvailable *event, char *dest, int force_manually); void artificial_drag_start (GdkWindow *source_window, int x, int y); #endif void gnome_arrange_icons (void); void start_desktop (void); void stop_desktop (void); /* These get invoked by the context sensitive popup menu in gscreen.c */ void desktop_icon_properties (GtkWidget *widget, desktop_icon_t *di); void desktop_icon_execute (GtkWidget *widget, desktop_icon_t *di); void desktop_icon_delete (GtkWidget *widget, desktop_icon_t *di); /* Pops up the context sensitive menu for a WPanel or a desktop_icon_t */ void file_popup (GdkEventButton *event, void *WPanel_pointer, void *desktop_icon_t_pointer, int row, char *filename); extern int icons_snap_to_grid; #endif