/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Interface for the Evolution shell. * * Authors: * Ettore Perazzoli * * Copyright (C) 2000, 2001 Ximian, Inc. */ #include module GNOME { module Evolution { interface ShellComponent; interface FolderSelectionListener; interface Shell : Bonobo::Unknown { exception NotReady {}; exception NotFound {}; exception UnsupportedSchema {}; exception InvalidURI {}; exception InternalError {}; exception Busy {}; typedef sequence FolderTypeNameList; /* The X display name. */ readonly attribute string displayName; /** * getComponentByType: * @type: name of a valid folder type * * Get the shell component associated with a specific folder type. * * Return value: the Evolution::ShellComponent interface for the component that * handles @type. */ ShellComponent getComponentByType (in string type) raises (NotReady, NotFound); /** * createNewView: * @uri: URI for the view to open * * Return value: the new view. */ ShellView createNewView (in string uri) raises (NotReady, NotFound, UnsupportedSchema, InvalidURI, InternalError); /** * handleURI: * @uri: URI to handle * * This handles the specified URI. It is different from * `::createNewView' as it doesn't necessarily imply creating a * new ShellView. (For example, a `mailto:' URI will invoke * the message composer.) */ void handleURI (in string uri) raises (NotReady, NotFound, UnsupportedSchema, InvalidURI, InternalError); /** * selectUserFolder: * @parent_xid: XID for the parent window (or zero if no parent window). * @listener: a listener interface to report the answer of the user. * @title: title for the folder selector dialog * @default_folder: physical or `evolution:' URI for the folder that must be * selected by default, when the dialog is popped up * @possible_types: list of the names of the types of folders that are allowed * * Pop up a folder selection dialog from which the user can select a folder. * Initially, the @default_folder is selected. The user can also create a new * folder by using the "New..." button. The dialog only lets the user choose * a folder whose type is listed in @possible_types. */ void selectUserFolder (in long long parent_xid, in FolderSelectionListener listener, in string title, in string default_folder, in FolderTypeNameList possible_types, in string default_type) raises (NotReady, Busy); /** * getLocalStorage: * * Get the interface to the local storage. * * FIXME: Probably we just want to be able to request this to * the StorageRegistry. This is an ugly kludge. * * Return value: the `Evolution::LocalStorage' interface for * the local storage. */ Storage getLocalStorage () raises (NotReady); /** * createStorageSetView: * * Create a control for the storage set view. This control * will also implement the `Evolution::StorageSetView' interface. * * Return value: the newly created control. */ Bonobo::Control createStorageSetView () raises (NotReady); /** * setLineStatus: * * Set the shell into on-line or off-line mode. */ void setLineStatus (in boolean online) raises (NotReady); }; interface FolderSelectionListener { void notifySelected (in string uri, in string physical_uri); void notifyCanceled (); }; }; };