kuuko pushed a commit to branch master.
commit e0dcf5542ff90bdb27550dadf1a940aa10b3e279
Author: Kai Huuhko <[email protected]>
Date: Sun Apr 14 19:44:29 2013 +0000
Elementary: Add initial commented out code for copy&paste.
---
efl/elementary/cnp_callbacks.pxi | 105 ++++++++++++
efl/elementary/enums.pxd | 25 +++
efl/elementary/object.pxd | 36 ++++-
efl/elementary/object.pyx | 334 ++++++++++++++++++++++++++++++++++++++-
4 files changed, 488 insertions(+), 12 deletions(-)
diff --git a/efl/elementary/cnp_callbacks.pxi b/efl/elementary/cnp_callbacks.pxi
new file mode 100644
index 0000000..ba9a8a7
--- /dev/null
+++ b/efl/elementary/cnp_callbacks.pxi
@@ -0,0 +1,105 @@
+"""Structure holding the info about selected data.
+
+"""
+cdef class SelectionData(object):
+ cdef Elm_Selection_Data *sel_data
+
+ property x:
+ """:type: int"""
+ def __get__(self):
+ return self.sel_data.x
+
+ property y:
+ """:type: int"""
+ def __get__(self):
+ return self.sel_data.y
+
+ property format:
+ """:type: Elm_Selection_Format"""
+ def __get__(self):
+ return self.sel_data.format
+
+ property data:
+ def __get__(self):
+ # TODO
+ return None
+
+ property len:
+ """:type: size_t"""
+ def __get__(self):
+ return self.sel_data.len
+
+ property action:
+ """The action to perform with the data
+
+ :type: Elm_Xdnd_Action
+ :since: 1.8
+
+ """
+ def __get__(self):
+ return self.sel_data.action
+
+cdef Eina_Bool elm_drop_cb(void *data, Evas_Object *obj, Elm_Selection_Data
*ev):
+ """Callback invoked in when the selected data is 'dropped' at its
destination.
+
+ :param data: Application specific data
+ :param obj: The evas object where selected data is 'dropped'.
+ :param ev: struct holding information about selected data
+
+ """
+ pass
+
+cdef void elm_selection_loss_cb(void *data, Elm_Sel_Type selection):
+ """Callback invoked in when the selection ownership for a given selection
is lost.
+
+ :param data: Application specific data
+ :param selection: The selection that is lost
+
+ """
+ pass
+
+cdef Evas_Object *elm_drag_icon_create_cb(void *data, Evas_Object *win,
Evas_Coord *xoff, Evas_Coord *yoff):
+ """Callback called to create a drag icon object
+
+ :param data: Application specific data
+ :param win: The window to create the objects relative to
+ :param xoff: A return coordinate for the X offset at which to place the
drag icon object relative to the source drag object
+ :param yoff: A return coordinate for the Y offset at which to place the
drag icon object relative to the source drag object
+ :return: An object to fill the drag window with or NULL if not needed
+ :since: 1.8
+
+ """
+ pass
+
+cdef void elm_drag_state(void *data, Evas_Object *obj):
+ """Callback called when a drag is finished, enters, or leaves an object
+
+ :param data: Application specific data
+ :param obj: The object where the drag started
+ :since: 1.8
+
+ """
+ pass
+
+cdef void elm_drag_accept(void *data, Evas_Object *obj, Eina_Bool doaccept):
+ """Callback called when a drag is responded to with an accept or deny
+
+ :param data: Application specific data
+ :param obj: The object where the drag started
+ :param doaccept: A boolean as to if the target accepts the drag or not
+ :since: 1.8
+
+ """
+ pass
+
+cdef void elm_drag_pos(void *data, Evas_Object *obj, Evas_Coord x, Evas_Coord
y, Elm_Xdnd_Action action):
+ """Callback called when a drag is over an object, and gives
object-relative coordinates
+
+ :param data: Application specific data
+ :param obj: The object where the drag started
+ :param x: The X coordinate relative to the top-left of the object
+ :param y: The Y coordinate relative to the top-left of the object
+ :since: 1.8
+
+ """
+ pass
diff --git a/efl/elementary/enums.pxd b/efl/elementary/enums.pxd
index 5d48085..ee405b0 100644
--- a/efl/elementary/enums.pxd
+++ b/efl/elementary/enums.pxd
@@ -349,6 +349,21 @@ cdef extern from "Elementary.h":
ELM_SCROLLER_POLICY_ON
ELM_SCROLLER_POLICY_OFF
+ ctypedef enum Elm_Sel_Format:
+ ELM_SEL_FORMAT_TARGETS
+ ELM_SEL_FORMAT_NONE
+ ELM_SEL_FORMAT_TEXT
+ ELM_SEL_FORMAT_MARKUP
+ ELM_SEL_FORMAT_IMAGE
+ ELM_SEL_FORMAT_VCARD
+ ELM_SEL_FORMAT_HTML
+
+ ctypedef enum Elm_Sel_Type:
+ ELM_SEL_TYPE_PRIMARY
+ ELM_SEL_TYPE_SECONDARY
+ ELM_SEL_TYPE_XDND
+ ELM_SEL_TYPE_CLIPBOARD
+
ctypedef enum Elm_Softcursor_Mode:
ELM_SOFTCURSOR_MODE_AUTO
ELM_SOFTCURSOR_MODE_ON
@@ -464,3 +479,13 @@ cdef extern from "Elementary.h":
ELM_WRAP_CHAR
ELM_WRAP_WORD
ELM_WRAP_MIXED
+
+ ctypedef enum Elm_Xdnd_Action:
+ ELM_XDND_ACTION_UNKNOWN
+ ELM_XDND_ACTION_COPY
+ ELM_XDND_ACTION_MOVE
+ ELM_XDND_ACTION_PRIVATE
+ ELM_XDND_ACTION_ASK
+ ELM_XDND_ACTION_LIST
+ ELM_XDND_ACTION_LINK
+ ELM_XDND_ACTION_DESCRIPTION
diff --git a/efl/elementary/object.pxd b/efl/elementary/object.pxd
index d1a78be..ee91002 100644
--- a/efl/elementary/object.pxd
+++ b/efl/elementary/object.pxd
@@ -16,12 +16,13 @@
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
from cpython cimport PyObject, Py_INCREF, Py_DECREF
-from efl.evas cimport Eina_Bool, Eina_List, const_Eina_List
-from efl.evas cimport Evas_Object, Evas_Smart_Cb
+from efl.evas cimport Eina_Bool, Eina_List, const_Eina_List, \
+ Evas_Object, Evas_Smart_Cb, Evas_Coord
from efl.evas.enums cimport Evas_Callback_Type
from efl.evas cimport Object as evasObject
from efl.evas cimport Canvas as evasCanvas
-from enums cimport Elm_Focus_Direction
+from enums cimport Elm_Focus_Direction, Elm_Sel_Format, Elm_Sel_Type, \
+ Elm_Xdnd_Action
from libc.string cimport const_char
from libc.stdlib cimport const_void
@@ -32,10 +33,24 @@ cdef extern from "Elementary.h":
ctypedef struct Elm_Theme
+ ctypedef struct Elm_Selection_Data:
+ Evas_Coord x, y
+ Elm_Sel_Format format
+ void *data
+ size_t len
+ Elm_Xdnd_Action action
+
ctypedef Eina_Bool (*Elm_Event_Cb) (void *data,
Evas_Object *obj, Evas_Object *src, Evas_Callback_Type t, void *event_info)
ctypedef Evas_Object *(*Elm_Tooltip_Content_Cb) (void *data,
Evas_Object *obj, Evas_Object *tooltip)
ctypedef Evas_Object *(*Elm_Tooltip_Item_Content_Cb) (void *data,
Evas_Object *obj, Evas_Object *tooltip, void *item)
+ ctypedef Eina_Bool (*Elm_Drop_Cb) (void *data,
Evas_Object *obj, Elm_Selection_Data *ev)
+ ctypedef void (*Elm_Selection_Loss_Cb) (void *data,
Elm_Sel_Type selection)
+ ctypedef Evas_Object *(*Elm_Drag_Icon_Create_Cb) (void *data,
Evas_Object *win, Evas_Coord *xoff, Evas_Coord *yoff)
+ ctypedef void (*Elm_Drag_State) (void *data,
Evas_Object *obj)
+ ctypedef void (*Elm_Drag_Accept) (void *data,
Evas_Object *obj, Eina_Bool doaccept)
+ ctypedef void (*Elm_Drag_Pos) (void *data,
Evas_Object *obj, Evas_Coord x, Evas_Coord y, Elm_Xdnd_Action action)
+
# Object handling (py3: DONE)
void elm_object_part_text_set(Evas_Object *obj,
const_char *part, const_char *label)
void elm_object_text_set(Evas_Object *obj, const_char
*label)
@@ -58,8 +73,8 @@ cdef extern from "Elementary.h":
Evas_Object *elm_object_top_widget_get(Evas_Object *obj)
const_char * elm_object_widget_type_get(Evas_Object *obj)
void elm_object_signal_emit(Evas_Object *obj,
const_char *emission, const_char *source)
- void elm_object_signal_callback_add(Evas_Object *obj,
const_char *emission, const_char *source, Edje_Signal_Cb func, void *data)
- void * elm_object_signal_callback_del(Evas_Object *obj,
const_char *emission, const_char *source, Edje_Signal_Cb func)
+ # TODO: void elm_object_signal_callback_add(Evas_Object
*obj, const_char *emission, const_char *source, Edje_Signal_Cb func, void *data)
+ # TODO: void * elm_object_signal_callback_del(Evas_Object
*obj, const_char *emission, const_char *source, Edje_Signal_Cb func)
void elm_object_event_callback_add(Evas_Object *obj,
Elm_Event_Cb func, const_void *data)
void * elm_object_event_callback_del(Evas_Object *obj,
Elm_Event_Cb func, const_void *data)
@@ -130,6 +145,17 @@ cdef extern from "Elementary.h":
const_char * elm_object_translatable_text_part_get(Evas_Object
*obj, const_char *part)
const_char * elm_object_translatable_text_get(Evas_Object *obj)
+ # TODO: CnP
+ # Eina_Bool elm_cnp_selection_set(Evas_Object *obj,
Elm_Sel_Type selection, Elm_Sel_Format format, const_void *buf, size_t buflen)
+ # Eina_Bool elm_cnp_selection_get(Evas_Object *obj,
Elm_Sel_Type selection, Elm_Sel_Format format, Elm_Drop_Cb datacb, void *udata)
+ # Eina_Bool elm_object_cnp_selection_clear(Evas_Object *obj,
Elm_Sel_Type selection)
+ # void elm_cnp_selection_loss_callback_set(Evas_Object
*obj, Elm_Sel_Type selection, Elm_Selection_Loss_Cb func, const_void *data)
+ # Eina_Bool elm_drop_target_add(Evas_Object *obj,
Elm_Sel_Format format, Elm_Drag_State entercb, void *enterdata, Elm_Drag_State
leavecb, void *leavedata, Elm_Drag_Pos poscb, void *posdata, Elm_Drop_Cb
dropcb, void *cbdata)
+ # Eina_Bool elm_drop_target_del(Evas_Object *obj)
+ # Eina_Bool elm_drag_start(Evas_Object *obj, Elm_Sel_Format
format, const_char *data, Elm_Xdnd_Action action, Elm_Drag_Icon_Create_Cb
createicon, void *createdata, Elm_Drag_Pos dragpos, void *dragdata,
Elm_Drag_Accept acceptcb, void *acceptdata, Elm_Drag_State dragdone, void
*donecbdata)
+ # Eina_Bool elm_drag_action_set(Evas_Object *obj,
Elm_Xdnd_Action action)
+
+
cdef class Canvas(evasCanvas):
pass
diff --git a/efl/elementary/object.pyx b/efl/elementary/object.pyx
index d14b1a4..2c3eaf4 100644
--- a/efl/elementary/object.pyx
+++ b/efl/elementary/object.pyx
@@ -18,6 +18,45 @@
"""
+.. rubric:: Copy and Paste
+
+Implements the following functionality
+ a. select, copy/cut and paste
+ b. clipboard
+ c. drag and drop
+in order to share data across application windows.
+
+Contains functions to select text or a portion of data,
+send it to a buffer, and paste the data into a target.
+
+elm_cnp provides a generic copy and paste facility based on its windowing
system.
+It is not necessary to know the details of each windowing system,
+but some terms and behavior are common.
+Currently the X11 window system is widely used, and only X11 functionality is
implemented.
+
+In X11R6 window system, CopyPaste works like a peer-to-peer communication.
+Copying is an operation on an object in an X server.
+X11 calls those objects 'selections' which have names.
+Generally, two selection types are needed for copy and paste:
+The Primary selection and the Clipboard selection.
+Primary selection is for selecting text (that means highlighted text).
+Clipboard selection is for explicit copying behavior
+(such as ctrl+c, or 'copy' in a menu).
+Thus, in applications most cases only use the clipboard selection.
+As stated before, taking ownership of a selection doesn't move any actual data.
+Copying and Pasting is described as follows:
+ 1. Copy text in Program A : Program A takes ownership of the selection
+ 2. Paste text in Program B : Program B notes that Program A owns the selection
+ 3. Program B asks A for the text
+ 4. Program A responds and sends the text to program B
+ 5. Program B pastes the response
+More information is on
+ - http://www.jwz.org/doc/x-cut-and-paste.html
+ - X11R6 Inter-Client Communication Conventions Manual, section 2
+
+
+.. _Elm_Focus_Direction:
+
.. rubric:: Focus direction
.. data:: ELM_FOCUS_PREVIOUS
@@ -28,6 +67,108 @@
Focus next
+
+.. _Elm_Sel_Type:
+
+.. rubric:: Selection type
+
+Defines the types of selection property names.
+:see: `http://www.x.org/docs/X11/xlib.pdf`_ for more details.
+
+.. data:: ELM_SEL_TYPE_PRIMARY
+
+ Primary text selection (highlighted or selected text)
+
+.. data:: ELM_SEL_TYPE_SECONDARY
+
+ Used when primary selection is in use
+
+.. data:: ELM_SEL_TYPE_XDND
+
+ Drag 'n' Drop
+
+.. data:: ELM_SEL_TYPE_CLIPBOARD
+
+ Clipboard selection (ctrl+C)
+
+
+
+.. _Elm_Sel_Format:
+
+.. rubric:: Selection format
+
+Defines the types of content.
+
+.. data:: ELM_SEL_FORMAT_TARGETS
+
+ For matching every possible atom
+
+.. data:: ELM_SEL_FORMAT_NONE
+
+ Content is from outside of Elementary
+
+.. data:: ELM_SEL_FORMAT_TEXT
+
+ Plain unformatted text: Used for things that don't want rich markup
+
+.. data:: ELM_SEL_FORMAT_MARKUP
+
+ Edje textblock markup, including inline images
+
+.. data:: ELM_SEL_FORMAT_IMAGE
+
+ Images
+
+.. data:: ELM_SEL_FORMAT_VCARD
+
+ Vcards
+
+.. data:: ELM_SEL_FORMAT_HTML
+
+ Raw HTML-like data (eg. webkit)
+
+
+
+.. _Elm_Xdnd_Action:
+
+.. rubric:: XDND action
+
+Defines the kind of action associated with the drop data if for XDND
+:since: 1.8
+
+.. data:: ELM_XDND_ACTION_UNKNOWN
+
+ Action type is unknown
+
+.. data:: ELM_XDND_ACTION_COPY
+
+ Copy the data
+
+.. data:: ELM_XDND_ACTION_MOVE
+
+ Move the data
+
+.. data:: ELM_XDND_ACTION_PRIVATE
+
+ Pricate action type
+
+.. data:: ELM_XDND_ACTION_ASK
+
+ Ask the user what to do
+
+.. data:: ELM_XDND_ACTION_LIST
+
+ List the data
+
+.. data:: ELM_XDND_ACTION_LINK
+
+ Link the data
+
+.. data:: ELM_XDND_ACTION_DESCRIPTION
+
+ Describe the data
+
+
"""
from cpython cimport PyObject, Py_INCREF, Py_DECREF, PyObject_GetAttr
@@ -56,6 +197,28 @@ EVAS_CALLBACK_KEY_DOWN = evasenums.EVAS_CALLBACK_KEY_DOWN
EVAS_CALLBACK_KEY_UP = evasenums.EVAS_CALLBACK_KEY_UP
EVAS_CALLBACK_MOUSE_WHEEL = evasenums.EVAS_CALLBACK_MOUSE_WHEEL
+ELM_SEL_TYPE_PRIMARY = enums.ELM_SEL_TYPE_PRIMARY
+ELM_SEL_TYPE_SECONDARY = enums.ELM_SEL_TYPE_SECONDARY
+ELM_SEL_TYPE_XDND = enums.ELM_SEL_TYPE_XDND
+ELM_SEL_TYPE_CLIPBOARD = enums.ELM_SEL_TYPE_CLIPBOARD
+
+ELM_SEL_FORMAT_TARGETS = enums.ELM_SEL_FORMAT_TARGETS
+ELM_SEL_FORMAT_NONE = enums.ELM_SEL_FORMAT_NONE
+ELM_SEL_FORMAT_TEXT = enums.ELM_SEL_FORMAT_TEXT
+ELM_SEL_FORMAT_MARKUP = enums.ELM_SEL_FORMAT_MARKUP
+ELM_SEL_FORMAT_IMAGE = enums.ELM_SEL_FORMAT_IMAGE
+ELM_SEL_FORMAT_VCARD = enums.ELM_SEL_FORMAT_VCARD
+ELM_SEL_FORMAT_HTML = enums.ELM_SEL_FORMAT_HTML
+
+ELM_XDND_ACTION_UNKNOWN = enums.ELM_XDND_ACTION_UNKNOWN
+ELM_XDND_ACTION_COPY = enums.ELM_XDND_ACTION_COPY
+ELM_XDND_ACTION_MOVE = enums.ELM_XDND_ACTION_MOVE
+ELM_XDND_ACTION_PRIVATE = enums.ELM_XDND_ACTION_PRIVATE
+ELM_XDND_ACTION_ASK = enums.ELM_XDND_ACTION_ASK
+ELM_XDND_ACTION_LIST = enums.ELM_XDND_ACTION_LIST
+ELM_XDND_ACTION_LINK = enums.ELM_XDND_ACTION_LINK
+ELM_XDND_ACTION_DESCRIPTION = enums.ELM_XDND_ACTION_DESCRIPTION
+
cdef void _object_callback(void *data,
Evas_Object *o, void *event_info) with gil:
cdef:
@@ -116,11 +279,14 @@ cdef Eina_Bool _event_callback(void *data, Evas_Object
*o, Evas_Object *src, Eva
return ret
+# TODO: include "cnp_callbacks.pxi"
+
# TODO: Is this handled in Eo now?
cdef void _event_data_del_cb(void *data, Evas_Object *o, void *event_info)
with gil:
pass
# Py_DECREF(<object>data)
+
cdef class Canvas(evasCanvas):
def __init__(self):
pass
@@ -1102,8 +1268,8 @@ cdef class Object(evasObject):
:type func: function
- @raise TypeError: if **func** is not callable.
- @raise TypeError: if **event_conv** is not callable or None.
+ :raise TypeError: if **func** is not callable.
+ :raise TypeError: if **event_conv** is not callable or None.
"""
if not callable(func):
@@ -1135,10 +1301,10 @@ cdef class Object(evasObject):
:param func: what to callback, should have be previously registered.
:type func: function
- @precond: **event**, **event_conv** and **func** must be used as
+ :precond: **event**, **event_conv** and **func** must be used as
parameter for :py:func:`_callback_add_full()`.
- @raise ValueError: if there was no **func** connected with this event.
+ :raise ValueError: if there was no **func** connected with this event.
"""
try:
@@ -1175,7 +1341,7 @@ cdef class Object(evasObject):
*function(object, *args, **kargs)*
:type func: function
- @raise TypeError: if **func** is not callable.
+ :raise TypeError: if **func** is not callable.
"""
return self._callback_add_full(event, None, func, *args, **kargs)
@@ -1190,10 +1356,10 @@ cdef class Object(evasObject):
:param func: what to callback, should have be previously registered.
:type func: function
- @precond: **event** and **func** must be used as parameter for
+ :precond: **event** and **func** must be used as parameter for
:py:func:`_callback_add()`.
- @raise ValueError: if there was no **func** connected with this event.
+ :raise ValueError: if there was no **func** connected with this event.
"""
return self._callback_del_full(event, None, func)
@@ -1206,3 +1372,157 @@ cdef class Object(evasObject):
"""
return <long>self.obj
+
+
+ # TODO:
+ # def cnp_selection_set(self, Elm_Sel_Type selection, Elm_Sel_Format
format, buf, buflen):
+ # """Set copy data for a widget.
+
+ # Set copy data and take ownership of selection. Format is used for
specifying the selection type,
+ # and this is used during pasting.
+
+ # :param selection: Selection type for copying and pasting
+ # :param format: Selection format
+ # :param buf: The data selected
+ # :param buflen: The size of @p buf
+ # :raise RuntimeError: if setting cnp data fails.
+
+ # """
+ # if not elm_cnp_selection_set(self.obj, selection, format, const_void
*buf, size_t buflen):
+ # raise RuntimeError("Could not set cnp data for widget.")
+
+ # def cnp_selection_get(self, selection, format, datacb, udata):
+ # """Retrieve data from a widget that has a selection.
+
+ # Gets the current selection data from a widget.
+ # The widget input here will usually be elm_entry,
+ # in which case @p datacb and @p udata can be NULL.
+ # If a different widget is passed, @p datacb and @p udata are used for
retrieving data.
+
+ # @see also elm_cnp_selection_set()
+
+ # :param selection: Selection type for copying and pasting
+ # :param format: Selection format
+ # :param datacb: The user data callback if the target widget isn't
elm_entry
+ # :param udata: The user data pointer for @p datacb
+ # :raise RuntimeError: if getting cnp data fails.
+
+ # """
+ # if not elm_cnp_selection_get(self.obj, selection, format,
Elm_Drop_Cb datacb, void *udata):
+ # raise RuntimeError("Could not get cnp data from widget.")
+
+ # def cnp_selection_clear(self, Elm_Sel_Type selection):
+ # """Clear the selection data of a widget.
+
+ # Clear all data from the selection which is owned by a widget.
+
+ # @see also elm_cnp_selection_set()
+
+ # :param selection: Selection type for copying and pasting
+ # :raise RuntimeError: if clearing cnp data fails.
+
+ # """
+ # if not elm_object_cnp_selection_clear(self.obj, selection):
+ # raise RuntimeError("Could not clear cnp data from widget.")
+
+
+ # def cnp_selection_loss_callback_set(self, Elm_Sel_Type selection, func,
data):
+ # """Set a function to be called when a selection is lost
+
+ # The function @p func is set of be called when selection @p selection
is lost
+ # to another process or when elm_cnp_selection_set() is called. If @p
func
+ # is NULL then it is not called. @p data is passed as the data
parameter to
+ # the callback functions and selection is passed in as the selection
that
+ # has been lost.
+
+ # elm_cnp_selection_set() and elm_object_cnp_selection_clear()
automatically
+ # set this los callback to NULL when called. If you wish to take the
selection
+ # and then be notified of loss please do this (for example)::
+
+ # elm_cnp_selection_set(obj, ELM_SEL_TYPE_PRIMARY,
ELM_SEL_FORMAT_TEXT, "hello", strlen(hello));
+ # elm_cnp_selection_loss_callback_set(obj, ELM_SEL_TYPE_PRIMARY,
loss_cb, NULL);
+
+ # @see also elm_cnp_selection_set()
+
+ # :param selection: Selection to be notified of for loss
+ # :param func: The function to call
+ # :param data: The data pointer passed to the function.
+
+ # """
+ # elm_cnp_selection_loss_callback_set(self.obj, selection,
Elm_Selection_Loss_Cb func, const void *data)
+
+ # def drop_target_add(self, Elm_Sel_Format format, entercb, enterdata,
leavecb, leavedata, poscb, posdata, dropcb, dropdata):
+ # """Set the given object as a target for drops for drag-and-drop
+
+ # :param format: The formats supported for dropping
+ # :param entercb: The function to call when the object is entered with
a drag
+ # :param enterdata: The application data to pass to enterdata
+ # :param leavecb: The function to call when the object is left with a
drag
+ # :param leavedata: The application data to pass to leavedata
+ # :param poscb: The function to call when the object has a drag over it
+ # :param posdata: The application data to pass to posdata
+ # :param dropcb: The function to call when a drop has occurred
+ # :param cbdata: The application data to pass to dropcb
+ # :raise RuntimeError: if adding as drop target fails.
+
+ # :since: 1.8
+
+ # """
+ # if not elm_drop_target_add(self.obj, format,
+ # Elm_Drag_State entercb, void
*enterdata,
+ # Elm_Drag_State leavecb, void
*leavedata,
+ # Elm_Drag_Pos poscb, void *posdata,
+ # Elm_Drop_Cb dropcb, void *cbdata):
+ # raise RuntimeError("Could not add drop target.")
+
+ # def drop_target_del(self):
+ # """Deletes the drop target status of an object
+
+ # :raise RuntimeError: if removing drop status fails.
+
+ # @since 1.8
+
+ # """
+ # if not elm_drop_target_del(self.obj):
+ # raise RuntimeError("Could not delete drop target status.")
+
+ # def drag_start(self, Elm_Sel_Format format, data, Elm_Xdnd_Action
action, createicon, createdata, dragpos, dragdata, acceptcb, acceptdata,
dragdone, donecbdata):
+ # """Begins a drag given a source object
+
+ # :param format: The drag formats supported by the data
+ # :param data: The drag data itself (a string)
+ # :param action: The drag action to be done
+ # :param createicon: Function to call to create a drag object, or NULL
if not wanted
+ # :param createdata: Application data passed to @p createicon
+ # :param dragpos: Function called with each position of the drag, x, y
being screen coordinates if possible, and action being the current action.
+ # :param dragdata: Application data passed to @p dragpos
+ # :param acceptcb: Function called indicating if drop target accepts
(or does not) the drop data while dragging
+
+ # :param acceptdata: Application data passed to @p acceptcb
+ # :param dragdone: Function to call when drag is done
+ # :param donecbdata: Application data to pass to @p dragdone
+ # :raise RuntimeError: if starting drag fails.
+
+ # :since: 1.8
+
+ # """
+ # if not elm_drag_start(Evas_Object *obj, format,
+ # <const_char *>data, action,
+ # Elm_Drag_Icon_Create_Cb createicon,
void *createdata,
+ # Elm_Drag_Pos dragpos, void *dragdata,
+ # Elm_Drag_Accept acceptcb, void
*acceptdata,
+ # Elm_Drag_State dragdone, void
*donecbdata):
+ # raise RuntimeError("Could not start drag.")
+
+ # def drag_action_set(self, Elm_Xdnd_Action action):
+ # """Changes the current drag action
+
+ # :param action: The drag action to be done
+ # :raise RuntimeError: if changing drag action fails.
+
+ # :since: 1.8
+
+ # """
+ # if not elm_drag_action_set(Evas_Object *obj, action):
+ # raise RuntimeError("Could not set cnp xdnd action.")
+
--
------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter