public VfsSource(string uri)
        {
            string [] components = uri.Split(new char [] { '/' });
            this.Name = components [components.Length - 1];
            if (this.Name == String.Empty)
            {
                this.Name = components [components.Length - 2];
            }

            this.uri = uri;

            this.Icon = PixbufUtils.LoadThemeIcon("stock_folder", 32);
        }
        public DriveSource(Gnome.Vfs.Drive drive)
        {
            this.Name  = drive.DisplayName;
            this.Drive = drive;

            if (drive.IsMounted)
            {
                this.Icon = PixbufUtils.LoadThemeIcon(drive.MountedVolume.Icon, 32);
                //this.Sensitive = drive.MountedVolume.IsMounted;
            }
            else
            {
                this.Icon = PixbufUtils.LoadThemeIcon(drive.Icon, 32);
            }
        }
        public CameraSource(GPhotoCamera cam, int index)
        {
            this.cam         = cam;
            this.CameraIndex = index;

#if LONG_NAMES
            this.Name = String.Format("{0} ({1})", cam.CameraList.GetName(index), cam.CameraList.GetValue(index));
#else
            this.Name = String.Format("{0}", cam.CameraList.GetName(index));
#endif
            this.Icon = PixbufUtils.LoadThemeIcon("gnome-dev-camera", 32);
            if (this.Icon == null)
            {
                this.Icon = PixbufUtils.LoadThemeIcon("gnome-dev-media-cf", 32);
            }
        }
        public VolumeSource(Gnome.Vfs.Volume vol)
        {
            this.Volume = vol;
            this.Name   = vol.DisplayName;

            try {
                mount_point = new Uri(vol.ActivationUri).LocalPath;
            } catch (System.Exception e) {
                System.Console.WriteLine(e);
            }

            uri = mount_point;

            if (this.Icon == null)
            {
                this.Icon = PixbufUtils.LoadThemeIcon(vol.Icon, 32);
            }

            if (this.IsIPodPhoto)
            {
                this.Icon = PixbufUtils.LoadThemeIcon("gnome-dev-ipod", 32);
            }

            if (this.Icon == null && this.IsCamera)
            {
                this.Icon = PixbufUtils.LoadThemeIcon("gnome-dev-media-cf", 32);
            }

            try {
                if (this.Icon == null)
                {
                    this.Icon = new Gdk.Pixbuf(vol.Icon);
                }
            } catch (System.Exception e) {
                System.Console.WriteLine(e.ToString());
            }
        }
 public BrowseSource(string name, string icon)
 {
     this.Name = name;
     this.Icon = PixbufUtils.LoadThemeIcon(icon, 32);
 }
 public BrowseSource()
 {
     this.Name = Catalog.GetString("Select Folder");
     this.Icon = PixbufUtils.LoadThemeIcon("stock_folder", 32);
 }