1
1
mc/gnome/gdesktop.h
Miguel de Icaza ca1437548b 1999-03-10 Federico Mena Quintero <federico@nuclecu.unam.mx>
This is a semi-big slew of changes to integrate the DESKTOP_BRANCH
	into the main trunk.  Now the gdesktop code creates a temprary
	WPanel structure and passes it on to the core file management
	functions.  Also, the menu code is improved (we now use gpopup2;
	gpopup should go away shortly and gpopup2 should replace it).
	This makes the desktop act consistently with the file panels.
	Thanks to Jonathan for his help with this branch.

	* gdnd.c (perform_action): Use mc_lstat(), not mc_stat().

	* glayout.c (update_panels): Do not update the panels that are
	desktop panels.

	* gdesktop.c (icon_is_in_area): An icon is not considered to be in
	a 0x0 area.

	* gpopup2.c (handle_open): Fetch the desktop icon from the
	filename and call desktop_icon_info_open().

	* gdesktop.c (desktop_icon_info_get_by_filename): New function to
	look up a desktop icon by its filename.

	* glayout.c (create_new_menu_from): Test for the ".desktop" suffix
	correctly.

	* gpopup2.c (handle_properties): If the file comes from a desktop
	panel, always allow edition of the icon image.

1999-03-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* file.c (erase_dir): Erase metadata for directories as well.
	(erase_dir_iff_empty): Likewise.
	(copy_file_file): Delete/copy the metadata even for
	char/block/sock/fifo files.  Same thing for when copying symlinks.
	(copy_dir_dir): Delete/copy the metadata.
	(move_dir_dir): Delete/move the metadata.
	(recursive_erase): Delete the metadata.
1999-03-11 02:40:53 +00:00

69 строки
2.3 KiB
C

/* Desktop management for the Midnight Commander
*
* Copyright (C) 1998 The Free Software Foundation
*
* Authors: Federico Mena <federico@nuclecu.unam.mx>
* Miguel de Icaza <miguel@nuclecu.unam.mx>
*/
#ifndef GDESKTOP_H
#define GDESKTOP_H
#include "dir.h"
/* Snap granularity for desktop icons -- maybe these should be calculated in
* terms of the font size?
*/
#define DESKTOP_SNAP_X 80
#define DESKTOP_SNAP_Y 80
/* Configuration options for the desktop */
extern int desktop_use_shaped_icons; /* Whether to use shaped icons or not (for slow X servers) */
extern int desktop_auto_placement; /* Whether to auto-place icons or not (user placement) */
extern int desktop_snap_icons; /* Whether to snap icons to the grid or not */
extern char *desktop_directory;
/* Initializes the desktop -- init DnD, load the default desktop icons, etc. */
void desktop_init (void);
/* Shuts the desktop down by destroying the desktop icons. */
void desktop_destroy (void);
/* This structure defines the information carried by a desktop icon */
typedef struct {
GtkWidget *dicon; /* The desktop icon widget */
int x, y; /* Position in the desktop */
int slot; /* Index of the slot the icon is in, or -1 for none */
char *filename; /* The file this icon refers to
* (relative to the desktop_directory)
*/
char *url; /* URL this icon points to */
int selected : 1; /* Is the icon selected? */
int tmp_selected : 1; /* Temp storage for original selection while rubberbanding */
} DesktopIconInfo;
void desktop_icon_info_open (DesktopIconInfo *dii);
void desktop_icon_info_delete (DesktopIconInfo *dii);
void desktop_icon_update_url (DesktopIconInfo *dii);
DesktopIconInfo *desktop_icon_info_get_by_filename (char *filename);
file_entry *file_entry_from_file (char *filename);
void file_entry_free (file_entry *fe);
gboolean is_mountable (char *filename, file_entry *fe, int *is_mounted, char **mount_point);
gboolean is_ejectable (char *filename);
gboolean do_mount_umount (char *filename, gboolean is_mount);
gboolean do_eject (char *filename);
void desktop_arrange_icons (void);
void desktop_rescan_devices (void);
void desktop_reload_icons (int user_pos, int xpos, int ypos);
extern int desktop_wm_is_gnome_compliant;
#endif