nautilus/libnautilus-private/nautilus-volume-monitor.h
Gene Z. Ragan f588829355 Fixed bug 5635, RPM view crashed if click "Install" after unmounting
2001-01-15  Gene Z. Ragan  <gzr@eazel.com>

	Fixed bug 5635, RPM view crashed if click "Install"
	after unmounting volume containing RPM

	Fixed bug 5636, Unmounting a volume doesn't close
	it's associated windows.

	* src/nautilus-application.c: (nautilus_application_initialize),
	(volume_mounted_callback), (volume_unmounted_callback):
	Connect to volume monitor signals.  When a volume is unmounted,
	examine open window list and close any windows that originate
	from the volume being unmounted.

	Add code to mount audio cds on desktop. It is all
	ifdefed out right now.

	* src/file-manager/fm-desktop-icon-view.c: (create_mount_link),
	(update_disks_menu):

	* libnautilus-extensions/nautilus-volume-monitor.c:
	(nautilus_volume_monitor_volume_is_removable),
	(nautilus_volume_monitor_get_removable_volumes),
	(nautilus_volume_monitor_get_target_uri),
	(mount_volume_get_cdda_name), (mount_volume_activate_cdda),
	(mount_volume_get_name), (mount_volume_activate),
	(get_current_mount_list), (mount_volumes_check_status),
	(mount_volume_cdda_add), (mount_volume_add_filesystem),
	(open_cdda_device), (locate_audio_cd):
	* libnautilus-extensions/nautilus-volume-monitor.h:
2001-01-15 08:43:35 +00:00

115 lines
4.4 KiB
C

/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/* nautilus-volume-monitor.h - interface for desktop mounting functions.
Copyright (C) 2000 Eazel, Inc.
The Gnome Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the Gnome Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
Authors: Gene Z. Ragan <gzr@eazel.com>
*/
#ifndef NAUTILUS_VOLUME_MONITOR_H
#define NAUTILUS_VOLUME_MONITOR_H
#include <gtk/gtkobject.h>
typedef struct NautilusVolumeMonitor NautilusVolumeMonitor;
typedef struct NautilusVolumeMonitorClass NautilusVolumeMonitorClass;
typedef struct NautilusVolumeMonitorDetails NautilusVolumeMonitorDetails;
#define NAUTILUS_TYPE_VOLUME_MONITOR (nautilus_volume_monitor_get_type())
#define NAUTILUS_VOLUME_MONITOR(obj) (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_VOLUME_MONITOR, NautilusVolumeMonitor))
#define NAUTILUS_VOLUME_MONITOR_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_VOLUME_MONITOR, NautilusVolumeMonitorClass))
#define IS_NAUTILUS_VOLUME_MONITOR(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_VOLUME_MONITOR))
struct NautilusVolumeMonitor {
GtkObject parent;
NautilusVolumeMonitorDetails *details;
};
typedef struct NautilusVolume NautilusVolume;
struct NautilusVolumeMonitorClass {
GtkObjectClass parent_class;
/* Signals */
void (* volume_mounted) (NautilusVolumeMonitor *monitor,
const NautilusVolume *volume);
void (* volume_unmounted) (NautilusVolumeMonitor *monitor,
const NautilusVolume *volume);
};
typedef enum {
NAUTILUS_VOLUME_AFFS,
NAUTILUS_VOLUME_CDDA,
NAUTILUS_VOLUME_CDROM,
NAUTILUS_VOLUME_EXT2,
NAUTILUS_VOLUME_FAT,
NAUTILUS_VOLUME_FLOPPY,
NAUTILUS_VOLUME_HPFS,
NAUTILUS_VOLUME_MINIX,
NAUTILUS_VOLUME_MSDOS,
NAUTILUS_VOLUME_NFS,
NAUTILUS_VOLUME_SMB,
NAUTILUS_VOLUME_UDF,
NAUTILUS_VOLUME_UFS,
NAUTILUS_VOLUME_UNSDOS,
NAUTILUS_VOLUME_VFAT,
NAUTILUS_VOLUME_XENIX,
NAUTILUS_VOLUME_XIAFS,
NAUTILUS_VOLUME_UNKNOWN
} NautilusVolumeType;
struct NautilusVolume {
NautilusVolumeType type;
char *device_path;
char *mount_path;
char *volume_name;
char *filesystem;
gboolean is_removable;
gboolean is_read_only;
};
typedef gboolean (* NautilusEachVolumeFunction) (const NautilusVolume *, gpointer);
GtkType nautilus_volume_monitor_get_type (void);
NautilusVolumeMonitor *nautilus_volume_monitor_get (void);
char *nautilus_volume_monitor_get_volume_name (const NautilusVolume *volume);
void nautilus_volume_monitor_mount_unmount_removable (NautilusVolumeMonitor *monitor,
const char *mount_point,
gboolean should_mount);
gboolean nautilus_volume_monitor_volume_is_mounted (NautilusVolumeMonitor *monitor,
const NautilusVolume *mount_point);
gboolean nautilus_volume_monitor_volume_is_removable (NautilusVolumeMonitor *monitor,
const NautilusVolume *volume);
gboolean nautilus_volume_monitor_is_volume_link (const char *path);
gboolean nautilus_volume_monitor_should_integrate_trash (const NautilusVolume *volume);
const char *nautilus_volume_monitor_get_volume_mount_uri (const NautilusVolume *volume);
void nautilus_volume_monitor_each_mounted_volume (NautilusVolumeMonitor *monitor,
NautilusEachVolumeFunction function,
gpointer context);
GList *nautilus_volume_monitor_get_removable_volumes (NautilusVolumeMonitor *monitor);
void nautilus_volume_monitor_free_volume (NautilusVolume *volume);
char *nautilus_volume_monitor_get_target_uri (const NautilusVolume *volume);
#endif /* NAUTILUS_VOLUME_MONITOR_H */