/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Interface for the Evolution components. * * Authors: * Ettore Perazzoli * * Copyright (C) 2000, 2001 Ximian, Inc. */ #include module GNOME { module Evolution { interface Shell; struct FolderType { string name; string icon_name; boolean user_creatable; sequence accepted_dnd_types; sequence exported_dnd_types; }; typedef sequence FolderTypeList; typedef string URISchema; typedef sequence URISchemaList; interface ShellComponentListener; interface ShellComponent : Bonobo::Unknown { readonly attribute FolderTypeList supported_types; readonly attribute URISchemaList external_uri_schemas; /* FIXME: Can we use an attribute here? */ exception AlreadyOwned {}; void setOwner (in Shell shell, in string evolution_homedir) raises (AlreadyOwned); exception NotOwned {}; void unsetOwner () raises (NotOwned); void debug (in string log_path); /* FIXME: We might want more exceptions here. */ exception NotFound {}; exception UnsupportedType {}; exception UnsupportedSchema {}; exception InternalError {}; Bonobo::Control createView (in string physical_uri, in string type) raises (NotFound, UnsupportedType, InternalError); void handleExternalURI (in string external_uri) raises (NotFound, UnsupportedSchema, InternalError); exception Busy {}; void createFolderAsync (in ShellComponentListener listener, in string physical_uri, in string type) raises (Busy); void removeFolderAsync (in ShellComponentListener listener, in string physical_uri, in string type) raises (Busy); void xferFolderAsync (in ShellComponentListener listener, in string source_physical_uri, in string destination_physical_uri, in string type, in boolean remove_source) raises (Busy); void populateFolderContextMenu (in Bonobo::UIContainer uih, in string physical_uri, in string type); }; interface ShellComponentListener { enum Result { OK, UNSUPPORTED_OPERATION, UNSUPPORTED_TYPE, EXISTS, INVALID_URI, PERMISSION_DENIED, HAS_SUBFOLDERS, NO_SPACE }; void notifyResult (in Result result); }; }; };