2001-08-03 Jason Leach <jleach@ximian.com> [Removing Evolution::LocalStorage interface, abstracting the unread counts from a folder's name, also abstract unread counts from a shortcut's name. Fixes #4489 and #5497] * e-shortcuts.c (shortcut_item_new): Take an unread_count argument now. (shortcut_item_update): Ditto. * e-shortcuts-view-model.c (get_name_with_unread): Get a string containing a shortcut name and it's unread, because these are abstracted now. (load_group_into_model): Use the above function to make shortcuts that have unread counts. * e-storage-set-view.c (update_folder_with_unread_hash): Keep a hash of folder names with unread counts, because the folder name and it's unread count are to be separated, only the ETree is supposed to present it as one string. * e-shell-view.c: Renamed EShellView::view_title_bar to folder_title_bar, to closer match the * e-shell-view-menu.c (new_shortcut_dialog_folder_selected_cb): Make a shortcut with the unread count. * e-shell-folder-commands.c (e_shell_command_add_to_shortcut_bar): Make a shortcut with the unread count. * e-local-storage.c: Updated for API changes. * e-folder.c (e_folder_get_unread_count): New function, does what it says. (e_folder_set_unread_count): Ditto. * e-corba-storage.c (impl_StorageListener_new_folder): Renamed to match the IDL function name. (impl_StorageListener_update_folder): Ditto. (impl_StorageListener_removed_folder): Ditto. * Evolution-Storage.idl (struct Folder): Replace the boolean highlighted with a long unread_count. (updateFolder): Brought in from the now dead Evolution::LocalStorage. * Evolution-Shell.idl (getLocalStorage): Return a Storage instead of a LocalStorage. * Evolution-LocalStorage.idl: Removed, no longer needed, only used function, updateFolder, has been moved into Evolution::Storage interface. * evolution-local-storage.[ch]: Ditto. * evolution-storage.c (impl_Storage_updateFolder): Implementation of the updateFolder taken from ::LocalStorage. (class_init): New "update_folder" signal, taken from evolution-local-storage.c too. (evolution_storage_update_folder): Take an @unread_count int instead of a @highlighted boolean. (evolution_storage_new_folder): Same for here. (evolution_storage_update_folder_by_uri): And here. * evolution-storage-listener.h: "update_folder" signal no longer sends a @highlighted boolean. 2001-08-03 Jason Leach <jleach@ximian.com> * e-shell-view-menu.c (update_offline_menu_item): Use Jakub's new "Work Online" icon and fix a typo. svn path=/trunk/; revision=11633
109 lines
3.0 KiB
Plaintext
109 lines
3.0 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 NotFound {};
|
|
exception UnsupportedSchema {};
|
|
exception InvalidURI {};
|
|
exception InternalError {};
|
|
exception Busy {};
|
|
|
|
typedef sequence<string> FolderTypeNameList;
|
|
|
|
/**
|
|
* 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 (NotFound);
|
|
|
|
/**
|
|
* createNewView:
|
|
* @uri: URI for the view to open
|
|
*
|
|
* Return value: the new view.
|
|
*/
|
|
ShellView createNewView (in string uri)
|
|
raises (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 (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 (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 ();
|
|
|
|
/**
|
|
* 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 ();
|
|
};
|
|
|
|
interface FolderSelectionListener {
|
|
void notifySelected (in string uri, in string physical_uri);
|
|
void notifyCanceled ();
|
|
};
|
|
};
|
|
};
|