#include <gnome-factory.idl>

module GNOME {
	module FileManager {
		exception POSIX_ERROR { string errorstr; };

		interface Desktop {
			enum ArrangeType {
				BY_NAME,
				BY_TYPE,
				BY_SIZE,
				BY_ATIME,
				BY_MTIME,
				BY_CTIME
			};

			void rescan ();
			void rescan_devices ();
			void arrange_icons (in ArrangeType type);
		};

		interface Window {
			/* not much yet */
			oneway void close ();
		};

		interface WindowFactory : ::GNOME::GenericFactory {
			typedef sequence<Window> WindowSeq;

			/* This is the desktop object */
			readonly attribute Desktop the_desktop;

			Window create_window (in string dir)
				raises (POSIX_ERROR);
			void rescan_directory (in string dir);
			void close_invalid_windows ();
			WindowSeq get_windows_by_directory (in string dir);
		};
	};
};
