the ::Shell interface to happen before the shell is actually fully initialized. This is a lame hack and not a nice, complete solution for the problem, but it should do for now.] * e-shell.c: New member `is_initialized' in `EShellPrivate'. (init): Initialize to %FALSE. (e_shell_construct): Set `is_initialized' to %TRUE after the initialization sequence is finished. (raise_exception_if_not_ready): New utility function to raise the notReady exception if the shell is not ready. (impl_Shell__get_displayName): Call it. (impl_Shell_getComponentByType): Likewise. (impl_Shell_createNewView): Likewise. (impl_Shell_handleURI): Likewise. (impl_Shell_selectUserFolder): Likewise. (impl_Shell_getLocalStorage): Likewise. (impl_Shell_createStorageSetView): Likewise. (impl_Shell_setLineStatus): Likewise. (e_shell_construct): Print out the repo_id of the exception from `bonobo_get_object()' if it fails. Also, register on OAF just before displaying the splash. * Evolution-Shell.idl: New exception `NotReady'. All the CORBA methods on ::Shell can now raise this exception. svn path=/trunk/; revision=12826
123 lines
3.3 KiB
Plaintext
123 lines
3.3 KiB
Plaintext
/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
|
/*
|
|
* Interface for the Evolution shell.
|
|
*
|
|
* Authors:
|
|
* Ettore Perazzoli <ettore@ximian.com>
|
|
*
|
|
* Copyright (C) 2000, 2001 Ximian, Inc.
|
|
*/
|
|
|
|
#include <Bonobo.idl>
|
|
|
|
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<string> 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:
|
|
* @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 FolderSelectionListener listener,
|
|
in string title,
|
|
in string default_folder,
|
|
in FolderTypeNameList possible_types)
|
|
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 ();
|
|
};
|
|
};
|
|
};
|