
* e-storage-set-view.c (tree_drag_data_received): Pass the @folder_type to ::handleDrop. * evolution-shell-component-dnd.c (impl_GNOME_Evolution_ShellComponentDnd_DestinationFolder_handleMotion): New arg @folder_type. (impl_GNOME_Evolution_ShellComponentDnd_DestinationFolder_handleDrop): Likewise. * evolution-shell-component-dnd.h: Add @folder_type to `DndDestinationFolderHandleDropFn' and `DndDestinationFolderHandleMotionFn'. * e-storage-set-view.c (tree_drag_motion): Pass the folder type to `::handleMotion'. * Evolution-ShellComponentDnd.idl: Pass @folder_type in ::handleDrop and ::handleMotion. * component-factory.c (destination_folder_handle_motion): Get @folder_type here too [to match the changes in the EvolutionShellComponentDnd interface]. Also, remove a debugging message. (destination_folder_handle_drop): Likewise. * gui/component/addressbook-component.c (destination_folder_handle_motion): Get @folder_type here too [to match the changes in the EvolutionShellComponentDnd interface]. Also, remove a debugging message. (destination_folder_handle_drop): Likewise. svn path=/trunk/; revision=13807
99 lines
2.8 KiB
Plaintext
99 lines
2.8 KiB
Plaintext
/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
|
/*
|
|
* Interface for the Evolution components that want to support Drag and Drop
|
|
* operations on their folders.
|
|
*
|
|
* Authors:
|
|
* Ettore Perazzoli <ettore@ximian.com>
|
|
*
|
|
* Copyright (C) 2001 Ximian, Inc.
|
|
*/
|
|
|
|
#include <Bonobo.h>
|
|
|
|
module GNOME {
|
|
module Evolution {
|
|
module ShellComponentDnd {
|
|
typedef short Action;
|
|
const Action ACTION_DEFAULT = 0;
|
|
const Action ACTION_COPY = 1 << 1;
|
|
const Action ACTION_MOVE = 1 << 2;
|
|
const Action ACTION_LINK = 1 << 3;
|
|
const Action ACTION_ASK = 1 << 4;
|
|
const Action ACTION_ANY = ACTION_COPY | ACTION_MOVE | ACTION_LINK | ACTION_ASK;
|
|
|
|
typedef Action ActionSet; // For readability.
|
|
|
|
struct Data {
|
|
short format;
|
|
short target;
|
|
sequence <octet> bytes;
|
|
};
|
|
|
|
exception NoData {};
|
|
|
|
interface SourceFolder : Bonobo::Unknown {
|
|
struct Context {
|
|
string physicalUri;
|
|
string folderType;
|
|
ActionSet possibleActions;
|
|
Action suggestedAction;
|
|
};
|
|
|
|
/* The user started a drag from this object. If the component
|
|
receives this while still in the middle of an existing drag
|
|
operation, it should stop the existing drag operation and
|
|
start a new one. */
|
|
void beginDrag (in string physical_uri,
|
|
in string folder_type,
|
|
out ActionSet possible_actions,
|
|
out Action suggested_action);
|
|
|
|
/* User released the mouse button and dropped the object
|
|
somewhere, so we now want to get the data for the current
|
|
context. */
|
|
void getData (in Context source_context,
|
|
in Action action,
|
|
in string dnd_type,
|
|
out Data data)
|
|
raises (NoData);
|
|
|
|
/* The target has finished processing the data, so we can
|
|
delete it. */
|
|
void deleteData (in Context source_context);
|
|
|
|
/* The drag is over. This should also clean up the data if
|
|
there was a `getData()' but no `deleteData()' after it. */
|
|
void endDrag (in Context source_context);
|
|
};
|
|
|
|
interface DestinationFolder : Bonobo::Unknown {
|
|
struct Context {
|
|
string dndType;
|
|
ActionSet possibleActions;
|
|
Action suggestedAction;
|
|
};
|
|
|
|
/* The user is moving a dragged object over our folder. This
|
|
will return %FALSE if the specified object cannot be
|
|
dropped; otherwise, it will return %TRUE and then set the
|
|
@default_action and @non_default_action we want to be
|
|
performed when the drop happens. */
|
|
boolean handleMotion (in string physical_uri,
|
|
in string folder_type,
|
|
in Context destination_context,
|
|
out Action suggested_action);
|
|
|
|
/* Data is dropped. We are given the data for the dropped
|
|
object, and we are supposed to perform the operation
|
|
requested. */
|
|
boolean handleDrop (in string physical_uri,
|
|
in string folder_type,
|
|
in Context destination_context,
|
|
in Action action,
|
|
in Data data);
|
|
};
|
|
};
|
|
};
|
|
};
|