python-efl/efl/elementary/need.pxi

226 lines
6.2 KiB
Cython

# Copyright (C) 2007-2022 various contributors (see AUTHORS)
#
# This file is part of Python-EFL.
#
# Python-EFL is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version.
#
# Python-EFL is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>.
include "need_cdef.pxi"
cdef class SysNotifyNotificationClosed(Event):
cdef Elm_Sys_Notify_Notification_Closed *obj
cdef int _set_obj(self, void *o) except 0:
self.obj = <Elm_Sys_Notify_Notification_Closed*>o
return 1
def __repr__(self):
# TODO: int -> string for 'reason'
return "<%s(id=%d, reason=%s)>" % \
(type(self).__name__, self.id, self.reason)
property id:
"""ID of the notification.
:type: int
"""
def __get__(self):
return self.obj.id
property reason:
"""The Reason the notification was closed.
:type: :ref:`Elm_Sys_Notify_Closed_Reason`
"""
def __get__(self):
return self.obj.reason
cdef class SysNotifyActionInvoked(Event):
cdef Elm_Sys_Notify_Action_Invoked *obj
cdef int _set_obj(self, void *o) except 0:
self.obj = <Elm_Sys_Notify_Action_Invoked*>o
return 1
def __repr__(self):
return "<%s(id=%d, action_key=%s)>" % \
(type(self).__name__, self.id, self.action_key)
property id:
"""ID of the notification.
:type: int
"""
def __get__(self):
return self.obj.id
property action_key:
"""The key of the action invoked. These match the keys sent over in the
list of actions.
:type: string
"""
def __get__(self):
return _touni(self.obj.action_key)
cdef class EthumbConnect(Event):
cdef int _set_obj(self, void *o) except 0:
return 1
def __repr__(self):
return "<%s()>" % (self.__class__.__name__,)
def need_efreet():
"""Request that your elementary application needs Efreet
This initializes the Efreet library when called and if support exists
it returns True, otherwise returns False. This must be called
before any efreet calls.
:return: True if support exists and initialization succeeded.
:rtype: bool
"""
return bool(elm_need_efreet())
def need_systray():
"""Request that your elementary application needs Elm_Systray
WARNING: elm is no more capable of systray functionality
:return: always return False
:rtype: bool
.. versionadded:: 1.8
.. versionremoved:: 1.21
"""
print("ERROR: the Systray functionality do not exists anymore...apologies")
return False
def need_sys_notify():
"""Request that your elementary application needs Elm_Sys_Notify
This initializes the Elm_Sys_Notify when called and if support exists
it returns True, otherwise returns False. This must be called
before any elm_sys_notify calls.
:return: True if support exists and initialization succeeded.
:rtype: bool
.. versionadded:: 1.8
"""
cdef bint ret = elm_need_sys_notify()
if ret:
try:
_event_mapping_register(
enums.ELM_EVENT_SYS_NOTIFY_NOTIFICATION_CLOSED,
SysNotifyNotificationClosed
)
_event_mapping_register(
enums.ELM_EVENT_SYS_NOTIFY_ACTION_INVOKED,
SysNotifyActionInvoked
)
except ValueError:
pass
return ret
@DEPRECATED("1.8", "Use :py:func:`need_eldbus` for eldbus (v2) support. Old API is deprecated.")
def need_e_dbus():
"""
Request that your elementary application needs e_dbus
This initializes the e_dbus library when called and if support exists
it returns True, otherwise returns False. This must be called
before any e_dbus calls.
:return: True if support exists and initialization succeeded.
:rtype: bool
"""
return bool(elm_need_eldbus())
def need_eldbus():
"""Request that your elementary application needs eldbus
This initializes the edbus (aka v2) library when called and if
support exists it returns True, otherwise returns
False. This must be called before any edbus calls.
:return: True if support exists and initialization succeeded.
:rtype: bool
.. versionadded:: 1.8
"""
return bool(elm_need_eldbus())
def need_elocation():
"""Request that your elementary application needs elocation
This initializes the elocation library when called and if
support exists it returns True, otherwise returns
False. This must be called before any elocation usage.
:return: True if support exists and initialization succeeded.
:rtype: bool
.. versionadded:: 1.8
"""
return bool(elm_need_elocation())
def need_ethumb():
"""Request that your elementary application needs ethumb
This initializes the Ethumb library when called and if support exists
it returns True, otherwise returns False.
This must be called before any other function that deals with
elm_thumb objects or ethumb_client instances.
:return: True if support exists and initialization succeeded.
:rtype: bool
"""
cdef bint ret = elm_need_ethumb()
try:
_event_mapping_register(enums.ELM_ECORE_EVENT_ETHUMB_CONNECT, EthumbConnect)
except ValueError:
pass
return ret
def need_web():
"""Request that your elementary application needs web support
This initializes the Ewebkit library when called and if support exists
it returns True, otherwise returns False.
This must be called before any other function that deals with
elm_web objects or ewk_view instances.
:return: True if support exists and initialization succeeded.
:rtype: bool
"""
return bool(elm_need_web())