/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
 * Interface for the Evolution shortcuts.
 *
 * Authors:
 *   Ettore Perazzoli <ettore@ximian.com>
 *
 * Copyright (C) 2001 Ximian, Inc.
 */

#include <Bonobo.idl>

module GNOME {
module Evolution {

	interface Shortcuts : Bonobo::Unknown {

		struct Shortcut {
			string uri;
			string name;
			string type;
		};
		typedef sequence <Shortcut> ShortcutList;

		struct Group {
			string name;
			ShortcutList shortcuts;
		};
		typedef sequence<Group> GroupList;

		exception NotFound {};
		exception InvalidPosition {};
		exception CannotRemove {};

		readonly attribute GroupList groups; // FIXME: Could be non-readonly

		void add (in short group_num, in short position, in Shortcut shortcut)
			raises (NotFound);
		void remove (in short group_num, in short item_num)
			raises (NotFound);
		Shortcut get (in short group_num, in short item_num)
			raises (NotFound);

		void addGroup (in short position, in string name)
			raises (InvalidPosition);
		void removeGroup (in short group_num)
			raises (NotFound, CannotRemove);
		Group getGroup (in short group_num)
			raises (NotFound);

	};

};
};