[Xfce4-commits] <exo:master> Drop the python bindings.
Nick Schermer
noreply at xfce.org
Mon Jul 4 23:26:01 CEST 2011
Updating branch refs/heads/master
to 921a5e9dfa2d9c0f9f4e209f96f47933e6932361 (commit)
from 71423d81f9e54e6d78674424e1f3cfa5bbae246d (commit)
commit 921a5e9dfa2d9c0f9f4e209f96f47933e6932361
Author: Nick Schermer <nick at xfce.org>
Date: Mon Jul 4 23:24:05 2011 +0200
Drop the python bindings.
Makefile.am | 6 -
TODO | 1 -
configure.in.in | 58 --
exo.spec.in | 2 +-
python/Makefile.am | 76 --
python/__init__.py | 37 -
python/abicheck.sh | 23 -
python/examples/Makefile.am | 12 -
python/examples/README | 2 -
python/examples/binding.py | 191 ----
python/examples/ellipsizing.py | 112 ---
python/examples/iconview.py | 96 --
python/examples/preferred-applications.py | 153 ----
python/examples/toolbars.py | 114 ---
python/examples/toolbars.ui | 22 -
python/exo.defs | 1392 -----------------------------
python/exo.override | 493 ----------
python/exomodule.c | 150 ---
python/pyexo.h | 64 --
python/pyexo.py | 87 --
python/pyexobinding.c | 629 -------------
21 files changed, 1 insertions(+), 3719 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 8c73f13..58797b6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,8 +1,3 @@
-
-if HAVE_PYTHON
-PYTHON_SUBDIR=python
-endif
-
SUBDIRS = \
exo \
exo-csource \
@@ -14,7 +9,6 @@ SUBDIRS = \
icons \
pixmaps \
po \
- $(PYTHON_SUBDIR) \
tests
AUTOMAKE_OPTIONS = \
diff --git a/TODO b/TODO
index 773d573..f16aebc 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,3 @@
- The current style and color handling in ExoIconBar isn't optimal and kinda
hacky after all. We've to replace that with a better implementation one
day.
-- Finish the Python bindings.
diff --git a/configure.in.in b/configure.in.in
index 29ad025..e465abb 100644
--- a/configure.in.in
+++ b/configure.in.in
@@ -198,61 +198,6 @@ dnl *** Check for gtk-doc ***
dnl *************************
GTK_DOC_CHECK([1.9])
-dnl ***********************************
-dnl *** Check for python (optional) ***
-dnl ***********************************
-AC_ARG_ENABLE([python],
- [AC_HELP_STRING([--enable-python], [build python bindings])],
- [enable_python=$enableval],
- [enable_python=auto])
-have_python=no
-if test x"$enable_python" != x"no"; then
- AC_MSG_NOTICE([Checking to see if we can build Python bindings])
- AM_PATH_PYTHON([2.2],, [:])
-
- if test x"$PYTHON" = x":"; then
- AC_MSG_WARN([Python not found])
- else
- XDT_CHECK_PYTHON_HEADERS([have_python_headers=yes],[have_python_headers=no])
- XDT_CHECK_PACKAGE([PYGTK], [pygtk-2.0], [2.4.0], \
- [have_pygtk=yes], [have_pygtk=no])
-
- AC_PATH_PROG([PYGOBJECT_CODEGEN], [pygobject-codegen-2.0], [no])
-
- if test x"$have_python_headers" = x"yes" -a x"$have_pygtk" = x"yes" -a x"$PYGOBJECT_CODEGEN" != x"no"; then
- have_python=yes
-
- AC_MSG_CHECKING([for PyGTK defs])
- PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0`
- AC_MSG_RESULT([$PYGTK_DEFSDIR])
- AC_SUBST([PYGTK_DEFSDIR])
-
- dnl Check whether the compiler accepts -fno-strict-aliasing,
- dnl which is required to compile the source generated by
- dnl pygtk-codegen-2.0 with gcc 3.x.
- save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -fno-strict-aliasing"
- AC_MSG_CHECKING([whether $CC accepts -fno-strict-aliasing])
- AC_COMPILE_IFELSE(AC_LANG_SOURCE([int x;]), [
- AC_MSG_RESULT([yes])
- PYGTK_CFLAGS="$PYGTK_CFLAGS -fno-strict-aliasing"
- ], [
- AC_MSG_RESULT([no])
- ])
- CPPFLAGS="$save_CPPFLAGS"
- fi
- fi
-
- if test x"$have_python" = x"no"; then
- if test x"$enable_python" = x"yes"; then
- AC_MSG_ERROR([Building python explicitly requested, but cannot build python bindings])
- else
- AC_MSG_WARN([Could not find either PyGTK or the Python headers, not building Python bindings])
- fi
- fi
-fi
-AM_CONDITIONAL([HAVE_PYTHON], [test x"$have_python" = x"yes"])
-
dnl ***************************************************
dnl *** Check if we need to build the documentation ***
dnl ***************************************************
@@ -357,8 +302,6 @@ icons/24x24/Makefile
icons/48x48/Makefile
pixmaps/Makefile
po/Makefile.in
-python/Makefile
-python/examples/Makefile
tests/Makefile
tests/data/Makefile
])
@@ -386,5 +329,4 @@ else
echo "* Documentation: no"
fi
echo "* GNU Visibility: $have_gnuc_visibility"
-echo "* Python Support: $have_python"
echo
diff --git a/exo.spec.in b/exo.spec.in
index 3ef14d9..11cd232 100644
--- a/exo.spec.in
+++ b/exo.spec.in
@@ -28,7 +28,7 @@ Static libraries and header files for the exo library.
%setup -q
%build
-%configure --enable-final --enable-gtk-doc --disable-python --enable-xsltproc
+%configure --enable-final --enable-gtk-doc --enable-xsltproc
make
%install
diff --git a/python/Makefile.am b/python/Makefile.am
deleted file mode 100644
index 1ff808d..0000000
--- a/python/Makefile.am
+++ /dev/null
@@ -1,76 +0,0 @@
-
-SUBDIRS = \
- examples
-
-defsdir = $(datadir)/pygtk/2.0/defs/exo-$(LIBEXO_VERSION_MAJOR).$(LIBEXO_VERSION_MINOR)
-defs_DATA = exo.defs
-
-pyexodir = $(pythondir)
-pyexo_PYTHON = pyexo.py
-
-exomoduledir = $(pyexecdir)/exo-$(LIBEXO_VERSION_MAJOR).$(LIBEXO_VERSION_MINOR)/exo
-exomodule_PYTHON = __init__.py
-
-exobindingsdir = $(pyexecdir)/exo-$(LIBEXO_VERSION_MAJOR).$(LIBEXO_VERSION_MINOR)
-exobindings_LTLIBRARIES = _exo.la
-
-_exo_la_CFLAGS = \
- -I$(top_srcdir) \
- $(GTK_CFLAGS) \
- $(LIBXFCE4UTIL_CFLAGS) \
- $(PYGTK_CFLAGS) \
- $(PYTHON_INCLUDES)
-
-_exo_la_LDFLAGS = \
- -avoid-version \
- -export-symbols-regex init_exo \
- -module \
- -no-undefined
-
-_exo_la_LIBADD = \
- $(top_builddir)/exo/libexo-$(LIBEXO_VERSION_API).la \
- $(GTK_LIBS) \
- $(LIBXFCE4UTIL_LIBS)
-
-_exo_la_SOURCES = \
- exomodule.c \
- pyexo.h \
- pyexobinding.c
-
-nodist__exo_la_SOURCES = \
- exo.c
-
-BUILT_SOURCES = \
- exo.c
-
-exo.c: $(defs_DATA) $(srcdir)/exo.override Makefile
-.defs.c:
- $(AM_V_GEN) (cd $(srcdir) \
- && $(PYGOBJECT_CODEGEN) \
- --register $(PYGTK_DEFSDIR)/pango-types.defs \
- --register $(PYGTK_DEFSDIR)/atk-types.defs \
- --register $(PYGTK_DEFSDIR)/gdk-types.defs \
- --register $(PYGTK_DEFSDIR)/gtk-types.defs \
- --override $*.override \
- --prefix $* $*.defs) > xgen-$*.c \
- && cp xgen-$*.c $*.c \
- && rm -f xgen-$*.c
-
-EXTRA_DIST = \
- $(defs_DATA) \
- $(exomodule_DATA) \
- $(pyexo_PYTHON) \
- abicheck.sh \
- exo.override
-
-CLEANFILES = \
- actual-abi \
- exo.c \
- expected-abi
-
-if HAVE_GNUC_VISIBILITY
-TESTS = \
- abicheck.sh
-endif
-
-# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:
diff --git a/python/__init__.py b/python/__init__.py
deleted file mode 100644
index 8fcda94..0000000
--- a/python/__init__.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# vim:set ts=4 sw=4 et ai syntax=python:
-#
-# Copyright (c) 2005-2006 os-cillation
-# Copyright (c) 1998-2002 James Henstridge
-#
-# Written by Benedikt Meurer <benny at xfce.org>.
-#
-# This library 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 2.1 of the License, or (at your option) any later version.
-#
-# This library 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 library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-# USA
-#
-
-# load the required modules:
-from _exo import *
-
-
-
-class BindingWithNegation(Binding):
- def __init__(self, src_object, src_property, dst_object, dst_property):
- Binding.__init__(self, src_object, src_property, dst_object, dst_property, lambda value: not value)
-
-
-
-class MutualBindingWithNegation(MutualBinding):
- def __init__(self, src_object, src_property, dst_object, dst_property):
- MutualBinding.__init__(self, src_object, src_property, dst_object, dst_property, lambda value: not value, lambda value: not value)
diff --git a/python/abicheck.sh b/python/abicheck.sh
deleted file mode 100755
index 96977f1..0000000
--- a/python/abicheck.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2005 Benedikt Meurer <benny at xfce.org>.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-#
-
-echo 'init_exo' > expected-abi
-nm -D .libs/_exo.so|grep " T " | cut -d ' ' -f 3 | grep -v '^_.*' | sort > actual-abi
-diff -u expected-abi actual-abi && rm expected-abi actual-abi
diff --git a/python/examples/Makefile.am b/python/examples/Makefile.am
deleted file mode 100644
index 7d3c030..0000000
--- a/python/examples/Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-noinst_DATA = \
- README \
- binding.py \
- ellipsizing.py \
- preferred-applications.py \
- toolbars.py \
- toolbars.ui
-
-EXTRA_DIST = \
- $(noinst_DATA)
-
-# vi:set ts=8 sw=8 noet ai nocindent:
diff --git a/python/examples/README b/python/examples/README
deleted file mode 100644
index 95e9733..0000000
--- a/python/examples/README
+++ /dev/null
@@ -1,2 +0,0 @@
-These are some simple examples, intended to help you see how to
-use libexo's python bindings (pyexo).
diff --git a/python/examples/binding.py b/python/examples/binding.py
deleted file mode 100755
index e129348..0000000
--- a/python/examples/binding.py
+++ /dev/null
@@ -1,191 +0,0 @@
-#!/usr/bin/env python
-#
-# binding.py - Example demonstrating the usage of exo.Binding and
-# exo.MutualBinding to automatically synchronize GObject
-# properties.
-#
-#
-# Copyright (c) 2005-2006 os-cillation
-#
-# Written by Benedikt Meurer <benny at xfce.org>.
-#
-# This library 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 2.1 of the License, or (at your option) any later version.
-#
-# This library 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 library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-# USA
-
-import pygtk
-pygtk.require('2.0')
-import gobject
-import gtk
-
-import pyexo
-pyexo.require('0.5')
-import exo
-
-
-class BindingWindow(gtk.Window):
- def __init__(self):
- gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
- self.connect('destroy', gtk.main_quit)
- self.set_default_size(400, 300)
-
- self.vbox = gtk.VBox(False, 12);
- self.vbox.set_border_width(12)
- self.add(self.vbox)
- self.vbox.show()
-
- frame = gtk.Frame()
- frame.set_shadow_type(gtk.SHADOW_NONE)
- self.vbox.pack_start(frame, False, False, 0)
- frame.show()
-
- label = gtk.Label("<b>Binding</b>")
- label.set_use_markup(True)
- frame.set_label_widget(label)
- label.show()
-
- vbox = gtk.VBox(False, 12)
- vbox.set_border_width(12)
- frame.add(vbox)
- vbox.show()
-
- hbox = gtk.HBox(False, 6)
- vbox.pack_start(hbox, False, False, 0)
- hbox.show()
-
- label = gtk.Label("Title:")
- hbox.pack_start(label, False, False, 0)
- label.show()
-
- entry = gtk.Entry()
- entry.set_text("Sample Title")
- self.binding_title = exo.Binding(entry, "text", self, "title")
- hbox.pack_start(entry, True, True, 0)
- entry.show()
-
- hbox = gtk.HBox(False, 6)
- vbox.pack_start(hbox, False, False, 0)
- hbox.show()
-
- self.button_bind = gtk.Button("Bind")
- self.button_bind.set_sensitive(False)
- self.button_bind.connect('clicked', lambda btn: self.bind_title(entry))
- hbox.pack_start(self.button_bind, False, False, 0)
- self.button_bind.show()
-
- self.button_unbind = gtk.Button("Unbind")
- self.button_unbind.connect('clicked', lambda btn: self.unbind_title())
- hbox.pack_start(self.button_unbind, False, False, 0)
- self.button_unbind.show()
-
- frame = gtk.Frame()
- frame.set_shadow_type(gtk.SHADOW_NONE)
- self.vbox.pack_start(frame, False, False, 0)
- frame.show()
-
- label = gtk.Label("<b>Mutual Binding</b>")
- label.set_use_markup(True)
- frame.set_label_widget(label)
- label.show()
-
- vbox = gtk.VBox(False, 12)
- vbox.set_border_width(12)
- frame.add(vbox)
- vbox.show()
-
- hbox = gtk.HBox(False, 6)
- vbox.pack_start(hbox, False, False, 0)
- hbox.show()
-
- label = gtk.Label("Text1:")
- hbox.pack_start(label, False, False, 0)
- label.show()
-
- entry1 = gtk.Entry()
- entry1.set_text("Sample Text")
- hbox.pack_start(entry1, True, True, 0)
- entry1.show()
-
- hbox = gtk.HBox(False, 6)
- vbox.pack_start(hbox, False, False, 0)
- hbox.show()
-
- label = gtk.Label("Text2:")
- hbox.pack_start(label, False, False, 0)
- label.show()
-
- entry2 = gtk.Entry()
- hbox.pack_start(entry2, True, True, 0)
- entry2.show()
-
- exo.MutualBinding(entry1, "text", entry2, "text")
-
- frame = gtk.Frame()
- frame.set_shadow_type(gtk.SHADOW_NONE)
- self.vbox.pack_start(frame, False, False, 0)
- frame.show()
-
- label = gtk.Label("<b>Binding With Negation</b>")
- label.set_use_markup(True)
- frame.set_label_widget(label)
- label.show()
-
- vbox = gtk.VBox(False, 12)
- vbox.set_border_width(12)
- frame.add(vbox)
- vbox.show()
-
- hbox = gtk.HBox(False, 6)
- vbox.pack_start(hbox, False, False, 0)
- hbox.show()
-
- button1 = gtk.CheckButton("Say yes")
- hbox.pack_start(button1, False, False, 0)
- button1.show()
-
- button2 = gtk.CheckButton("Say no")
- hbox.pack_start(button2, False, False, 0)
- button2.show()
-
- exo.MutualBindingWithNegation(button1, "active", button2, "active")
-
- hbox = gtk.HButtonBox()
- hbox.set_layout(gtk.BUTTONBOX_END)
- self.vbox.pack_end(hbox, False, False, 0)
- hbox.show()
-
- button = gtk.Button(None, gtk.STOCK_CLOSE)
- button.connect('clicked', gtk.main_quit)
- hbox.pack_end(button, False, False, 0)
- button.show()
-
- def unbind_title(self):
- self.binding_title.unbind()
- self.button_bind.set_sensitive(True)
- self.button_unbind.set_sensitive(False)
-
- def bind_title(self, entry):
- self.binding_title = exo.Binding(entry, "text", self, "title")
- self.button_unbind.set_sensitive(True)
- self.button_bind.set_sensitive(False)
-
- def run(self):
- self.show()
- gtk.main()
-
-
-window = BindingWindow()
-window.run()
-
-# vim:set ts=4 sw=4 et ai syntax=python:
diff --git a/python/examples/ellipsizing.py b/python/examples/ellipsizing.py
deleted file mode 100755
index b8aad4f..0000000
--- a/python/examples/ellipsizing.py
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/usr/bin/env python
-#
-# ellipsizing.py - Simple example to demonstrate the usage of
-# exo.EllipsizedLabel and exo.CellRendererEllipsizedText,
-# which provide text ellipsizing support for Gtk 2.4,
-# which also works with Gtk 2.5 and above without the
-# need to change your code.
-#
-# vim:set ts=4 sw=4 et ai syntax=python:
-#
-# Copyright (c) 2005 os-cillation
-#
-# Written by Benedikt Meurer <benny at xfce.org>.
-#
-# This library 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 2.1 of the License, or (at your option) any later version.
-#
-# This library 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 library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-# USA
-
-import pygtk
-pygtk.require('2.0')
-import gobject
-import gtk
-
-import pyexo
-pyexo.require('0.3')
-import exo
-
-
-class EllipsizingStore(gtk.ListStore):
- def __init__(self):
- gtk.ListStore.__init__(self, gobject.TYPE_INT, gobject.TYPE_STRING)
- for i in range(20):
- self.append([i, 'Sample Ellipsizing Store Item #%s' % i])
-
-
-class EllipsizingTree(gtk.TreeView):
- def __init__(self):
- gtk.TreeView.__init__(self, EllipsizingStore())
- self.set_headers_visible(True)
- self.set_rules_hint(True)
-
- column = gtk.TreeViewColumn('Index')
- renderer = gtk.CellRendererText()
- column.pack_start(renderer, True)
- column.add_attribute(renderer, 'text', 0)
- self.append_column(column)
-
- column = gtk.TreeViewColumn('Description')
- renderer = exo.CellRendererEllipsizedText()
- renderer.set_property('ellipsize', "end")
- renderer.set_property('ellipsize-set', True)
- column.pack_start(renderer, True)
- column.add_attribute(renderer, 'text', 1)
- self.append_column(column)
- self.set_expander_column(column)
-
-
-class EllipsizingWindow(gtk.Window):
- def __init__(self):
- gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
- self.connect('destroy', gtk.main_quit)
- self.set_default_size(400, 300)
- self.set_title('Ellipsizing Demo')
-
- vbox = gtk.VBox(False, 12)
- vbox.set_border_width(12)
- self.add(vbox)
- vbox.show()
-
- label = gtk.Label('Resize this window to see ' \
- 'the ellipsizing effects')
- vbox.pack_start(label, False, True, 0)
- label.show()
-
- swin = gtk.ScrolledWindow()
- swin.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
- swin.set_shadow_type(gtk.SHADOW_ETCHED_IN)
- vbox.pack_start(swin, True, True, 0)
- swin.show()
-
- tree = EllipsizingTree()
- swin.add(tree)
- tree.show()
-
- bbox = gtk.HButtonBox()
- bbox.set_layout(gtk.BUTTONBOX_END)
- vbox.pack_start(bbox, False, True, 0)
- bbox.show()
-
- button = gtk.Button(None, gtk.STOCK_QUIT)
- button.connect('clicked', gtk.main_quit)
- bbox.pack_start(button, False, False, 0)
- button.show()
-
- def run(self):
- self.show()
- gtk.main()
-
-
-window = EllipsizingWindow()
-window.run()
diff --git a/python/examples/iconview.py b/python/examples/iconview.py
deleted file mode 100755
index 9efb7d8..0000000
--- a/python/examples/iconview.py
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/usr/bin/env python
-#
-# iconview.py - Simple example to demonstrate the usage of
-# exo.IconView, exo.CellRendererEllipsizedText
-# and exo.CellRendererIcon classes.
-#
-# vim:set ts=4 sw=4 et ai syntax=python:
-#
-# Copyright (c) 2006 Written by Benedikt Meurer <benny at xfce.org>.
-#
-# This library 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 2.1 of the License, or (at your option) any later version.
-#
-# This library 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 library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-# USA
-
-import pygtk
-pygtk.require('2.0')
-import gobject
-import gtk
-
-import pyexo
-pyexo.require('0.5')
-import exo
-
-
-class IconStore(gtk.ListStore):
- def __init__(self):
- gtk.ListStore.__init__(self, gobject.TYPE_STRING, gobject.TYPE_STRING)
- self.append(['gnome-dev-battery', 'Battery'])
- self.append(['gnome-dev-cdrom', 'CD-ROM'])
- self.append(['gnome-dev-floppy', 'Floppy'])
- self.append(['gnome-dev-ipod', 'iPod'])
- self.append(['gnome-dev-keyboard', 'Keyboard'])
- self.append(['gnome-dev-printer', 'Printer'])
-
-
-class IconWindow(gtk.Window):
- def __init__(self):
- gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
- self.connect('destroy', gtk.main_quit)
- self.set_default_size(400, 300)
- self.set_title('IconView Demo')
-
- vbox = gtk.VBox(False, 12)
- vbox.set_border_width(6)
- self.add(vbox)
- vbox.show()
-
- swin = gtk.ScrolledWindow()
- swin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
- swin.set_shadow_type(gtk.SHADOW_ETCHED_IN)
- vbox.pack_start(swin, True, True, 0)
- swin.show()
-
- view = exo.IconView()
- view.set_model(IconStore())
- swin.add(view)
- view.show()
-
- renderer = exo.CellRendererIcon()
- view.pack_start(renderer, True)
- view.add_attribute(renderer, 'icon', 0)
-
- renderer = exo.CellRendererEllipsizedText()
- renderer.set_property('follow-state', True)
- renderer.set_property('xalign', 0.5)
- view.pack_start(renderer, False)
- view.add_attribute(renderer, 'text', 1)
-
- bbox = gtk.HButtonBox()
- bbox.set_layout(gtk.BUTTONBOX_END)
- vbox.pack_start(bbox, False, True, 0)
- bbox.show()
-
- button = gtk.Button(None, gtk.STOCK_QUIT)
- button.connect('clicked', gtk.main_quit)
- bbox.pack_start(button, False, False, 0)
- button.show()
-
- def run(self):
- self.show()
- gtk.main()
-
-
-window = IconWindow()
-window.run()
diff --git a/python/examples/preferred-applications.py b/python/examples/preferred-applications.py
deleted file mode 100755
index 246edd1..0000000
--- a/python/examples/preferred-applications.py
+++ /dev/null
@@ -1,153 +0,0 @@
-#!/usr/bin/env python
-#
-# preferred-applications.py - Example demonstrating the usage of the preferred
-# applications and the URL modules in libexo.
-#
-#
-# Copyright (c) 2005-2006 os-cillation
-#
-# Written by Benedikt Meurer <benny at xfce.org>.
-#
-# This library 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 2.1 of the License, or (at your option) any later version.
-#
-# This library 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 library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-# USA
-
-import pygtk
-pygtk.require('2.0')
-import gobject
-import gtk
-
-import pyexo
-pyexo.require('0.5')
-import exo
-
-
-class PreferredWindow(gtk.Window):
- def __init__(self):
- gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
- self.connect('destroy', gtk.main_quit)
- self.set_title("Preferred Applications")
-
- self.vbox = gtk.VBox(False, 12);
- self.vbox.set_border_width(12)
- self.add(self.vbox)
- self.vbox.show()
-
- frame = gtk.Frame()
- frame.set_shadow_type(gtk.SHADOW_NONE)
- self.vbox.pack_start(frame, False, False, 0)
- frame.show()
-
- label = gtk.Label("<b>Preferred Applications</b>")
- label.set_use_markup(True)
- frame.set_label_widget(label)
- label.show()
-
- vbox = gtk.VBox(False, 12)
- vbox.set_border_width(12)
- frame.add(vbox)
- vbox.show()
-
- button = gtk.Button("Open Preferred Web Browser")
- button.connect('clicked', lambda btn: exo.execute_preferred_application("WebBrowser"))
- vbox.pack_start(button, False, False, 0)
- button.show()
-
- button = gtk.Button("Open Preferred Mail Reader")
- button.connect('clicked', lambda btn: exo.execute_preferred_application("MailReader"))
- vbox.pack_start(button, False, False, 0)
- button.show()
-
- button = gtk.Button("Open Preferred Terminal Emulator")
- button.connect('clicked', lambda btn: exo.execute_preferred_application("TerminalEmulator"))
- vbox.pack_start(button, False, False, 0)
- button.show()
-
- frame = gtk.Frame()
- frame.set_shadow_type(gtk.SHADOW_NONE)
- self.vbox.pack_start(frame, False, False, 0)
- frame.show()
-
- label = gtk.Label("<b>Executing in Terminal</b>")
- label.set_use_markup(True)
- frame.set_label_widget(label)
- label.show()
-
- vbox = gtk.VBox(False, 12)
- vbox.set_border_width(12)
- frame.add(vbox)
- vbox.show()
-
- hbox = gtk.HBox(False, 6)
- vbox.pack_start(hbox, False, False, 0)
- hbox.show()
-
- entry_cmd = gtk.Entry()
- entry_cmd.set_text("bash")
- hbox.pack_start(entry_cmd, True, True, 0)
- entry_cmd.show()
-
- button = gtk.Button("Run in Terminal")
- button.connect('clicked', lambda btn: exo.execute_terminal_shell(entry_cmd.get_text()))
- hbox.pack_start(button, False, False, 0)
- button.show()
-
- frame = gtk.Frame()
- frame.set_shadow_type(gtk.SHADOW_NONE)
- self.vbox.pack_start(frame, False, False, 0)
- frame.show()
-
- label = gtk.Label("<b>Opening URLs</b>")
- label.set_use_markup(True)
- frame.set_label_widget(label)
- label.show()
-
- vbox = gtk.VBox(False, 12)
- vbox.set_border_width(12)
- frame.add(vbox)
- vbox.show()
-
- hbox = gtk.HBox(False, 6)
- vbox.pack_start(hbox, False, False, 0)
- hbox.show()
-
- entry_url = gtk.Entry()
- entry_url.set_text("http://www.xfce.org")
- hbox.pack_start(entry_url, True, True, 0)
- entry_url.show()
-
- button = gtk.Button("Open URL")
- button.connect('clicked', lambda btn: exo.url_show(entry_url.get_text()))
- hbox.pack_start(button, False, False, 0)
- button.show()
-
- hbox = gtk.HButtonBox()
- hbox.set_layout(gtk.BUTTONBOX_END)
- self.vbox.pack_end(hbox, False, False, 0)
- hbox.show()
-
- button = gtk.Button(None, gtk.STOCK_CLOSE)
- button.connect('clicked', gtk.main_quit)
- hbox.pack_end(button, False, False, 0)
- button.show()
-
- def run(self):
- self.show()
- gtk.main()
-
-
-window = PreferredWindow()
-window.run()
-
-# vim:set ts=4 sw=4 et ai syntax=python:
diff --git a/python/examples/toolbars.py b/python/examples/toolbars.py
deleted file mode 100755
index 76ae4e4..0000000
--- a/python/examples/toolbars.py
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/usr/bin/env python
-#
-# toolbars.py - Simple example to demonstrate the usage of the editable
-# toolbars framework in libexo.
-#
-# vim:set ts=4 sw=4 et ai syntax=python:
-#
-# Copyright (c) 2005 os-cillation
-#
-# Written by Benedikt Meurer <benny at xfce.org>.
-#
-# This library 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 2.1 of the License, or (at your option) any later version.
-#
-# This library 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 library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-# USA
-
-import pygtk
-pygtk.require('2.0')
-import gobject
-import gtk
-
-import pyexo
-pyexo.require('0.5')
-import exo
-
-
-class ToolbarsStore(exo.ToolbarsModel):
- def __init__(self):
- exo.ToolbarsModel.__init__(self)
- self.set_actions(['up', 'down', 'forward', 'back', 'help', 'home'])
- self.load_from_file('toolbars.ui')
-
-
-
-class ToolbarsView(exo.ToolbarsView):
- def __init__(self, manager):
- exo.ToolbarsView.__init__(self, manager, ToolbarsStore())
- self.connect('customize', lambda self: self.customize())
-
-
- def customize(self):
- self.set_editing(True)
-
- dialog = exo.ToolbarsEditorDialog(self.get_ui_manager(), self.get_model())
- dialog.set_title('Toolbar Editor')
- dialog.set_transient_for(self.get_toplevel())
- dialog.connect('destroy', lambda dialog: self.set_editing(False))
- dialog.show()
-
-
-
-class ToolbarsWindow(gtk.Window):
- def __init__(self):
- gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
- self.connect('destroy', lambda self: gtk.main_quit())
- self.set_default_size(400, 300)
- self.set_title('Toolbars example')
-
- group = gtk.ActionGroup('toolbars-window')
- group.add_actions([
- ('up', gtk.STOCK_GO_UP, 'Up', '<Control>u', None,
- lambda btn, self: self.label.set_label('<big>Up</big>')),
- ('down', gtk.STOCK_GO_DOWN, 'Down', '<Control>d', None,
- lambda btn, self: self.label.set_label('<big>Down</big>')),
- ('forward', gtk.STOCK_GO_FORWARD, 'Forward', '<Control>f', None,
- lambda btn, self: self.label.set_label('<big>Forward</big>')),
- ('back', gtk.STOCK_GO_BACK, 'Back', '<Control>b', None,
- lambda btn, self: self.label.set_label('<big>Back</big>')),
- ('help', gtk.STOCK_HELP, 'Help me', '<Control>h', None,
- lambda btn, self: self.label.set_label('<big>Help ME!</big>')),
- ('home', gtk.STOCK_HOME, 'Home', '<Control>a', None,
- lambda btn, self: self.label.set_label('<big>Anybody\'s Home?</big>'))
- ], self)
-
- manager = gtk.UIManager()
- manager.insert_action_group(group, 0)
- self.add_accel_group(manager.get_accel_group())
-
- vbox = gtk.VBox(False, 0)
- self.add(vbox)
- vbox.show()
-
- view = ToolbarsView(manager)
- vbox.pack_start(view, False, False, 0)
- view.show()
-
- frame = gtk.Frame()
- frame.set_shadow_type(gtk.SHADOW_ETCHED_IN)
- vbox.pack_start(frame, True, True, 0)
- frame.show()
-
- self.label = gtk.Label()
- self.label.set_use_markup(True)
- frame.add(self.label)
- self.label.show()
-
-
- def run(self):
- self.show()
- gtk.main()
-
-
-window = ToolbarsWindow()
-window.run()
diff --git a/python/examples/toolbars.ui b/python/examples/toolbars.ui
deleted file mode 100644
index 91cbf0b..0000000
--- a/python/examples/toolbars.ui
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE toolbars SYSTEM "toolbars.dtd">
-
-<!--
- Copyright (c) 2005 os-cillation
-
- Example toolbar configuration.
--->
-
-<toolbars>
- <toolbar name="main" style="both-horiz">
- <toolitem id="up" />
- <toolitem id="down" />
-
- <separator />
-
- <toolitem id="forward" />
- <toolitem id="back" />
- </toolbar>
-</toolbars>
-
-<!-- vi:set ts=2 sw=2 ai et: -->
diff --git a/python/exo.defs b/python/exo.defs
deleted file mode 100644
index ea777ac..0000000
--- a/python/exo.defs
+++ /dev/null
@@ -1,1392 +0,0 @@
-;; -*- scheme -*-
-; object definitions ...
-(define-object CellRendererEllipsizedText
- (in-module "Exo")
- (parent "GtkCellRendererText")
- (c-name "ExoCellRendererEllipsizedText")
- (gtype-id "EXO_TYPE_CELL_RENDERER_ELLIPSIZED_TEXT")
-)
-
-(define-object CellRendererIcon
- (in-module "Exo")
- (parent "GtkCellRenderer")
- (c-name "ExoCellRendererIcon")
- (gtype-id "EXO_TYPE_CELL_RENDERER_ICON")
-)
-
-(define-object IconBar
- (in-module "Exo")
- (parent "GtkContainer")
- (c-name "ExoIconBar")
- (gtype-id "EXO_TYPE_ICON_BAR")
-)
-
-(define-object IconView
- (in-module "Exo")
- (parent "GtkContainer")
- (c-name "ExoIconView")
- (gtype-id "EXO_TYPE_ICON_VIEW")
- (implements "GtkCellLayout")
-)
-
-(define-object ToolbarsEditor
- (in-module "Exo")
- (parent "GtkVBox")
- (c-name "ExoToolbarsEditor")
- (gtype-id "EXO_TYPE_TOOLBARS_EDITOR")
-)
-
-(define-object ToolbarsEditorDialog
- (in-module "Exo")
- (parent "GtkDialog")
- (c-name "ExoToolbarsEditorDialog")
- (gtype-id "EXO_TYPE_TOOLBARS_EDITOR_DIALOG")
-)
-
-(define-object ToolbarsModel
- (in-module "Exo")
- (parent "GObject")
- (c-name "ExoToolbarsModel")
- (gtype-id "EXO_TYPE_TOOLBARS_MODEL")
-)
-
-(define-object ToolbarsView
- (in-module "Exo")
- (parent "GtkVBox")
- (c-name "ExoToolbarsView")
- (gtype-id "EXO_TYPE_TOOLBARS_VIEW")
-)
-
-(define-object TreeView
- (in-module "Exo")
- (parent "GtkTreeView")
- (c-name "ExoTreeView")
- (gtype-id "EXO_TYPE_TREE_VIEW")
-)
-
-(define-object WrapTable
- (in-module "Exo")
- (parent "GtkContainer")
- (c-name "ExoWrapTable")
- (gtype-id "EXO_TYPE_WRAP_TABLE")
-)
-
-(define-object XsessionClient
- (in-module "Exo")
- (parent "GObject")
- (c-name "ExoXsessionClient")
- (gtype-id "EXO_TYPE_XSESSION_CLIENT")
-)
-
-;; Enumerations and flags ...
-
-(define-enum IconViewDropPosition
- (in-module "Exo")
- (c-name "ExoIconViewDropPosition")
- (gtype-id "EXO_TYPE_ICON_VIEW_DROP_POSITION")
- (values
- '("no-drop" "EXO_ICON_VIEW_NO_DROP")
- '("drop-into" "EXO_ICON_VIEW_DROP_INTO")
- '("drop-left" "EXO_ICON_VIEW_DROP_LEFT")
- '("drop-right" "EXO_ICON_VIEW_DROP_RIGHT")
- '("drop-above" "EXO_ICON_VIEW_DROP_ABOVE")
- '("drop-below" "EXO_ICON_VIEW_DROP_BELOW")
- )
-)
-
-(define-flags ToolbarsModelFlags
- (in-module "Exo")
- (c-name "ExoToolbarsModelFlags")
- (gtype-id "EXO_TYPE_TOOLBARS_MODEL_FLAGS")
- (values
- '("not-removable" "EXO_TOOLBARS_MODEL_NOT_REMOVABLE")
- '("accept-items-only" "EXO_TOOLBARS_MODEL_ACCEPT_ITEMS_ONLY")
- '("override-style" "EXO_TOOLBARS_MODEL_OVERRIDE_STYLE")
- )
-)
-
-
-
-;; From ../exo/exo-cell-renderer-ellipsized-text.h
-
-(define-function exo_cell_renderer_ellipsized_text_get_type
- (c-name "exo_cell_renderer_ellipsized_text_get_type")
- (return-type "GType")
-)
-
-(define-function exo_cell_renderer_ellipsized_text_new
- (c-name "exo_cell_renderer_ellipsized_text_new")
- (is-constructor-of "ExoCellRendererEllipsizedText")
- (return-type "GtkCellRenderer*")
-)
-
-
-
-;; From ../exo/exo-cell-renderer-icon.h
-
-(define-function exo_cell_renderer_icon_get_type
- (c-name "exo_cell_renderer_icon_get_type")
- (return-type "GType")
-)
-
-(define-function exo_cell_renderer_icon_new
- (c-name "exo_cell_renderer_icon_new")
- (is-constructor-of "ExoCellRendererIcon")
- (return-type "GtkCellRenderer*")
-)
-
-
-
-;; From ../exo/exo-enum-types.h
-
-(define-function exo_icon_view_drop_position_get_type
- (c-name "exo_icon_view_drop_position_get_type")
- (return-type "GType")
-)
-
-
-(define-function exo_toolbars_model_flags_get_type
- (c-name "exo_toolbars_model_flags_get_type")
- (return-type "GType")
-)
-
-
-
-;; From ../exo/exo-execute.h
-
-(define-function execute_preferred_application
- (c-name "exo_execute_preferred_application")
- (return-type "gboolean")
- (parameters
- '("const-gchar*" "category")
- '("const-gchar*" "parameter")
- '("const-gchar*" "working_directory")
- '("gchar**" "envp")
- '("GError**" "error")
- )
-)
-
-(define-function execute_preferred_application_on_screen
- (c-name "exo_execute_preferred_application_on_screen")
- (return-type "gboolean")
- (parameters
- '("const-gchar*" "category")
- '("const-gchar*" "parameter")
- '("const-gchar*" "working_directory")
- '("gchar**" "envp")
- '("GdkScreen*" "screen")
- '("GError**" "error")
- )
-)
-
-(define-function execute_terminal_shell
- (c-name "exo_execute_terminal_shell")
- (return-type "gboolean")
- (parameters
- '("const-gchar*" "command_line")
- '("const-gchar*" "working_directory")
- '("gchar**" "envp")
- '("GError**" "error")
- )
-)
-
-(define-function execute_terminal_shell_on_screen
- (c-name "exo_execute_terminal_shell_on_screen")
- (return-type "gboolean")
- (parameters
- '("const-gchar*" "command_line")
- '("const-gchar*" "working_directory")
- '("gchar**" "envp")
- '("GdkScreen*" "screen")
- '("GError**" "error")
- )
-)
-
-
-
-;; From ../exo/exo-gdk-pixbuf-extensions.h
-
-(define-function exo_gdk_pixbuf_colorize
- (c-name "exo_gdk_pixbuf_colorize")
- (return-type "GdkPixbuf*")
- (parameters
- '("const-GdkPixbuf*" "src")
- '("const-GdkColor*" "color")
- )
-)
-
-(define-function exo_gdk_pixbuf_lucent
- (c-name "exo_gdk_pixbuf_lucent")
- (return-type "GdkPixbuf*")
- (parameters
- '("const-GdkPixbuf*" "src")
- '("guint" "percent")
- )
-)
-
-(define-function exo_gdk_pixbuf_spotlight
- (c-name "exo_gdk_pixbuf_spotlight")
- (return-type "GdkPixbuf*")
- (parameters
- '("const-GdkPixbuf*" "src")
- )
-)
-
-(define-function exo_gdk_pixbuf_scale_down
- (c-name "exo_gdk_pixbuf_scale_down")
- (return-type "GdkPixbuf*")
- (parameters
- '("GdkPixbuf*" "source")
- '("gboolean" "aspect_ratio")
- '("gint" "dest_width")
- '("gint" "dest_height")
- )
-)
-
-(define-function exo_gdk_pixbuf_scale_ratio
- (c-name "exo_gdk_pixbuf_scale_ratio")
- (return-type "GdkPixbuf*")
- (parameters
- '("GdkPixbuf*" "source")
- '("gint" "dest_size")
- )
-)
-
-
-
-;; From ../exo/exo-icon-bar.h
-
-(define-function exo_icon_bar_get_type
- (c-name "exo_icon_bar_get_type")
- (return-type "GType")
-)
-
-(define-function exo_icon_bar_new
- (c-name "exo_icon_bar_new")
- (is-constructor-of "ExoIconBar")
- (return-type "GtkWidget*")
-)
-
-(define-function exo_icon_bar_new_with_model
- (c-name "exo_icon_bar_new_with_model")
- (return-type "GtkWidget*")
- (parameters
- '("GtkTreeModel*" "model")
- )
-)
-
-(define-method get_model
- (of-object "ExoIconBar")
- (c-name "exo_icon_bar_get_model")
- (return-type "GtkTreeModel*")
-)
-
-(define-method set_model
- (of-object "ExoIconBar")
- (c-name "exo_icon_bar_set_model")
- (return-type "none")
- (parameters
- '("GtkTreeModel*" "model")
- )
-)
-
-(define-method get_pixbuf_column
- (of-object "ExoIconBar")
- (c-name "exo_icon_bar_get_pixbuf_column")
- (return-type "gint")
-)
-
-(define-method set_pixbuf_column
- (of-object "ExoIconBar")
- (c-name "exo_icon_bar_set_pixbuf_column")
- (return-type "none")
- (parameters
- '("gint" "column")
- )
-)
-
-(define-method get_text_column
- (of-object "ExoIconBar")
- (c-name "exo_icon_bar_get_text_column")
- (return-type "gint")
-)
-
-(define-method set_text_column
- (of-object "ExoIconBar")
- (c-name "exo_icon_bar_set_text_column")
- (return-type "none")
- (parameters
- '("gint" "column")
- )
-)
-
-(define-method get_orientation
- (of-object "ExoIconBar")
- (c-name "exo_icon_bar_get_orientation")
- (return-type "GtkOrientation")
-)
-
-(define-method set_orientation
- (of-object "ExoIconBar")
- (c-name "exo_icon_bar_set_orientation")
- (return-type "none")
- (parameters
- '("GtkOrientation" "orientation")
- )
-)
-
-(define-method get_active
- (of-object "ExoIconBar")
- (c-name "exo_icon_bar_get_active")
- (return-type "gint")
-)
-
-(define-method set_active
- (of-object "ExoIconBar")
- (c-name "exo_icon_bar_set_active")
- (return-type "none")
- (parameters
- '("gint" "idx")
- )
-)
-
-(define-method get_active_iter
- (of-object "ExoIconBar")
- (c-name "exo_icon_bar_get_active_iter")
- (return-type "gboolean")
- (parameters
- '("GtkTreeIter*" "iter")
- )
-)
-
-(define-method set_active_iter
- (of-object "ExoIconBar")
- (c-name "exo_icon_bar_set_active_iter")
- (return-type "none")
- (parameters
- '("GtkTreeIter*" "iter")
- )
-)
-
-
-
-;; From ../exo/exo-icon-view.h
-
-(define-function exo_icon_view_get_type
- (c-name "exo_icon_view_get_type")
- (return-type "GType")
-)
-
-(define-function exo_icon_view_new
- (c-name "exo_icon_view_new")
- (is-constructor-of "ExoIconView")
- (return-type "GtkWidget*")
-)
-
-(define-function exo_icon_view_new_with_model
- (c-name "exo_icon_view_new_with_model")
- (return-type "GtkWidget*")
- (parameters
- '("GtkTreeModel*" "model")
- )
-)
-
-(define-method get_model
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_model")
- (return-type "GtkTreeModel*")
-)
-
-(define-method set_model
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_model")
- (return-type "none")
- (parameters
- '("GtkTreeModel*" "model")
- )
-)
-
-(define-method get_orientation
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_orientation")
- (return-type "GtkOrientation")
-)
-
-(define-method set_orientation
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_orientation")
- (return-type "none")
- (parameters
- '("GtkOrientation" "orientation")
- )
-)
-
-(define-method get_columns
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_columns")
- (return-type "gint")
-)
-
-(define-method set_columns
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_columns")
- (return-type "none")
- (parameters
- '("gint" "columns")
- )
-)
-
-(define-method get_item_width
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_item_width")
- (return-type "gint")
-)
-
-(define-method set_item_width
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_item_width")
- (return-type "none")
- (parameters
- '("gint" "item_width")
- )
-)
-
-(define-method get_spacing
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_spacing")
- (return-type "gint")
-)
-
-(define-method set_spacing
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_spacing")
- (return-type "none")
- (parameters
- '("gint" "spacing")
- )
-)
-
-(define-method get_row_spacing
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_row_spacing")
- (return-type "gint")
-)
-
-(define-method set_row_spacing
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_row_spacing")
- (return-type "none")
- (parameters
- '("gint" "row_spacing")
- )
-)
-
-(define-method get_column_spacing
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_column_spacing")
- (return-type "gint")
-)
-
-(define-method set_column_spacing
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_column_spacing")
- (return-type "none")
- (parameters
- '("gint" "column_spacing")
- )
-)
-
-(define-method get_margin
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_margin")
- (return-type "gint")
-)
-
-(define-method set_margin
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_margin")
- (return-type "none")
- (parameters
- '("gint" "margin")
- )
-)
-
-(define-method get_selection_mode
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_selection_mode")
- (return-type "GtkSelectionMode")
-)
-
-(define-method set_selection_mode
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_selection_mode")
- (return-type "none")
- (parameters
- '("GtkSelectionMode" "mode")
- )
-)
-
-(define-method get_single_click
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_single_click")
- (return-type "gboolean")
-)
-
-(define-method set_single_click
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_single_click")
- (return-type "none")
- (parameters
- '("gboolean" "single_click")
- )
-)
-
-(define-method get_single_click_timeout
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_single_click_timeout")
- (return-type "guint")
-)
-
-(define-method set_single_click_timeout
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_single_click_timeout")
- (return-type "none")
- (parameters
- '("guint" "single_click_timeout")
- )
-)
-
-(define-method widget_to_icon_coords
- (of-object "ExoIconView")
- (c-name "exo_icon_view_widget_to_icon_coords")
- (return-type "none")
- (parameters
- '("gint" "wx")
- '("gint" "wy")
- '("gint*" "ix")
- '("gint*" "iy")
- )
-)
-
-(define-method icon_to_widget_coords
- (of-object "ExoIconView")
- (c-name "exo_icon_view_icon_to_widget_coords")
- (return-type "none")
- (parameters
- '("gint" "ix")
- '("gint" "iy")
- '("gint*" "wx")
- '("gint*" "wy")
- )
-)
-
-(define-method get_path_at_pos
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_path_at_pos")
- (return-type "GtkTreePath*")
- (parameters
- '("gint" "x")
- '("gint" "y")
- )
-)
-
-(define-method get_item_at_pos
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_item_at_pos")
- (return-type "gboolean")
- (parameters
- '("gint" "x")
- '("gint" "y")
- '("GtkTreePath**" "path")
- '("GtkCellRenderer**" "cell")
- )
-)
-
-(define-method get_visible_range
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_visible_range")
- (return-type "gboolean")
- (parameters
- '("GtkTreePath**" "start_path")
- '("GtkTreePath**" "end_path")
- )
-)
-
-(define-method selected_foreach
- (of-object "ExoIconView")
- (c-name "exo_icon_view_selected_foreach")
- (return-type "none")
- (parameters
- '("ExoIconViewForeachFunc" "func")
- '("gpointer" "data")
- )
-)
-
-(define-method select_path
- (of-object "ExoIconView")
- (c-name "exo_icon_view_select_path")
- (return-type "none")
- (parameters
- '("GtkTreePath*" "path")
- )
-)
-
-(define-method unselect_path
- (of-object "ExoIconView")
- (c-name "exo_icon_view_unselect_path")
- (return-type "none")
- (parameters
- '("GtkTreePath*" "path")
- )
-)
-
-(define-method path_is_selected
- (of-object "ExoIconView")
- (c-name "exo_icon_view_path_is_selected")
- (return-type "gboolean")
- (parameters
- '("GtkTreePath*" "path")
- )
-)
-
-(define-method get_selected_items
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_selected_items")
- (return-type "GList*")
-)
-
-(define-method select_all
- (of-object "ExoIconView")
- (c-name "exo_icon_view_select_all")
- (return-type "none")
-)
-
-(define-method unselect_all
- (of-object "ExoIconView")
- (c-name "exo_icon_view_unselect_all")
- (return-type "none")
-)
-
-(define-method item_activated
- (of-object "ExoIconView")
- (c-name "exo_icon_view_item_activated")
- (return-type "none")
- (parameters
- '("GtkTreePath*" "path")
- )
-)
-
-(define-method get_cursor
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_cursor")
- (return-type "gboolean")
- (parameters
- '("GtkTreePath**" "path")
- '("GtkCellRenderer**" "cell")
- )
-)
-
-(define-method set_cursor
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_cursor")
- (return-type "none")
- (parameters
- '("GtkTreePath*" "path")
- '("GtkCellRenderer*" "cell")
- '("gboolean" "start_editing")
- )
-)
-
-(define-method scroll_to_path
- (of-object "ExoIconView")
- (c-name "exo_icon_view_scroll_to_path")
- (return-type "none")
- (parameters
- '("GtkTreePath*" "path")
- '("gboolean" "use_align")
- '("gfloat" "row_align")
- '("gfloat" "col_align")
- )
-)
-
-(define-method enable_model_drag_source
- (of-object "ExoIconView")
- (c-name "exo_icon_view_enable_model_drag_source")
- (return-type "none")
- (parameters
- '("GdkModifierType" "start_button_mask")
- '("const-GtkTargetEntry*" "targets")
- '("gint" "n_targets")
- '("GdkDragAction" "actions")
- )
-)
-
-(define-method enable_model_drag_dest
- (of-object "ExoIconView")
- (c-name "exo_icon_view_enable_model_drag_dest")
- (return-type "none")
- (parameters
- '("const-GtkTargetEntry*" "targets")
- '("gint" "n_targets")
- '("GdkDragAction" "actions")
- )
-)
-
-(define-method unset_model_drag_source
- (of-object "ExoIconView")
- (c-name "exo_icon_view_unset_model_drag_source")
- (return-type "none")
-)
-
-(define-method unset_model_drag_dest
- (of-object "ExoIconView")
- (c-name "exo_icon_view_unset_model_drag_dest")
- (return-type "none")
-)
-
-(define-method set_reorderable
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_reorderable")
- (return-type "none")
- (parameters
- '("gboolean" "reorderable")
- )
-)
-
-(define-method get_reorderable
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_reorderable")
- (return-type "gboolean")
-)
-
-(define-method set_drag_dest_item
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_drag_dest_item")
- (return-type "none")
- (parameters
- '("GtkTreePath*" "path")
- '("ExoIconViewDropPosition" "pos")
- )
-)
-
-(define-method get_drag_dest_item
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_drag_dest_item")
- (return-type "none")
- (parameters
- '("GtkTreePath**" "path")
- '("ExoIconViewDropPosition*" "pos")
- )
-)
-
-(define-method get_dest_item_at_pos
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_dest_item_at_pos")
- (return-type "gboolean")
- (parameters
- '("gint" "drag_x")
- '("gint" "drag_y")
- '("GtkTreePath**" "path")
- '("ExoIconViewDropPosition*" "pos")
- )
-)
-
-(define-method create_drag_icon
- (of-object "ExoIconView")
- (c-name "exo_icon_view_create_drag_icon")
- (return-type "GdkPixmap*")
- (parameters
- '("GtkTreePath*" "path")
- )
-)
-
-(define-method get_enable_search
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_enable_search")
- (return-type "gboolean")
-)
-
-(define-method set_enable_search
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_enable_search")
- (return-type "none")
- (parameters
- '("gboolean" "enable_search")
- )
-)
-
-(define-method get_search_column
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_search_column")
- (return-type "gint")
-)
-
-(define-method set_search_column
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_search_column")
- (return-type "none")
- (parameters
- '("gint" "search_column")
- )
-)
-
-(define-method get_search_equal_func
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_search_equal_func")
- (return-type "ExoIconViewSearchEqualFunc")
-)
-
-(define-method set_search_equal_func
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_search_equal_func")
- (return-type "none")
- (parameters
- '("ExoIconViewSearchEqualFunc" "search_equal_func")
- '("gpointer" "search_equal_data")
- '("GDestroyNotify" "search_equal_destroy")
- )
-)
-
-(define-method get_search_position_func
- (of-object "ExoIconView")
- (c-name "exo_icon_view_get_search_position_func")
- (return-type "ExoIconViewSearchPositionFunc")
-)
-
-(define-method set_search_position_func
- (of-object "ExoIconView")
- (c-name "exo_icon_view_set_search_position_func")
- (return-type "none")
- (parameters
- '("ExoIconViewSearchPositionFunc" "search_position_func")
- '("gpointer" "search_position_data")
- '("GDestroyNotify" "search_position_destroy")
- )
-)
-
-
-
-;; From ../exo/exo-toolbars-editor-dialog.h
-
-(define-function exo_toolbars_editor_dialog_get_type
- (c-name "exo_toolbars_editor_dialog_get_type")
- (return-type "GType")
-)
-
-(define-function exo_toolbars_editor_dialog_new_with_model
- (c-name "exo_toolbars_editor_dialog_new_with_model")
- (return-type "GtkWidget*")
- (parameters
- '("GtkUIManager*" "ui_manager")
- '("ExoToolbarsModel*" "model")
- )
-)
-
-
-
-;; From ../exo/exo-toolbars-editor.h
-
-(define-function exo_toolbars_editor_get_type
- (c-name "exo_toolbars_editor_get_type")
- (return-type "GType")
-)
-
-(define-function exo_toolbars_editor_new
- (c-name "exo_toolbars_editor_new")
- (is-constructor-of "ExoToolbarsEditor")
- (return-type "GtkWidget*")
- (parameters
- '("GtkUIManager*" "ui_manager")
- )
-)
-
-(define-function exo_toolbars_editor_new_with_model
- (c-name "exo_toolbars_editor_new_with_model")
- (return-type "GtkWidget*")
- (parameters
- '("GtkUIManager*" "ui_manager")
- '("ExoToolbarsModel*" "model")
- )
-)
-
-(define-method get_model
- (of-object "ExoToolbarsEditor")
- (c-name "exo_toolbars_editor_get_model")
- (return-type "ExoToolbarsModel*")
-)
-
-(define-method set_model
- (of-object "ExoToolbarsEditor")
- (c-name "exo_toolbars_editor_set_model")
- (return-type "none")
- (parameters
- '("ExoToolbarsModel*" "model")
- )
-)
-
-(define-method get_ui_manager
- (of-object "ExoToolbarsEditor")
- (c-name "exo_toolbars_editor_get_ui_manager")
- (return-type "GtkUIManager*")
-)
-
-(define-method set_ui_manager
- (of-object "ExoToolbarsEditor")
- (c-name "exo_toolbars_editor_set_ui_manager")
- (return-type "none")
- (parameters
- '("GtkUIManager*" "ui_manager")
- )
-)
-
-
-
-;; From ../exo/exo-toolbars-model.h
-
-(define-function exo_toolbars_model_get_type
- (c-name "exo_toolbars_model_get_type")
- (return-type "GType")
-)
-
-(define-function exo_toolbars_model_new
- (c-name "exo_toolbars_model_new")
- (is-constructor-of "ExoToolbarsModel")
- (return-type "ExoToolbarsModel*")
-)
-
-(define-method set_actions
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_set_actions")
- (return-type "none")
- (parameters
- '("gchar**" "actions")
- '("guint" "n_actions")
- )
-)
-
-(define-method get_actions
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_get_actions")
- (return-type "gchar**")
-)
-
-(define-method load_from_file
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_load_from_file")
- (return-type "gboolean")
- (parameters
- '("const-gchar*" "filename")
- '("GError**" "error")
- )
-)
-
-(define-method save_to_file
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_save_to_file")
- (return-type "gboolean")
- (parameters
- '("const-gchar*" "filename")
- '("GError**" "error")
- )
-)
-
-(define-method get_flags
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_get_flags")
- (return-type "ExoToolbarsModelFlags")
- (parameters
- '("gint" "toolbar_position")
- )
-)
-
-(define-method set_flags
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_set_flags")
- (return-type "none")
- (parameters
- '("ExoToolbarsModelFlags" "flags")
- '("gint" "toolbar_position")
- )
-)
-
-(define-method get_style
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_get_style")
- (return-type "GtkToolbarStyle")
- (parameters
- '("gint" "toolbar_position")
- )
-)
-
-(define-method set_style
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_set_style")
- (return-type "none")
- (parameters
- '("GtkToolbarStyle" "style")
- '("gint" "toolbar_position")
- )
-)
-
-(define-method unset_style
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_unset_style")
- (return-type "none")
- (parameters
- '("gint" "toolbar_position")
- )
-)
-
-(define-method get_item_type
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_get_item_type")
- (return-type "gchar*")
- (parameters
- '("GdkAtom" "dnd_type")
- )
-)
-
-(define-method get_item_id
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_get_item_id")
- (return-type "gchar*")
- (parameters
- '("const-gchar*" "type")
- '("const-gchar*" "name")
- )
-)
-
-(define-method get_item_data
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_get_item_data")
- (return-type "gchar*")
- (parameters
- '("const-gchar*" "type")
- '("const-gchar*" "id")
- )
-)
-
-(define-method add_item
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_add_item")
- (return-type "gboolean")
- (parameters
- '("gint" "toolbar_position")
- '("gint" "item_position")
- '("const-gchar*" "id")
- '("const-gchar*" "type")
- )
-)
-
-(define-method add_separator
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_add_separator")
- (return-type "none")
- (parameters
- '("gint" "toolbar_position")
- '("gint" "item_position")
- )
-)
-
-(define-method add_toolbar
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_add_toolbar")
- (return-type "gint")
- (parameters
- '("gint" "toolbar_position")
- '("const-gchar*" "name")
- )
-)
-
-(define-method move_item
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_move_item")
- (return-type "none")
- (parameters
- '("gint" "toolbar_position")
- '("gint" "item_position")
- '("gint" "new_toolbar_position")
- '("gint" "new_item_position")
- )
-)
-
-(define-method remove_item
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_remove_item")
- (return-type "none")
- (parameters
- '("gint" "toolbar_position")
- '("gint" "item_position")
- )
-)
-
-(define-method remove_toolbar
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_remove_toolbar")
- (return-type "none")
- (parameters
- '("gint" "toolbar_position")
- )
-)
-
-(define-method n_items
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_n_items")
- (return-type "gint")
- (parameters
- '("gint" "toolbar_position")
- )
-)
-
-(define-method item_nth
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_item_nth")
- (return-type "none")
- (parameters
- '("gint" "toolbar_position")
- '("gint" "item_position")
- '("gboolean*" "is_separator")
- '("const-gchar**" "id")
- '("const-gchar**" "type")
- )
-)
-
-(define-method n_toolbars
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_n_toolbars")
- (return-type "gint")
-)
-
-(define-method toolbar_nth
- (of-object "ExoToolbarsModel")
- (c-name "exo_toolbars_model_toolbar_nth")
- (return-type "const-gchar*")
- (parameters
- '("gint" "toolbar_position")
- )
-)
-
-
-
-;; From ../exo/exo-toolbars-view.h
-
-(define-function exo_toolbars_view_get_type
- (c-name "exo_toolbars_view_get_type")
- (return-type "GType")
-)
-
-(define-function exo_toolbars_view_new_with_model
- (c-name "exo_toolbars_view_new_with_model")
- (is-constructor-of "ExoToolbarsView")
- (return-type "GtkWidget*")
- (parameters
- '("GtkUIManager*" "ui_manager")
- '("ExoToolbarsModel*" "model")
- )
-)
-
-(define-method get_editing
- (of-object "ExoToolbarsView")
- (c-name "exo_toolbars_view_get_editing")
- (return-type "gboolean")
-)
-
-(define-method set_editing
- (of-object "ExoToolbarsView")
- (c-name "exo_toolbars_view_set_editing")
- (return-type "none")
- (parameters
- '("gboolean" "editing")
- )
-)
-
-(define-method get_model
- (of-object "ExoToolbarsView")
- (c-name "exo_toolbars_view_get_model")
- (return-type "ExoToolbarsModel*")
-)
-
-(define-method set_model
- (of-object "ExoToolbarsView")
- (c-name "exo_toolbars_view_set_model")
- (return-type "none")
- (parameters
- '("ExoToolbarsModel*" "model")
- )
-)
-
-(define-method get_ui_manager
- (of-object "ExoToolbarsView")
- (c-name "exo_toolbars_view_get_ui_manager")
- (return-type "GtkUIManager*")
-)
-
-(define-method set_ui_manager
- (of-object "ExoToolbarsView")
- (c-name "exo_toolbars_view_set_ui_manager")
- (return-type "none")
- (parameters
- '("GtkUIManager*" "ui_manager")
- )
-)
-
-
-
-;; From ../exo/exo-tree-view.h
-
-(define-function exo_tree_view_get_type
- (c-name "exo_tree_view_get_type")
- (return-type "GType")
-)
-
-(define-function exo_tree_view_new
- (c-name "exo_tree_view_new")
- (is-constructor-of "ExoTreeView")
- (return-type "GtkWidget*")
-)
-
-(define-method get_single_click
- (of-object "ExoTreeView")
- (c-name "exo_tree_view_get_single_click")
- (return-type "gboolean")
-)
-
-(define-method set_single_click
- (of-object "ExoTreeView")
- (c-name "exo_tree_view_set_single_click")
- (return-type "none")
- (parameters
- '("gboolean" "single_click")
- )
-)
-
-(define-method get_single_click_timeout
- (of-object "ExoTreeView")
- (c-name "exo_tree_view_get_single_click_timeout")
- (return-type "guint")
-)
-
-(define-method set_single_click_timeout
- (of-object "ExoTreeView")
- (c-name "exo_tree_view_set_single_click_timeout")
- (return-type "none")
- (parameters
- '("guint" "single_click_timeout")
- )
-)
-
-
-
-;; From ../exo/exo-wrap-table.h
-
-(define-function exo_wrap_table_get_type
- (c-name "exo_wrap_table_get_type")
- (return-type "GType")
-)
-
-(define-function exo_wrap_table_new
- (c-name "exo_wrap_table_new")
- (is-constructor-of "ExoWrapTable")
- (return-type "GtkWidget*")
- (parameters
- '("gboolean" "homogeneous")
- )
-)
-
-(define-method get_col_spacing
- (of-object "ExoWrapTable")
- (c-name "exo_wrap_table_get_col_spacing")
- (return-type "guint")
-)
-
-(define-method set_col_spacing
- (of-object "ExoWrapTable")
- (c-name "exo_wrap_table_set_col_spacing")
- (return-type "none")
- (parameters
- '("guint" "col_spacing")
- )
-)
-
-(define-method get_row_spacing
- (of-object "ExoWrapTable")
- (c-name "exo_wrap_table_get_row_spacing")
- (return-type "guint")
-)
-
-(define-method set_row_spacing
- (of-object "ExoWrapTable")
- (c-name "exo_wrap_table_set_row_spacing")
- (return-type "none")
- (parameters
- '("guint" "row_spacing")
- )
-)
-
-(define-method get_homogeneous
- (of-object "ExoWrapTable")
- (c-name "exo_wrap_table_get_homogeneous")
- (return-type "gboolean")
-)
-
-(define-method set_homogeneous
- (of-object "ExoWrapTable")
- (c-name "exo_wrap_table_set_homogeneous")
- (return-type "none")
- (parameters
- '("gboolean" "homogeneous")
- )
-)
-
-
-
-;; From ../exo/exo-xsession-client.h
-
-(define-function exo_xsession_client_get_type
- (c-name "exo_xsession_client_get_type")
- (return-type "GType")
-)
-
-(define-function exo_xsession_client_new_with_group
- (c-name "exo_xsession_client_new_with_group")
- (return-type "ExoXsessionClient*")
- (parameters
- '("GdkWindow*" "leader")
- )
-)
-
-(define-method get_group
- (of-object "ExoXsessionClient")
- (c-name "exo_xsession_client_get_group")
- (return-type "GdkWindow*")
-)
-
-(define-method set_group
- (of-object "ExoXsessionClient")
- (c-name "exo_xsession_client_set_group")
- (return-type "none")
- (parameters
- '("GdkWindow*" "leader")
- )
-)
-
-(define-method get_restart_command
- (of-object "ExoXsessionClient")
- (c-name "exo_xsession_client_get_restart_command")
- (return-type "gboolean")
- (parameters
- '("gchar***" "argv")
- '("gint*" "argc")
- )
-)
-
-(define-method set_restart_command
- (of-object "ExoXsessionClient")
- (c-name "exo_xsession_client_set_restart_command")
- (return-type "none")
- (parameters
- '("gchar**" "argv")
- '("gint" "argc")
- )
-)
-
diff --git a/python/exo.override b/python/exo.override
deleted file mode 100644
index 3b6b528..0000000
--- a/python/exo.override
+++ /dev/null
@@ -1,493 +0,0 @@
-/* vim:set ts=2 sw=2 et ai syntax=c cindent: */
-/*-
- * Copyright (c) 2005 os-cillation e.K.
- *
- * Written by Benedikt Meurer <benny at xfce.org>.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-%%
-headers
-#include <Python.h>
-#include <pygtk/pygtk.h>
-#include "pyexo.h"
-
-/* mark internal symbols with G_GNUC_INTERNAL */
-G_GNUC_INTERNAL void exo_add_constants (PyObject *module,
- const gchar *strip_prefix);
-G_GNUC_INTERNAL void exo_register_classes (PyObject *d);
-
-%%
-modulename exo
-
-%%
-import gobject.GObject as PyGObject_Type
-import gtk.gdk.Window as PyGdkWindow_Type
-import gtk.CellLayout as PyGtkCellLayout_Type
-import gtk.CellRenderer as PyGtkCellRenderer_Type
-import gtk.CellRendererText as PyGtkCellRendererText_Type
-import gtk.Container as PyGtkContainer_Type
-import gtk.Dialog as PyGtkDialog_Type
-import gtk.Label as PyGtkLabel_Type
-import gtk.IconTheme as PyGtkIconTheme_Type
-import gtk.RadioAction as PyGtkRadioAction_Type
-import gtk.TreeModel as PyGtkTreeModel_Type
-import gtk.TreeView as PyGtkTreeView_Type
-import gtk.UIManager as PyGtkUIManager_Type
-import gtk.VBox as PyGtkVBox_Type
-import gtk.gdk.Pixbuf as PyGdkPixbuf_Type
-import gtk.gdk.Screen as PyGdkScreen_Type
-
-%%
-ignore-glob
- *_get_type
-
-%%
-ignore
- exo_execute_preferred_application_on_screen
- exo_execute_terminal_shell_on_screen
- exo_icon_bar_new
- exo_icon_view_new
- exo_icon_view_selected_foreach
- exo_toolbars_editor_new
- exo_toolbars_view_new
-
-%%
-override exo_execute_preferred_application kwargs
-static PyObject*
-_wrap_exo_execute_preferred_application (PyObject *self,
- PyObject *args,
- PyObject *kwargs)
-{
- static gchar *kwlist[] = { "category", "parameter", "working_directory", "environment", "screen", NULL };
- const gchar *working_directory = NULL;
- const gchar *parameter = NULL;
- const gchar *category;
- GdkScreen *screen;
- PyObject *sequence = Py_None;
- PyObject *item = Py_None;
- GError *error = NULL;
- gchar **envp = NULL;
- gint n;
-
- if (!PyArg_ParseTupleAndKeywords (args, kwargs, "s|ssOO:execute_preferred_application",
- kwlist, &category, ¶meter, &working_directory, &sequence, &item))
- return NULL;
-
- /* validate parameters */
- if (sequence != Py_None && !PySequence_Check (sequence))
- {
- PyErr_SetString (PyExc_TypeError, "environment must be a sequence or None");
- return NULL;
- }
- else if (item != Py_None && !pygobject_check (item, &PyGdkScreen_Type))
- {
- PyErr_SetString (PyExc_TypeError, "screen must be a gtk.gdk.Screen or None");
- return NULL;
- }
-
- if (exo_str_is_empty (working_directory))
- working_directory = NULL;
-
- if (exo_str_is_empty (parameter))
- parameter = NULL;
-
- /* determine the screen */
- screen = (item != Py_None) ? GDK_SCREEN (pygobject_get (item)) : gdk_screen_get_default ();
-
- if (G_UNLIKELY (sequence != Py_None))
- {
- envp = g_new0 (gchar *, PySequence_Length (sequence) + 1);
- for (n = 0; n < PySequence_Length (sequence); ++n)
- {
- item = PySequence_GetItem (sequence, n);
- Py_DECREF (item);
-
- if (!PyString_Check (item) && !PyUnicode_Check (item))
- {
- PyErr_SetString (PyExc_TypeError, "sequence item not a string or unicode object");
- g_strfreev (envp);
- return NULL;
- }
-
- envp[n] = g_strdup (PyString_AsString (item));
- }
- }
-
- /* try to execute the preferred application */
- exo_execute_preferred_application_on_screen (category, parameter, working_directory, envp, screen, &error);
-
- /* release the environment */
- g_strfreev (envp);
-
- /* check for errors */
- if (pyg_error_check (&error))
- return NULL;
-
- Py_INCREF (Py_None);
- return Py_None;
-}
-
-%%
-override exo_execute_terminal_shell kwargs
-static PyObject*
-_wrap_exo_execute_terminal_shell (PyObject *self,
- PyObject *args,
- PyObject *kwargs)
-{
- static gchar *kwlist[] = { "command_line", "working_directory", "environment", "screen", NULL };
- const gchar *working_directory = NULL;
- const gchar *command_line;
- GdkScreen *screen;
- PyObject *sequence = Py_None;
- PyObject *item = Py_None;
- GError *error = NULL;
- gchar **envp = NULL;
- gint n;
-
- if (!PyArg_ParseTupleAndKeywords (args, kwargs, "s|sOO:execute_terminal_shell",
- kwlist, &command_line, &working_directory, &sequence, &item))
- return NULL;
-
- /* validate parameters */
- if (sequence != Py_None && !PySequence_Check (sequence))
- {
- PyErr_SetString (PyExc_TypeError, "environment must be a sequence or None");
- return NULL;
- }
- else if (item != Py_None && !pygobject_check (item, &PyGdkScreen_Type))
- {
- PyErr_SetString (PyExc_TypeError, "screen must be a gtk.gdk.Screen or None");
- return NULL;
- }
-
- if (exo_str_is_empty (working_directory))
- working_directory = NULL;
-
- /* determine the screen */
- screen = (item != Py_None) ? GDK_SCREEN (pygobject_get (item)) : gdk_screen_get_default ();
-
- if (G_UNLIKELY (sequence != Py_None))
- {
- envp = g_new0 (gchar *, PySequence_Length (sequence) + 1);
- for (n = 0; n < PySequence_Length (sequence); ++n)
- {
- item = PySequence_GetItem (sequence, n);
- Py_DECREF (item);
-
- if (!PyString_Check (item) && !PyUnicode_Check (item))
- {
- PyErr_SetString (PyExc_TypeError, "sequence item not a string or unicode object");
- g_strfreev (envp);
- return NULL;
- }
-
- envp[n] = g_strdup (PyString_AsString (item));
- }
- }
-
- /* try to execute the terminal shell */
- exo_execute_terminal_shell_on_screen (command_line, working_directory, envp, screen, &error);
-
- /* release the environment */
- g_strfreev (envp);
-
- /* check for errors */
- if (pyg_error_check (&error))
- return NULL;
-
- Py_INCREF (Py_None);
- return Py_None;
-}
-
-%%
-override exo_icon_view_get_selected_items kwargs
-static PyObject*
-_wrap_exo_icon_view_get_selected_items (PyGObject *self,
- PyObject *args,
- PyObject *kwargs)
-{
- PyObject *result;
- PyObject *item;
- GList *items;
- GList *lp;
-
- items = exo_icon_view_get_selected_items (EXO_ICON_VIEW (self->obj));
-
- result = PyList_New (0);
- if (G_UNLIKELY (result == NULL))
- return NULL;
-
- for (lp = items; lp != NULL; lp = lp->next)
- {
- item = pygtk_tree_path_to_pyobject (lp->data);
- PyList_Append (result, item);
- Py_DECREF (item);
-
- gtk_tree_path_free (lp->data);
- }
-
- g_list_free (items);
-
- return result;
-}
-
-%%
-override exo_toolbars_model_get_actions
-static PyObject*
-_wrap_exo_toolbars_model_get_actions (PyGObject *self)
-{
- PyObject *result;
- PyObject *value;
- gchar **actions;
- guint n;
-
- actions = exo_toolbars_model_get_actions (EXO_TOOLBARS_MODEL (self->obj));
- if (G_LIKELY (actions != NULL))
- {
- result = PyList_New (0);
- if (G_UNLIKELY (result == NULL))
- return NULL;
-
- for (n = 0; actions[n] != NULL; ++n)
- {
- value = Py_BuildValue ("s", actions[n]);
- PyList_Append (result, value);
- Py_DECREF (value);
- }
-
- g_strfreev (actions);
- }
- else
- {
- Py_INCREF (Py_None);
- result = Py_None;
- }
-
- return result;
-}
-
-%%
-override exo_toolbars_model_set_actions kwargs
-static PyObject*
-_wrap_exo_toolbars_model_set_actions (PyGObject *self,
- PyObject *args,
- PyObject *kwargs)
-{
- static char *kwlist[] = { "args", NULL };
- PyObject *sequence;
- PyObject *item;
- gchar **actions;
- guint n_actions;
- guint n;
-
- if (!PyArg_ParseTupleAndKeywords (args, kwargs,
- "O:ExoToolbarsModel.set_actions",
- kwlist, &sequence))
- return NULL;
-
- if (!PySequence_Check (sequence))
- {
- PyErr_SetString (PyExc_TypeError, "first argument must be a sequence");
- return NULL;
- }
-
- n_actions = PySequence_Length (sequence);
- actions = g_new0 (gchar *, n_actions + 1);
-
- for (n = 0; n < n_actions; ++n)
- {
- item = PySequence_GetItem (sequence, n);
- Py_DECREF (item);
-
- if (!PyString_Check (item) && !PyUnicode_Check (item))
- {
- PyErr_SetString (PyExc_TypeError, "sequence item "
- "not a string or unicode object");
- g_strfreev (actions);
- return NULL;
- }
-
- actions[n] = g_strdup (PyString_AsString (item));
- }
-
- exo_toolbars_model_set_actions (EXO_TOOLBARS_MODEL (self->obj),
- actions, n_actions);
- g_strfreev (actions);
-
- Py_INCREF (Py_None);
- return Py_None;
-}
-
-%%
-override exo_toolbars_model_get_item_type kwargs
-static PyObject*
-_wrap_exo_toolbars_model_get_item_type (PyGObject *self,
- PyObject *args,
- PyObject *kwargs)
-{
- static char *kwlist[] = { "dnd_type", NULL };
- PyObject *object;
- GdkAtom type;
- gchar *result;
-
- if (!PyArg_ParseTupleAndKeywords (args, kwargs,
- "O:ExoToolbarsModel.get_item_type",
- kwlist, &object))
- return NULL;
-
- if (G_UNLIKELY (object == NULL))
- type = NULL;
- else if (PyString_Check (object))
- type = gdk_atom_intern (PyString_AsString (object), FALSE);
- else if (PyGdkAtom_Check (object))
- type = PyGdkAtom_Get (object);
- else
- {
- PyErr_SetString (PyExc_TypeError, "unable to convert argument to GdkAtom");
- return NULL;
- }
-
- result = exo_toolbars_model_get_item_type (EXO_TOOLBARS_MODEL (self->obj), type);
- if (G_LIKELY (result != NULL))
- {
- object = PyString_FromString (result);
- g_free (result);
- }
- else
- {
- object = Py_None;
- Py_INCREF (Py_None);
- }
-
- return object;
-}
-
-%%
-override exo_toolbars_model_item_nth kwargs
-static PyObject*
-_wrap_exo_toolbars_model_item_nth (PyGObject *self,
- PyObject *args,
- PyObject *kwargs)
-{
- static char *kwlist[] = { "toolbar_position", "item_position", NULL };
- const gchar *type;
- const gchar *id;
- gboolean is_separator;
- gint toolbar_position;
- gint item_position;
-
-
- if (!PyArg_ParseTupleAndKeywords (args, kwargs,
- "ii:ExoToolbarsModel.item_nth",
- kwlist, &toolbar_position, &item_position))
- return NULL;
-
- exo_toolbars_model_item_nth (EXO_TOOLBARS_MODEL (self->obj),
- toolbar_position, item_position,
- &is_separator, &id, &type);
-
- return Py_BuildValue ("(iss)", is_separator, id, type);
-}
-
-%%
-override exo_xsession_client_get_restart_command
-static PyObject*
-_wrap_exo_xsession_client_get_restart_command (PyGObject *self)
-{
- PyObject *result;
- PyObject *value;
- gchar **argv;
- gint argc;
- gint n;
-
- if (exo_xsession_client_get_restart_command (EXO_XSESSION_CLIENT (self->obj),
- &argv, &argc))
- {
- result = PyList_New (0);
- if (G_UNLIKELY (result == NULL))
- return NULL;
-
- for (n = 0; n < argc; ++n)
- {
- value = Py_BuildValue ("s", argv[n]);
- PyList_Append (result, value);
- Py_DECREF (value);
- }
-
- g_strfreev (argv);
- }
- else
- {
- Py_INCREF (Py_None);
- result = Py_None;
- }
-
- return result;
-}
-
-%%
-override exo_xsession_client_set_restart_command kwargs
-static PyObject*
-_wrap_exo_xsession_client_set_restart_command (PyGObject *self,
- PyObject *args,
- PyObject *kwargs)
-{
- static char *kwlist[] = { "args", NULL };
- PyObject *sequence;
- PyObject *item;
- gchar **argv;
- gint argc;
- gint n;
-
- if (!PyArg_ParseTupleAndKeywords (args, kwargs,
- "0:ExoXsessionClient.set_restart_command",
- kwlist, &sequence))
- return NULL;
-
- if (!PySequence_Check (sequence))
- {
- PyErr_SetString (PyExc_TypeError, "first argument must be a sequence");
- return NULL;
- }
-
- argc = PySequence_Length (sequence);
- argv = g_new0 (gchar *, argc + 1);
-
- for (n = 0; n < argc; ++n)
- {
- item = PySequence_GetItem (sequence, n);
- Py_DECREF (item);
-
- if (!PyString_Check (item) && !PyUnicode_Check (item))
- {
- PyErr_SetString (PyExc_TypeError, "sequence item "
- "not a string or unicode object");
- g_strfreev (argv);
- return NULL;
- }
-
- argv[n] = g_strdup (PyString_AsString (item));
- }
-
- exo_xsession_client_set_restart_command (EXO_XSESSION_CLIENT (self->obj),
- argv, argc);
- g_strfreev (argv);
-
- Py_INCREF (Py_None);
- return Py_None;
-}
diff --git a/python/exomodule.c b/python/exomodule.c
deleted file mode 100644
index 8c488a6..0000000
--- a/python/exomodule.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/*-
- * Copyright (c) 2005-2006 os-cillation e.K.
- *
- * Written by Benedikt Meurer <benny at xfce.org>.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "pyexo.h"
-
-
-G_MODULE_EXPORT void init_exo (void);
-/* mark internal symbols with G_GNUC_INTERNAL */
-G_GNUC_INTERNAL void exo_add_constants (PyObject *module,
- const gchar *strip_prefix);
-G_GNUC_INTERNAL void exo_register_classes (PyObject *d);
-
-extern PyMethodDef exo_functions[];
-
-
-/* Unfortunately pygtk doesn't export the following functions,
- * that are required for the IconView, so we have to duplicate
- * them here.
- */
-#if !defined(pygtk_tree_path_from_pyobject)
-GtkTreePath*
-pygtk_tree_path_from_pyobject (PyObject *object)
-{
- if (PyString_Check(object))
- {
- GtkTreePath *path;
-
- path = gtk_tree_path_new_from_string (PyString_AsString (object));
- return path;
- }
- else if (PyInt_Check(object))
- {
- GtkTreePath *path;
-
- path = gtk_tree_path_new();
- gtk_tree_path_append_index(path, PyInt_AsLong(object));
- return path;
- }
- else if (PyTuple_Check(object))
- {
- GtkTreePath *path;
- guint len, i;
-
- len = PyTuple_Size(object);
- if (len < 1)
- return NULL;
-
- path = gtk_tree_path_new();
- for (i = 0; i < len; i++)
- {
- PyObject *item = PyTuple_GetItem(object, i);
- gint index = PyInt_AsLong(item);
-
- if (PyErr_Occurred())
- {
- gtk_tree_path_free(path);
- PyErr_Clear();
- return NULL;
- }
- gtk_tree_path_append_index(path, index);
- }
-
- return path;
- }
-
- return NULL;
-}
-#endif
-
-#if !defined(pygtk_tree_path_to_pyobject)
-PyObject*
-pygtk_tree_path_to_pyobject (GtkTreePath *path)
-{
- gint len, i, *indices;
- PyObject *ret;
-
- len = gtk_tree_path_get_depth (path);
- indices = gtk_tree_path_get_indices (path);
-
- ret = PyTuple_New (len);
- for (i = 0; i < len; i++)
- PyTuple_SetItem (ret, i, PyInt_FromLong (indices[i]));
- return ret;
-}
-#endif
-
-
-
-G_MODULE_EXPORT void
-init_exo (void)
-{
- PyObject *d;
- PyObject *m;
-
- init_pygobject ();
-
- m = Py_InitModule ("_exo", exo_functions);
- d = PyModule_GetDict (m);
-
- exo_register_classes (d);
- exo_add_constants (m, "EXO_");
-
- if (PyErr_Occurred ())
- {
- Py_FatalError ("cannot initialize module _exo");
- return;
- }
-
- /* register additional types */
-#define REGISTER_TYPE(type, name) \
- type.ob_type = &PyType_Type; \
- type.tp_alloc = PyType_GenericAlloc; \
- type.tp_new = PyType_GenericNew; \
- if (PyType_Ready (&type)) \
- return; \
- PyDict_SetItemString (d, name, (PyObject *) &type);
-
- REGISTER_TYPE (PyExoBinding_Type, "Binding");
- REGISTER_TYPE (PyExoMutualBinding_Type, "MutualBinding");
-
-#undef REGISTER_TYPE
-
-#if GTK_CHECK_VERSION (2, 18, 0)
- /* use exo about dialog hook by default */
- gtk_about_dialog_set_email_hook (exo_gtk_url_about_dialog_hook, NULL, NULL);
- gtk_about_dialog_set_url_hook (exo_gtk_url_about_dialog_hook, NULL, NULL);
-#endif
-}
diff --git a/python/pyexo.h b/python/pyexo.h
deleted file mode 100644
index 6c89fc5..0000000
--- a/python/pyexo.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*-
- * Copyright (c) 2005-2006 os-cillation e.K.
- *
- * Written by Benedikt Meurer <benny at xfce.org>.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __PYEXO_H__
-#define __PYEXO_H__
-
-#include <pygobject.h>
-#include <pygtk/pygtk.h>
-
-#include <exo/exo.h>
-
-G_BEGIN_DECLS
-
-/* ---------- ExoBinding ---------- */
-typedef struct
-{
- PyObject_HEAD;
- ExoBinding *binding;
- PyObject *transform_func;
-} PyExoBinding;
-
-extern PyTypeObject PyExoBinding_Type;
-
-/* ---------- ExoMutualBinding ---------- */
-typedef struct
-{
- PyObject_HEAD;
- ExoMutualBinding *binding;
- PyObject *transform_func;
- PyObject *rtransform_func;
-} PyExoMutualBinding;
-
-extern PyTypeObject PyExoMutualBinding_Type;
-
-/* ---------- PyGTK helpers ---------- */
-#if !defined(pygtk_tree_path_from_pyobject)
-G_GNUC_INTERNAL GtkTreePath *pygtk_tree_path_from_pyobject (PyObject *object);
-#endif
-
-#if !defined(pygtk_tree_path_to_pyobject)
-G_GNUC_INTERNAL PyObject *pygtk_tree_path_to_pyobject (GtkTreePath *path);
-#endif
-
-G_END_DECLS
-
-#endif /* !__PYEXO_H__ */
diff --git a/python/pyexo.py b/python/pyexo.py
deleted file mode 100644
index a05f099..0000000
--- a/python/pyexo.py
+++ /dev/null
@@ -1,87 +0,0 @@
-# vim:set ts=4 sw=4 et ai syntax=python:
-#
-# Copyright (c) 2005 os-cillation
-# Copyright (c) 1998-2002 James Henstridge
-#
-# Written by Benedikt Meurer <benny at xfce.org>.
-#
-# This library 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 2.1 of the License, or (at your option) any later version.
-#
-# This library 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 library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-# USA
-#
-
-import fnmatch
-import glob
-import os
-import sys
-
-__all__ = ['require']
-
-_pyexo_dir_pattern = 'exo-[0-9].[0-9]'
-_pyexo_required_version = None
-
-def _get_available_versions():
- versions = {}
- for dir in sys.path:
- if not dir:
- dir = os.getcwd()
-
- if not os.path.isdir(dir):
- continue
-
- # if the dir is a pyexo dir, skip it
- if fnmatch.fnmatchcase(os.path.basename(dir), _pyexo_dir_pattern):
- continue
-
- for filename in glob.glob(os.path.join(dir, _pyexo_dir_pattern)):
- pathname = os.path.join(dir, filename)
-
- # skip non directories
- if not os.path.isdir(pathname):
- continue
-
- # skip empty directories
- if not os.listdir(pathname):
- continue
-
- if not versions.has_key(filename[-3:]):
- versions[filename[-3:]] = pathname
-
- return versions
-
-
-def require(version):
- global _pyexo_required_version
-
- if _pyexo_required_version != None:
- assert _pyexo_required_version == version, \
- "a different version of exo was already required"
- return
-
- assert not sys.modules.has_key('exo'), \
- "pyexo.require() must be called before importing exo"
-
- versions = _get_available_versions()
- assert versions.has_key(version), \
- "required version '%s' not found on system" % version
-
- # remove any pyexo dirs first ...
- for dir in sys.path:
- if fnmatch.fnmatchcase(os.path.basename(dir), _pyexo_dir_pattern):
- sys.path.remove(dir)
-
- # prepend the pyexo path ...
- sys.path.insert(0, versions[version])
-
- _pyexo_required_version = version
diff --git a/python/pyexobinding.c b/python/pyexobinding.c
deleted file mode 100644
index aad4df2..0000000
--- a/python/pyexobinding.c
+++ /dev/null
@@ -1,629 +0,0 @@
-/*-
- * Copyright (c) 2005-2006 os-cillation e.K.
- *
- * Written by Benedikt Meurer <benny at xfce.org>.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "pyexo.h"
-
-
-
-static void pyexo_binding_dealloc (PyExoBinding *self);
-static gint pyexo_binding_compare (PyExoBinding *self,
- PyExoBinding *other);
-static glong pyexo_binding_hash (PyExoBinding *self);
-static PyObject *pyexo_binding_repr (PyExoBinding *self);
-static gint pyexo_binding_init (PyExoBinding *self,
- PyObject *args,
- PyObject *kwargs);
-static PyObject *pyexo_binding_is_bound (PyExoBinding *self);
-static PyObject *pyexo_binding_unbind (PyExoBinding *self);
-static void pyexo_binding_destroy (PyExoBinding *self);
-static gboolean pyexo_binding_transform (const GValue *src_value,
- GValue *dst_value,
- PyExoBinding *self);
-static void pyexo_mutual_binding_dealloc (PyExoMutualBinding *self);
-static gint pyexo_mutual_binding_compare (PyExoMutualBinding *self,
- PyExoMutualBinding *other);
-static glong pyexo_mutual_binding_hash (PyExoMutualBinding *self);
-static PyObject *pyexo_mutual_binding_repr (PyExoMutualBinding *self);
-static gint pyexo_mutual_binding_init (PyExoMutualBinding *self,
- PyObject *args,
- PyObject *kwargs);
-static PyObject *pyexo_mutual_binding_is_bound (PyExoMutualBinding *self);
-static PyObject *pyexo_mutual_binding_unbind (PyExoMutualBinding *self);
-static void pyexo_mutual_binding_destroy (PyExoMutualBinding *self);
-static gboolean pyexo_mutual_binding_transform (const GValue *src_value,
- GValue *dst_value,
- PyExoMutualBinding *self);
-static gboolean pyexo_mutual_binding_rtransform (const GValue *src_value,
- GValue *dst_value,
- PyExoMutualBinding *self);
-
-
-
-static PyMethodDef pyexo_binding_methods[] =
-{
- { "is_bound", (PyCFunction) pyexo_binding_is_bound, METH_NOARGS, },
- { "unbind", (PyCFunction) pyexo_binding_unbind, METH_NOARGS, },
- { NULL, NULL, 0, },
-};
-
-static PyMethodDef pyexo_mutual_binding_methods[] =
-{
- { "is_bound", (PyCFunction) pyexo_mutual_binding_is_bound, METH_NOARGS, },
- { "unbind", (PyCFunction) pyexo_mutual_binding_unbind, METH_NOARGS, },
- { NULL, NULL, 0, },
-};
-
-
-
-PyTypeObject PyExoBinding_Type =
-{
- PyObject_HEAD_INIT(NULL)
- 0,
- "exo.Binding",
- sizeof (PyExoBinding),
- 0,
- (destructor) pyexo_binding_dealloc,
- (printfunc) NULL,
- (getattrfunc) NULL,
- (setattrfunc) NULL,
- (cmpfunc) pyexo_binding_compare,
- (reprfunc) pyexo_binding_repr,
- 0,
- 0,
- 0,
- (hashfunc) pyexo_binding_hash,
- (ternaryfunc) NULL,
- (reprfunc) NULL,
- (getattrofunc) NULL,
- (setattrofunc) NULL,
- 0,
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
- NULL,
- (traverseproc) NULL,
- (inquiry) NULL,
- (richcmpfunc) NULL,
- 0,
- (getiterfunc) NULL,
- (iternextfunc) NULL,
- pyexo_binding_methods,
- 0,
- 0,
- NULL,
- NULL,
- (descrgetfunc) NULL,
- (descrsetfunc) NULL,
- 0,
- (initproc) pyexo_binding_init,
-};
-
-PyTypeObject PyExoMutualBinding_Type =
-{
- PyObject_HEAD_INIT(NULL)
- 0,
- "exo.MutualBinding",
- sizeof (PyExoMutualBinding),
- 0,
- (destructor) pyexo_mutual_binding_dealloc,
- (printfunc) NULL,
- (getattrfunc) NULL,
- (setattrfunc) NULL,
- (cmpfunc) pyexo_mutual_binding_compare,
- (reprfunc) pyexo_mutual_binding_repr,
- 0,
- 0,
- 0,
- (hashfunc) pyexo_mutual_binding_hash,
- (ternaryfunc) NULL,
- (reprfunc) NULL,
- (getattrofunc) NULL,
- (setattrofunc) NULL,
- 0,
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
- NULL,
- (traverseproc) NULL,
- (inquiry) NULL,
- (richcmpfunc) NULL,
- 0,
- (getiterfunc) NULL,
- (iternextfunc) NULL,
- pyexo_mutual_binding_methods,
- 0,
- 0,
- NULL,
- NULL,
- (descrgetfunc) NULL,
- (descrsetfunc) NULL,
- 0,
- (initproc) pyexo_mutual_binding_init,
-};
-
-
-
-static void
-pyexo_binding_dealloc (PyExoBinding *self)
-{
- /* release transform func */
- Py_XDECREF (self->transform_func);
-
- PyObject_Del (self);
-}
-
-
-
-static gint
-pyexo_binding_compare (PyExoBinding *self,
- PyExoBinding *other)
-{
- if (self->binding == other->binding)
- return 0;
- else if (self->binding > other->binding)
- return -1;
- else
- return 1;
-}
-
-
-
-static glong
-pyexo_binding_hash (PyExoBinding *self)
-{
- return (glong) self->binding;
-}
-
-
-
-static PyObject*
-pyexo_binding_repr (PyExoBinding *self)
-{
- gchar repr[128];
- g_snprintf (repr, sizeof (repr), "<Binding at 0x%lx>", (glong) self->binding);
- return PyString_FromString (repr);
-}
-
-
-
-static gint
-pyexo_binding_init (PyExoBinding *self,
- PyObject *args,
- PyObject *kwargs)
-{
-
- const gchar *kwlist[] = { "src_object", "src_property", "dst_object", "dst_property", "transform_func", NULL };
- const gchar *src_property;
- const gchar *dst_property;
- PyObject *transform_func = Py_None;
- PyObject *gobject_module;
- PyObject *gobject_type;
- PyObject *src_object;
- PyObject *dst_object;
- gchar *message;
-
- /* parse the constructor arguments */
- if (!PyArg_ParseTupleAndKeywords (args, kwargs, "OsOs|O:Binding.__init__", (gchar **) kwlist,
- &src_object, &src_property, &dst_object, &dst_property,
- &transform_func))
- {
- return -1;
- }
-
- /* import module gobject */
- gobject_module = PyImport_ImportModule ("gobject");
- if (G_UNLIKELY (gobject_module == NULL))
- {
- PyErr_SetString (PyExc_ImportError, "could not import gobject");
- return -1;
- }
-
- /* lookup type gobject.GObject */
- gobject_type = PyDict_GetItemString (PyModule_GetDict (gobject_module), "GObject");
- if (G_UNLIKELY (gobject_type == NULL))
- {
- PyErr_SetString (PyExc_ImportError, "cannot import name GObject from gobject");
- return -1;
- }
-
- /* validate the constructor arguments */
- if (!pygobject_check (src_object, (PyTypeObject *) gobject_type) || src_object == Py_None)
- {
- PyErr_SetString (PyExc_TypeError, "src_object must be a gobject.GObject");
- return -1;
- }
- else if (!pygobject_check (dst_object, (PyTypeObject *) gobject_type) || dst_object == Py_None)
- {
- PyErr_SetString (PyExc_TypeError, "dst_object must be a gobject.GObject");
- return -1;
- }
- else if (transform_func != Py_None && !PyCallable_Check (transform_func))
- {
- PyErr_SetString (PyExc_TypeError, "transform_func must be a callback object or None");
- return -1;
- }
-
- /* setup transform func */
- self->transform_func = transform_func;
- Py_INCREF (transform_func);
-
- /* allocate the binding */
- self->binding = exo_binding_new_full (pygobject_get (src_object), src_property, pygobject_get (dst_object), dst_property,
- (transform_func != Py_None) ? (ExoBindingTransform) pyexo_binding_transform : NULL,
- (GDestroyNotify) pyexo_binding_destroy, self);
- if (G_UNLIKELY (self->binding == NULL))
- {
- message = g_strdup_printf ("cannot bind property %s to property %s", src_property, dst_property);
- PyErr_SetString (PyExc_TypeError, message);
- g_free (message);
- return -1;
- }
-
- /* take a reference, which will be released
- * when the real binding is destroyed.
- */
- Py_INCREF (self);
-
- return 0;
-}
-
-
-
-static PyObject*
-pyexo_binding_is_bound (PyExoBinding *self)
-{
- return PyBool_FromLong (self->binding != NULL);
-}
-
-
-
-static PyObject*
-pyexo_binding_unbind (PyExoBinding *self)
-{
- /* check if the binding is still active */
- if (G_LIKELY (self->binding != NULL))
- exo_binding_unbind (self->binding);
-
- Py_INCREF (Py_None);
- return Py_None;
-}
-
-
-
-static void
-pyexo_binding_destroy (PyExoBinding *self)
-{
- /* make sure that the binding was still active */
- if (G_LIKELY (self->binding != NULL))
- {
- /* reset to indicate that its invalid now */
- self->binding = NULL;
-
- /* release the extra reference on the Python object */
- Py_DECREF (self);
- }
-}
-
-
-
-static gboolean
-pyexo_binding_transform (const GValue *src_value,
- GValue *dst_value,
- PyExoBinding *self)
-{
- PyGILState_STATE state;
- gboolean result = FALSE;
- PyObject *src_object;
- PyObject *dst_object;
-
- state = pyg_gil_state_ensure ();
-
- src_object = pyg_value_as_pyobject (src_value, TRUE);
- if (G_LIKELY (src_object != NULL))
- {
- dst_object = PyEval_CallFunction (self->transform_func, "(O)", src_object);
- if (G_UNLIKELY (dst_object == NULL))
- {
- PyErr_Print ();
- }
- else
- {
- /* try to transform the result */
- result = (pyg_value_from_pyobject (dst_value, dst_object) == 0);
-
- /* release the result */
- Py_DECREF (dst_object);
- }
-
- Py_DECREF (src_object);
- }
- else
- {
- PyErr_Print ();
- }
-
- pyg_gil_state_release (state);
-
- return result;
-}
-
-
-
-static void
-pyexo_mutual_binding_dealloc (PyExoMutualBinding *self)
-{
- /* release reverse transform func */
- Py_XDECREF (self->rtransform_func);
-
- /* release transform func */
- Py_XDECREF (self->transform_func);
-
- PyObject_Del (self);
-}
-
-
-
-static gint
-pyexo_mutual_binding_compare (PyExoMutualBinding *self,
- PyExoMutualBinding *other)
-{
- if (self->binding == other->binding)
- return 0;
- else if (self->binding > other->binding)
- return -1;
- else
- return 1;
-}
-
-
-
-static glong
-pyexo_mutual_binding_hash (PyExoMutualBinding *self)
-{
- return (glong) self->binding;
-}
-
-
-
-static PyObject*
-pyexo_mutual_binding_repr (PyExoMutualBinding *self)
-{
- gchar repr[128];
- g_snprintf (repr, sizeof (repr), "<MutualBinding at 0x%lx>", (glong) self->binding);
- return PyString_FromString (repr);
-}
-
-
-
-static gint
-pyexo_mutual_binding_init (PyExoMutualBinding *self,
- PyObject *args,
- PyObject *kwargs)
-{
- const gchar *kwlist[] = { "src_object", "src_property", "dst_object", "dst_property", "transform_func", "reverse_transform_func", NULL };
- const gchar *src_property;
- const gchar *dst_property;
- PyObject *rtransform_func = Py_None;
- PyObject *transform_func = Py_None;
- PyObject *gobject_module;
- PyObject *gobject_type;
- PyObject *src_object;
- PyObject *dst_object;
- gchar *message;
-
- /* parse the constructor arguments */
- if (!PyArg_ParseTupleAndKeywords (args, kwargs, "OsOs|OO:MutualBinding.__init__", (gchar **) kwlist,
- &src_object, &src_property, &dst_object, &dst_property,
- &transform_func, &rtransform_func))
- {
- return -1;
- }
-
- /* import module gobject */
- gobject_module = PyImport_ImportModule ("gobject");
- if (G_UNLIKELY (gobject_module == NULL))
- {
- PyErr_SetString (PyExc_ImportError, "could not import gobject");
- return -1;
- }
-
- /* lookup type gobject.GObject */
- gobject_type = PyDict_GetItemString (PyModule_GetDict (gobject_module), "GObject");
- if (G_UNLIKELY (gobject_type == NULL))
- {
- PyErr_SetString (PyExc_ImportError, "cannot import name GObject from gobject");
- return -1;
- }
-
- /* validate the constructor arguments */
- if (!pygobject_check (src_object, (PyTypeObject *) gobject_type) || src_object == Py_None)
- {
- PyErr_SetString (PyExc_TypeError, "src_object must be a gobject.GObject");
- return -1;
- }
- else if (!pygobject_check (dst_object, (PyTypeObject *) gobject_type) || dst_object == Py_None)
- {
- PyErr_SetString (PyExc_TypeError, "dst_object must be a gobject.GObject");
- return -1;
- }
- else if (transform_func != Py_None && !PyCallable_Check (transform_func))
- {
- PyErr_SetString (PyExc_TypeError, "transform_func must be a callable object or None");
- return -1;
- }
- else if (rtransform_func != Py_None && !PyCallable_Check (rtransform_func))
- {
- PyErr_SetString (PyExc_TypeError, "reverse_transform_func must be a callable object or None");
- return -1;
- }
-
- /* setup transform func */
- self->transform_func = transform_func;
- Py_INCREF (self->transform_func);
-
- /* setup reverse transform func */
- self->rtransform_func = rtransform_func;
- Py_INCREF (self->rtransform_func);
-
- /* allocate the binding */
- self->binding = exo_mutual_binding_new_full (pygobject_get (src_object), src_property, pygobject_get (dst_object), dst_property,
- (transform_func != Py_None) ? (ExoBindingTransform) pyexo_mutual_binding_transform : NULL,
- (rtransform_func != Py_None) ? (ExoBindingTransform) pyexo_mutual_binding_rtransform : NULL,
- (GDestroyNotify) pyexo_mutual_binding_destroy, self);
- if (G_UNLIKELY (self->binding == NULL))
- {
- message = g_strdup_printf ("cannot bind property %s to property %s", src_property, dst_property);
- PyErr_SetString (PyExc_TypeError, message);
- g_free (message);
- return -1;
- }
-
- /* take a reference, which will be released
- * when the real binding is destroyed.
- */
- Py_INCREF (self);
-
- return 0;
-}
-
-
-
-static PyObject*
-pyexo_mutual_binding_is_bound (PyExoMutualBinding *self)
-{
- return PyBool_FromLong (self->binding != NULL);
-}
-
-
-
-static PyObject*
-pyexo_mutual_binding_unbind (PyExoMutualBinding *self)
-{
- /* check if the binding is still active */
- if (G_LIKELY (self->binding != NULL))
- exo_mutual_binding_unbind (self->binding);
-
- Py_INCREF (Py_None);
- return Py_None;
-}
-
-
-
-static void
-pyexo_mutual_binding_destroy (PyExoMutualBinding *self)
-{
- /* make sure that the binding was still active */
- if (G_LIKELY (self->binding != NULL))
- {
- /* reset to indicate that its invalid now */
- self->binding = NULL;
-
- /* release the extra reference on the Python object */
- Py_DECREF (self);
- }
-}
-
-
-
-static gboolean
-pyexo_mutual_binding_transform (const GValue *src_value,
- GValue *dst_value,
- PyExoMutualBinding *self)
-{
- PyGILState_STATE state;
- gboolean result = FALSE;
- PyObject *src_object;
- PyObject *dst_object;
-
- state = pyg_gil_state_ensure ();
-
- src_object = pyg_value_as_pyobject (src_value, TRUE);
- if (G_LIKELY (src_object != NULL))
- {
- dst_object = PyEval_CallFunction (self->transform_func, "(O)", src_object);
- if (G_UNLIKELY (dst_object == NULL))
- {
- PyErr_Print ();
- }
- else
- {
- /* try to transform the result */
- result = (pyg_value_from_pyobject (dst_value, dst_object) == 0);
-
- /* release the result */
- Py_DECREF (dst_object);
- }
-
- Py_DECREF (src_object);
- }
- else
- {
- PyErr_Print ();
- }
-
- pyg_gil_state_release (state);
-
- return result;
-}
-
-
-
-static gboolean
-pyexo_mutual_binding_rtransform (const GValue *src_value,
- GValue *dst_value,
- PyExoMutualBinding *self)
-{
- PyGILState_STATE state;
- gboolean result = FALSE;
- PyObject *src_object;
- PyObject *dst_object;
-
- state = pyg_gil_state_ensure ();
-
- src_object = pyg_value_as_pyobject (src_value, TRUE);
- if (G_LIKELY (src_object != NULL))
- {
- dst_object = PyEval_CallFunction (self->rtransform_func, "(O)", src_object);
- if (G_UNLIKELY (dst_object == NULL))
- {
- PyErr_Print ();
- }
- else
- {
- /* try to transform the result */
- result = (pyg_value_from_pyobject (dst_value, dst_object) == 0);
-
- /* release the result */
- Py_DECREF (dst_object);
- }
-
- Py_DECREF (src_object);
- }
- else
- {
- PyErr_Print ();
- }
-
- pyg_gil_state_release (state);
-
- return result;
-}
-
More information about the Xfce4-commits
mailing list