1 | /* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ |
---|
2 | /* |
---|
3 | * Interface for the Evolution shell. |
---|
4 | * |
---|
5 | * Authors: |
---|
6 | * Ettore Perazzoli <ettore@ximian.com> |
---|
7 | * |
---|
8 | * Copyright (C) 2000, 2001 Ximian, Inc. |
---|
9 | */ |
---|
10 | |
---|
11 | #include <Bonobo.idl> |
---|
12 | |
---|
13 | module GNOME { |
---|
14 | module Evolution { |
---|
15 | interface ShellComponent; |
---|
16 | |
---|
17 | interface FolderSelectionListener; |
---|
18 | |
---|
19 | interface Shell : Bonobo::Unknown { |
---|
20 | exception NotReady {}; |
---|
21 | exception NotFound {}; |
---|
22 | exception UnsupportedSchema {}; |
---|
23 | exception InvalidURI {}; |
---|
24 | exception InternalError {}; |
---|
25 | exception Busy {}; |
---|
26 | |
---|
27 | typedef sequence<string> FolderTypeNameList; |
---|
28 | |
---|
29 | /* The X display name. */ |
---|
30 | readonly attribute string displayName; |
---|
31 | |
---|
32 | /** |
---|
33 | * getComponentByType: |
---|
34 | * @type: name of a valid folder type |
---|
35 | * |
---|
36 | * Get the shell component associated with a specific folder type. |
---|
37 | * |
---|
38 | * Return value: the Evolution::ShellComponent interface for the component that |
---|
39 | * handles @type. |
---|
40 | */ |
---|
41 | ShellComponent getComponentByType (in string type) |
---|
42 | raises (NotReady, NotFound); |
---|
43 | |
---|
44 | /** |
---|
45 | * getIconByType: |
---|
46 | * @type: name of a valid folder type |
---|
47 | * @mini: whether or not to get a mini (16x16) icon |
---|
48 | * |
---|
49 | * Get an icon associated with a specific folder type. |
---|
50 | * |
---|
51 | * Return value: an Evolution::Icon interface for the |
---|
52 | * component that handles @type. |
---|
53 | */ |
---|
54 | Icon getIconByType (in string type, |
---|
55 | in boolean mini) |
---|
56 | raises (NotReady, NotFound); |
---|
57 | |
---|
58 | /** |
---|
59 | * createNewView: |
---|
60 | * @uri: URI for the view to open |
---|
61 | * |
---|
62 | * Return value: the new view. |
---|
63 | */ |
---|
64 | ShellView createNewView (in string uri) |
---|
65 | raises (NotReady, NotFound, UnsupportedSchema, InvalidURI, InternalError); |
---|
66 | |
---|
67 | /** |
---|
68 | * handleURI: |
---|
69 | * @uri: URI to handle |
---|
70 | * |
---|
71 | * This handles the specified URI. It is different from |
---|
72 | * `::createNewView' as it doesn't necessarily imply creating a |
---|
73 | * new ShellView. (For example, a `mailto:' URI will invoke |
---|
74 | * the message composer.) |
---|
75 | */ |
---|
76 | void handleURI (in string uri) |
---|
77 | raises (NotReady, NotFound, UnsupportedSchema, InvalidURI, InternalError); |
---|
78 | |
---|
79 | /** |
---|
80 | * selectUserFolder: |
---|
81 | * @parent_xid: XID for the parent window (or zero if no parent window). |
---|
82 | * @listener: a listener interface to report the answer of the user. |
---|
83 | * @title: title for the folder selector dialog |
---|
84 | * @default_folder: physical or `evolution:' URI for the folder that must be |
---|
85 | * selected by default, when the dialog is popped up |
---|
86 | * @possible_types: list of the names of the types of folders that are allowed |
---|
87 | * |
---|
88 | * Pop up a folder selection dialog from which the user can select a folder. |
---|
89 | * Initially, the @default_folder is selected. The user can also create a new |
---|
90 | * folder by using the "New..." button. The dialog only lets the user choose |
---|
91 | * a folder whose type is listed in @possible_types. |
---|
92 | */ |
---|
93 | void selectUserFolder (in long long parent_xid, |
---|
94 | in FolderSelectionListener listener, |
---|
95 | in string title, |
---|
96 | in string default_folder, |
---|
97 | in FolderTypeNameList possible_types) |
---|
98 | raises (NotReady, Busy); |
---|
99 | |
---|
100 | /** |
---|
101 | * getLocalStorage: |
---|
102 | * |
---|
103 | * Get the interface to the local storage. |
---|
104 | * |
---|
105 | * FIXME: Probably we just want to be able to request this to |
---|
106 | * the StorageRegistry. This is an ugly kludge. |
---|
107 | * |
---|
108 | * Return value: the `Evolution::LocalStorage' interface for |
---|
109 | * the local storage. */ |
---|
110 | Storage getLocalStorage () |
---|
111 | raises (NotReady); |
---|
112 | |
---|
113 | /** |
---|
114 | * createStorageSetView: |
---|
115 | * |
---|
116 | * Create a control for the storage set view. This control |
---|
117 | * will also implement the `Evolution::StorageSetView' interface. |
---|
118 | * |
---|
119 | * Return value: the newly created control. |
---|
120 | */ |
---|
121 | Bonobo::Control createStorageSetView () |
---|
122 | raises (NotReady); |
---|
123 | |
---|
124 | /** |
---|
125 | * setLineStatus: |
---|
126 | * |
---|
127 | * Set the shell into on-line or off-line mode. |
---|
128 | */ |
---|
129 | void setLineStatus (in boolean online) |
---|
130 | raises (NotReady); |
---|
131 | }; |
---|
132 | |
---|
133 | interface FolderSelectionListener { |
---|
134 | void notifySelected (in Folder folder); |
---|
135 | void notifyCanceled (); |
---|
136 | }; |
---|
137 | }; |
---|
138 | }; |
---|