1/* Copyright (C) 2007 The gtkmm Development Team 2 * 3 * This library is free software; you can redistribute it and/or 4 * modify it under the terms of the GNU Lesser General Public 5 * License as published by the Free Software Foundation; either 6 * version 2.1 of the License, or (at your option) any later version. 7 * 8 * This library is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * Lesser General Public License for more details. 12 * 13 * You should have received a copy of the GNU Lesser General Public 14 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 15 */ 16 17_CONFIGINCLUDE(giommconfig.h) 18 19#include <giomm/drive.h> 20#include <giomm/volume.h> 21#include <giomm/mount.h> 22 23_DEFS(giomm,gio) 24_PINCLUDE(glibmm/private/object_p.h) 25 26namespace Gio 27{ 28 29/** Monitors a file or directory for changes. 30 * VolumeMonitor is for listing the user-interesting devices and volumes on the 31 * computer. In other words, what a file selector or file manager would show in 32 * a sidebar. 33 * 34 * @newin{2,16} 35 */ 36class GIOMM_API VolumeMonitor : public Glib::Object 37{ 38 _CLASS_GOBJECT(VolumeMonitor, GVolumeMonitor, G_VOLUME_MONITOR, Glib::Object, GObject, , , GIOMM_API) 39protected: 40 41public: 42 43 _WRAP_METHOD(static Glib::RefPtr<VolumeMonitor> get(), g_volume_monitor_get) 44 45#m4 _CONVERSION(`GList*',`Glib::ListHandle< Glib::RefPtr<Drive> >',`$2($3, Glib::OWNERSHIP_DEEP)') 46 _WRAP_METHOD(Glib::ListHandle< Glib::RefPtr<Drive> > get_connected_drives(), g_volume_monitor_get_connected_drives) 47 48#m4 _CONVERSION(`GList*',`Glib::ListHandle< Glib::RefPtr<Volume> >',`$2($3, Glib::OWNERSHIP_DEEP)') 49 _WRAP_METHOD(Glib::ListHandle< Glib::RefPtr<Volume> > get_volumes(), g_volume_monitor_get_volumes) 50 51#m4 _CONVERSION(`GList*',`Glib::ListHandle< Glib::RefPtr<Mount> >',`$2($3, Glib::OWNERSHIP_DEEP)') 52 _WRAP_METHOD(Glib::ListHandle< Glib::RefPtr<Mount> > get_mounts(), g_volume_monitor_get_mounts) 53 54 _WRAP_METHOD(Glib::RefPtr<Volume> get_volume_for_uuid(const std::string& uuid), g_volume_monitor_get_volume_for_uuid, refreturn) 55 _WRAP_METHOD(Glib::RefPtr<Mount> get_mount_for_uuid(const std::string& uuid), g_volume_monitor_get_mount_for_uuid, refreturn) 56 57 _WRAP_METHOD(static Glib::RefPtr<Volume> adopt_orphan_mount(const Glib::RefPtr<Mount>& mount), g_volume_monitor_adopt_orphan_mount, 58 deprecated "Instead of using this function, create shadow mounts with the URI of the mount you intend to adopt.") 59 60#m4 _CONVERSION(`GVolume*',`const Glib::RefPtr<Volume>&',`Glib::wrap($3, true)') 61 _WRAP_SIGNAL(void volume_added(const Glib::RefPtr<Volume>& volume), volume_added) 62 _WRAP_SIGNAL(void volume_removed(const Glib::RefPtr<Volume>& volume), volume_removed) 63 _WRAP_SIGNAL(void volume_changed(const Glib::RefPtr<Volume>& volume), volume_changed) 64 65#m4 _CONVERSION(`GMount*',`const Glib::RefPtr<Mount>&',`Glib::wrap($3, true)') 66 _WRAP_SIGNAL(void mount_added(const Glib::RefPtr<Mount>& mount), mount_added) 67 _WRAP_SIGNAL(void mount_removed(const Glib::RefPtr<Mount>& mount), mount_removed) 68 _WRAP_SIGNAL(void mount_pre_unmount(const Glib::RefPtr<Mount>& mount), mount_pre_unmount) 69 _WRAP_SIGNAL(void mount_changed(const Glib::RefPtr<Mount>& mount), mount_changed) 70 71#m4 _CONVERSION(`GDrive*',`const Glib::RefPtr<Drive>&',`Glib::wrap($3, true)') 72 _WRAP_SIGNAL(void drive_connected(const Glib::RefPtr<Drive>& drive), drive_connected) 73 _WRAP_SIGNAL(void drive_disconnected(const Glib::RefPtr<Drive>& drive), drive_disconnected) 74 _WRAP_SIGNAL(void drive_changed(const Glib::RefPtr<Drive>& drive), drive_changed) 75 76 //TODO: Remove no_default_handler when we can break ABI: 77 _WRAP_SIGNAL(void drive_eject_button(const Glib::RefPtr<Drive>& drive), drive_eject_button, no_default_handler) 78 _WRAP_SIGNAL(void drive_stop_button(const Glib::RefPtr<Drive>& drive), drive_stop_button, no_default_handler) 79 80 //TODO: Use ListHandle? 81 //_WRAP_VFUNC(GList* get_volumes(), get_volumes) 82 //_WRAP_VFUNC(GList* get_mounts(), get_mounts) 83 84#m4 _CONVERSION(`Glib::RefPtr<Volume>',`GVolume*',__CONVERT_CONST_REFPTR_TO_P) 85 //_WRAP_VFUNC(Glib::RefPtr<Volume> get_volume_for_uuid(const std::string& uuid), get_volume_for_uuid) 86 87#m4 _CONVERSION(`Glib::RefPtr<Mount>',`GMount*',__CONVERT_CONST_REFPTR_TO_P) 88 //_WRAP_VFUNC(Glib::RefPtr<Mount> get_mount_for_uuid(const std::string& uuid), get_mount_for_uuid) 89 90 //There are no properties. 91}; 92 93} // namespace Gio 94 95