background tasks. The Activity interface is added to the shell, and the status of the various tasks is now displayed in a task bar widget at the bottom of the EShellView. I also implemented a simple test component to test all this stuff. svn path=/trunk/; revision=10434
109 lines
3.2 KiB
Plaintext
109 lines
3.2 KiB
Plaintext
/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
|
/*
|
|
* Activity management for Evolution.
|
|
*
|
|
* Authors:
|
|
* Ettore Perazzoli <ettore@ximian.com>
|
|
*
|
|
* Copyright (C) 2000, 2001 Ximian, Inc.
|
|
*/
|
|
|
|
module GNOME {
|
|
module Evolution {
|
|
|
|
interface Activity : Bonobo::Unknown {
|
|
typedef long ActivityID;
|
|
|
|
enum DialogType {
|
|
DIALOG_TYPE_NONE,
|
|
DIALOG_TYPE_MESSAGE,
|
|
DIALOG_TYPE_WARNING,
|
|
DIALOG_TYPE_INPUT,
|
|
DIALOG_TYPE_ERROR
|
|
};
|
|
|
|
enum DialogAction {
|
|
DIALOG_ACTION_DISPLAY,
|
|
DIALOG_ACTION_POSTPONE
|
|
};
|
|
|
|
exception InvalidIcon {};
|
|
exception IdNotFound {};
|
|
|
|
/* Events propagated through the listener:
|
|
|
|
- "Clicked": The status widget has been clicked on.
|
|
|
|
- "DisplayProgress": Display a nice progress dialog for this
|
|
operation.
|
|
|
|
- "DisplayDialog": The dialog that the component has requested
|
|
through ::requestDialog() can now be safely displayed.
|
|
|
|
- "Cancelled": The user wants the operation to be cancelled.
|
|
*/
|
|
|
|
/**
|
|
* operationStarted:
|
|
* @component_id: ID of the component starting the operation.
|
|
* @information: Informative string about the operation being performed.
|
|
* @cancellable: Whether this operation should be cancellable by
|
|
* the user from the shell view.
|
|
* @event_listener: Listener which the events for the activity
|
|
* widget will be passed to.
|
|
* @activity_id: A unique ID for the activity, to be used to update the
|
|
* status of the operation.
|
|
* @suggest_display: Whether displaying the dialog might be a nice idea.
|
|
*/
|
|
void operationStarted (in string component_id,
|
|
in AnimatedIcon icon,
|
|
in string information,
|
|
in boolean cancellable,
|
|
in Bonobo::Listener event_listener,
|
|
out ActivityID activity_id,
|
|
out boolean suggest_display)
|
|
raises (InvalidIcon);
|
|
|
|
/**
|
|
* operationProgressing:
|
|
* @activity: The unique ID for the activity whose status we want to update.
|
|
* @information: New informative string. If empty, the informative string
|
|
* isn't changed.
|
|
* @progress: A float from 0.0 to 1.0 indicating the status of completion.
|
|
*
|
|
* Update the status of the specified @activity.
|
|
*/
|
|
void operationProgressing (in ActivityID activity,
|
|
in string information,
|
|
in float progress)
|
|
raises (IdNotFound);
|
|
|
|
/**
|
|
* operationFinished:
|
|
* @activity: The unique ID for the activity that has been completed.
|
|
*
|
|
* Report that the specified @activity has been completed. After this
|
|
* method is invoked, @activity is not considered to be a valid ID
|
|
* anymore.
|
|
*/
|
|
void operationFinished (in ActivityID activity);
|
|
|
|
/**
|
|
* requestDialog:
|
|
*
|
|
* Inform the shell that the specified @activity requires user input
|
|
* from a dialog. The returned value specifies whether the shell wants
|
|
* the dialog to be shown now (%DIALOG_ACTION_DISPLAY) or postponed
|
|
* (%DIALOG_ACTION_POSTPONE). If the return value is
|
|
* %DIALOG_ACTION_POSTPONE, the component should wait for the
|
|
* "DisplayDialog" event before proceeding further. In that case, the
|
|
* shell will flash the label related to this activity, and emit
|
|
* "DisplayDialog" through the event source when the user clicks on it.
|
|
*/
|
|
DialogAction requestDialog (in ActivityID activity,
|
|
in DialogType dialog_type);
|
|
};
|
|
|
|
};
|
|
};
|