[packages/python-mate-desktop] - for old MATE compatibility

qboosh qboosh at pld-linux.org
Sat Jan 18 10:42:26 CET 2014


commit 0479540611c2f5971bf394e829cf232230b0f87b
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sat Jan 18 10:42:03 2014 +0100

    - for old MATE compatibility

 python-mate-desktop-atril.patch |  11 ++
 python-mate-desktop-panel.patch | 399 ++++++++++++++++++++++++++++++++++++++++
 python-mate-desktop.spec        | 277 ++++++++++++++++++++++++++++
 3 files changed, 687 insertions(+)
---
diff --git a/python-mate-desktop.spec b/python-mate-desktop.spec
new file mode 100644
index 0000000..cc5aad2
--- /dev/null
+++ b/python-mate-desktop.spec
@@ -0,0 +1,277 @@
+# NOTE: it's deprecated package, a binding for MATE <= 1.4 APIs;
+# when built with MATE 1.6 panel library, some applet APIs are no longer available
+#
+# Conditional build:
+%bcond_with	mate14	# build with pure MATE Desktop <= 1.4 libraries
+#
+Summary:	Python bindings for MATE Desktop libraries
+Summary(pl.UTF-8):	Wiązania Pythona do bibliotek środowiska MATE Desktop
+Name:		python-mate-desktop
+Version:	1.4.0
+Release:	1
+License:	LGPL v2.1+/GPL v2+ depending on module (see COPYING)
+Group:		Libraries/Python
+Source0:	http://pub.mate-desktop.org/releases/1.4/%{name}-%{version}.tar.xz
+# Source0-md5:	c6c2c168ecf532c31c38d4714cb09c7f
+Patch0:		%{name}-panel.patch
+Patch1:		%{name}-atril.patch
+URL:		http://mate-desktop.org/
+BuildRequires:	autoconf >= 2.52
+BuildRequires:	automake >= 1:1.9
+BuildRequires:	glib2-devel >= 1:2.6.0
+BuildRequires:	gtk+2-devel >= 2:2.4.0
+BuildRequires:	libmate-devel >= 1.1.0
+BuildRequires:	libmatekeyring-devel >= 1.1.0
+BuildRequires:	libmateui-devel >= 1.1.0
+BuildRequires:	libmatewnck-devel >= 1.3.0
+BuildRequires:	libtool >= 1:1.4.3
+BuildRequires:	mate-common
+BuildRequires:	mate-conf-devel >= 1.1.0
+BuildRequires:	mate-desktop-devel >= 1.1.0
+%{?with_mate14:BuildRequires:	mate-document-viewer-devel >= 1.1.0}
+%{?with_mate14:BuildRequires:	mate-document-viewer-devel < 1.5.0}
+%{!?with_mate14:BuildRequires:	mate-document-viewer-devel >= 1.5.0}
+%{?with_mate14:BuildRequires:	mate-panel-devel >= 1.1.0}
+%{?with_mate14:BuildRequires:	mate-panel-devel < 1.5.0}
+%{!?with_mate14:BuildRequires:	mate-panel-devel >= 1.5.0}
+BuildRequires:	mate-window-manager-devel >= 1.1.0
+BuildRequires:	python-devel >= 2.3
+BuildRequires:	python-mate-devel >= 1.1.0
+BuildRequires:	python-pygobject-devel >= 2.10.0
+BuildRequires:	python-pygtk-devel >= 2:2.10.3
+BuildRequires:	libmatecomponent-devel >= 1.1.0
+BuildRequires:	libmatecomponentui-devel >= 1.1.0
+BuildRequires:	libmatecanvas-devel >= 1.1.0
+BuildRequires:	libtool >= 1:1.4.3
+BuildRequires:	mate-common
+BuildRequires:	mate-conf-devel >= 1.1.0
+BuildRequires:	mate-vfs-devel >= 1.1.0
+BuildRequires:	pkgconfig
+BuildRequires:	popt-devel
+BuildRequires:	python-devel >= 2.2
+BuildRequires:	python-matecorba-devel >= 1.1.0
+BuildRequires:	python-pygobject-devel >= 2.17.0
+BuildRequires:	python-pygtk-devel >= 2:2.10.3
+BuildRequires:	rpm-pythonprov
+BuildRequires:	rpmbuild(macros) >= 1.197
+BuildRequires:	tar >= 1:1.22
+BuildRequires:	xz
+Requires:	libmate-libs >= 1.1.0
+Requires:	mate-desktop-libs >= 1.1.0
+Requires:	python-pygobject >= 2.10.0
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%define pydefsdir %(pkg-config --variable=defsdir pygtk-2.0)
+
+%description
+Python bindings for MATE Desktop libraries.
+
+%description -l pl.UTF-8
+Wiązania Pythona do bibliotek środowiska MATE Desktop.
+
+%package -n python-atril
+Summary:	Python binding to Atril (MATE Document Viewer) library
+Summary(pl.UTF-8):	Wiązanie Pythona do biblioteki Atril (przeglądarki dokumentów MATE)
+Group:		Libraries/Python
+Requires:	mate-document-viewer-libs >= 1.5.0
+# atexit
+Requires:	python-modules
+Requires:	python-pygobject >= 2.10.0
+Requires:	python-pygtk-gtk >= 2:2.10.3
+
+%description -n python-atril
+Python binding to Atril (MATE Document Viewer) library.
+
+%description -n python-atril -l pl.UTF-8
+Wiązanie Pythona do biblioteki Atril (przeglądarki dokumentów MATE).
+
+%package -n python-marco
+Summary:	Python binding to Marco (MATE Window Manager) library
+Summary(pl.UTF-8):	Wiązanie Pythona do biblioteki Marco (zarządcy okien MATE)
+Group:		Libraries/Python
+Requires:	mate-window-manager-libs >= 1.1.0
+Requires:	python-pygobject >= 2.10.0
+Requires:	python-pygtk-gtk >= 2:2.10.3
+Requires:	python-pygtk-pango >= 2:2.10.3
+
+%description -n python-marco
+Python binding to Marco (MATE Window Manager) library.
+
+%description -n python-marco -l pl.UTF-8
+Wiązanie Pythona do biblioteki Marco (zarządcy okien MATE).
+
+%package -n python-mate-applet
+Summary:	Python binding to MATE Panel Applet library
+Summary(pl.UTF-8):	Wiązanie Pythona do biblioteki apletów panelu MATE
+Group:		Libraries/Python
+Requires:	libmate-libs >= 1.1.0
+Requires:	libmateui >= 1.1.0
+Requires:	mate-panel-libs >= 1.1.0
+Requires:	python-mate >= 1.1.0
+Requires:	python-mate-component-ui >= 1.1.0
+Requires:	python-pygobject >= 2.10.0
+Requires:	python-pygtk-gtk >= 2:2.10.3
+
+%description -n python-mate-applet
+Python binding to MATE Panel Applet library.
+
+%description -n python-mate-applet -l pl.UTF-8
+Wiązanie Pythona do biblioteki apletów panelu MATE.
+
+%package -n python-mate-keyring
+Summary:	Python binding to MATE Keyring library
+Summary(pl.UTF-8):	Wiązanie Pythona do biblioteki MATE Keyring
+Group:		Libraries/Python
+Requires:	libmatekeyring >= 1.1.0
+Requires:	python-pygobject >= 2.10.0
+
+%description -n python-mate-keyring
+Python binding to MATE Keyring library.
+
+%description -n python-mate-keyring -l pl.UTF-8
+Wiązanie Pythona do biblioteki MATE Keyring.
+
+%package -n python-mate-wnck
+Summary:	Python binding to MateWnck library
+Summary(pl.UTF-8):	Wiązanie Pythona do biblioteki MateWnck
+Group:		Libraries/Python
+Requires:	libmatewnck >= 1.3.0
+Requires:	python-pygobject >= 2.10.0
+Requires:	python-pygtk-gtk >= 2:2.10.3
+
+%description -n python-mate-wnck
+Python binding to MateWnck library.
+
+%description -n python-mate-wnck -l pl.UTF-8
+Wiązanie Pythona do biblioteki MateWnck.
+
+%package common
+Summary:	Common files for Python MATE Desktop bindings
+Summary(pl.UTF-8):	Pliki wspólne wiązań Pythona do biblioteka MATE Desktop
+Group:		Libraries/Python
+Requires:	python-mate-common >= 1.4
+
+%description common
+Common files for Python MATE Desktop bindings.
+
+%description common -l pl.UTF-8
+Pliki wspólne wiązań Pythona do bibliotek MATE Desktop.
+
+%package devel
+Summary:	Development files for Python MATE Desktop bindings
+Summary(pl.UTF-8):	Pliki programistyczne wiązań Pythona do bibliotek MATE Desktop
+Group:		Development/Libraries
+Requires:	%{name} = %{version}-%{release}
+Requires:	python-atril = %{version}-%{release}
+Requires:	python-marco = %{version}-%{release}
+Requires:	python-mate-applet = %{version}-%{release}
+Requires:	python-mate-keyring = %{version}-%{release}
+Requires:	python-mate-wnck = %{version}-%{release}
+Requires:	python-pygobject-devel >= 2.10.0
+Requires:	python-pygtk-devel >= 2:2.10.3
+
+%description devel
+Development files for Python MATE Desktop bindings.
+
+%description devel -l pl.UTF-8
+Pliki programistyczne wiązań Pythona do bibliotek MATE Desktop.
+
+%package apidocs
+Summary:	API documentation for Python MATE Desktop bindings
+Summary(pl.UTF-8):	Dokumentacja API wiązań Pythona do bibliotek MATE Desktop
+Group:		Documentation
+
+%description apidocs
+API documentation for Python MATE Desktop bindings.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API wiązań Pythona do bibliotek MATE Desktop.
+
+%prep
+%setup -q
+%{!?with_mate14:%patch0 -p1}
+%{!?with_mate14:%patch1 -p1}
+
+%build
+# NOTE: although configure.ac contains autotools build system deprecation note,
+# it's maintained in MATE unlike waf (and there won't be any "future version")
+%{__libtoolize}
+%{__aclocal} -I m4
+%{__autoconf}
+%{__autoheader}
+%{__automake}
+# fake broken condition (affects only printed summary)
+export have_pymatecorba=true
+# disable: bugbuddy, gtksourceview, gtop, mediaprofiles, rsvg, totem_plparser (these belong to python-gnome-desktop)
+# disable: mateprint, mateprintui (obsolete libraries, not released for MATE >= 1.1)
+%configure \
+	--disable-bugbuddy \
+	--enable-gtk-doc \
+	--disable-gtksourceview \
+	--disable-gtop \
+	--enable-marco \
+	--disable-mateprint \
+	--disable-mateprintui \
+	--disable-mediaprofiles \
+	--disable-rsvg \
+	--disable-totem_plparser \
+	--with-html-dir=%{_gtkdocdir}
+
+%{__make}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%{__make} install \
+	DESTDIR=$RPM_BUILD_ROOT \
+	HTML_DIR=%{_gtkdocdir}
+
+%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/gtk-2.0{,/matedesktop}/*.la
+%py_postclean
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(644,root,root,755)
+%dir %{py_sitedir}/gtk-2.0/matedesktop
+%attr(755,root,root) %{py_sitedir}/gtk-2.0/matedesktop/_matedesktop.so
+%{py_sitedir}/gtk-2.0/matedesktop/__init__.py[co]
+
+%files -n python-atril
+%defattr(644,root,root,755)
+%attr(755,root,root) %{py_sitedir}/gtk-2.0/atril.so
+
+%files -n python-marco
+%defattr(644,root,root,755)
+%attr(755,root,root) %{py_sitedir}/gtk-2.0/marco.so
+
+%files -n python-mate-applet
+%defattr(644,root,root,755)
+%attr(755,root,root) %{py_sitedir}/gtk-2.0/mateapplet.so
+%{py_sitedir}/gtk-2.0/mate/applet.py[co]
+
+%files -n python-mate-keyring
+%defattr(644,root,root,755)
+%attr(755,root,root) %{py_sitedir}/gtk-2.0/matekeyring.so
+
+%files -n python-mate-wnck
+%defattr(644,root,root,755)
+%attr(755,root,root) %{py_sitedir}/gtk-2.0/matewnck.so
+
+%files common
+%defattr(644,root,root,755)
+# note: COPYING specifies which license applies to particular modules
+%doc AUTHORS COPYING ChangeLog NEWS README
+
+%files devel
+%defattr(644,root,root,755)
+%{pydefsdir}/_matedesktop.defs
+%{pydefsdir}/applet.defs
+%{pydefsdir}/atril.defs
+%{pydefsdir}/marco.defs
+%{pydefsdir}/matekeyring.defs
+%{pydefsdir}/matewnck.defs
+%{_pkgconfigdir}/mate-python-desktop-2.0.pc
+
+#%files apidocs - only for mateprint and mateprintui, so not packaged
diff --git a/python-mate-desktop-atril.patch b/python-mate-desktop-atril.patch
new file mode 100644
index 0000000..42e06ae
--- /dev/null
+++ b/python-mate-desktop-atril.patch
@@ -0,0 +1,11 @@
+--- python-mate-desktop-1.4.0/configure.ac.orig	2014-01-13 19:58:05.435088228 +0100
++++ python-mate-desktop-1.4.0/configure.ac	2014-01-15 21:37:44.460918920 +0100
+@@ -367,7 +367,7 @@
+ dnl should we build the atril module
+ AC_ARG_BINDING([atril],[YES])
+ if $build_atril; then
+-    PKG_CHECK_MODULES(ATRIL, [atril-document-2.32 atril-view-2.32],
++    PKG_CHECK_MODULES(ATRIL, [atril-document-1.5.0 atril-view-1.5.0],
+       build_atril=true,
+       build_atril=false)
+     if test -n "$export_dynamic"; then
diff --git a/python-mate-desktop-panel.patch b/python-mate-desktop-panel.patch
new file mode 100644
index 0000000..ad92530
--- /dev/null
+++ b/python-mate-desktop-panel.patch
@@ -0,0 +1,399 @@
+--- python-mate-desktop-1.4.0/mateapplet/appletmodule.c.orig	2012-07-11 19:05:07.000000000 +0200
++++ python-mate-desktop-1.4.0/mateapplet/appletmodule.c	2014-01-13 16:55:49.312213846 +0100
+@@ -44,14 +44,6 @@
+     PyModule_AddIntConstant (m, "ORIENT_LEFT", MATE_PANEL_APPLET_ORIENT_LEFT);
+     PyModule_AddIntConstant (m, "ORIENT_RIGHT", MATE_PANEL_APPLET_ORIENT_RIGHT);
+ 
+-    PyModule_AddIntConstant (m, "SIZE_XX_SMALL", MATE_Vertigo_PANEL_XX_SMALL);
+-    PyModule_AddIntConstant (m, "SIZE_X_SMALL", MATE_Vertigo_PANEL_X_SMALL);
+-    PyModule_AddIntConstant (m, "SIZE_SMALL", MATE_Vertigo_PANEL_SMALL);
+-    PyModule_AddIntConstant (m, "SIZE_MEDIUM", MATE_Vertigo_PANEL_MEDIUM);
+-    PyModule_AddIntConstant (m, "SIZE_LARGE", MATE_Vertigo_PANEL_LARGE);
+-    PyModule_AddIntConstant (m, "SIZE_X_LARGE", MATE_Vertigo_PANEL_X_LARGE);
+-    PyModule_AddIntConstant (m, "SIZE_XX_LARGE", MATE_Vertigo_PANEL_XX_LARGE);
+-
+     PyModule_AddIntConstant (m, "EXPAND_MAJOR", MATE_PANEL_APPLET_EXPAND_MAJOR);
+     PyModule_AddIntConstant (m, "EXPAND_MINOR", MATE_PANEL_APPLET_EXPAND_MINOR);
+     PyModule_AddIntConstant (m, "HAS_HANDLE", MATE_PANEL_APPLET_HAS_HANDLE);
+--- python-mate-desktop-1.4.0/configure.ac.orig	2014-01-13 16:56:17.322212665 +0100
++++ python-mate-desktop-1.4.0/configure.ac	2014-01-12 21:48:21.931769757 +0100
+@@ -155,7 +155,7 @@
+ dnl should we build the mate.applet module?
+ AC_ARG_BINDING([applet],[YES],[mate.applet])
+ if $build_applet; then
+-	PKG_CHECK_MODULES(LIBPANELAPPLET, [libmatepanelapplet-2.0 >= libmatepanelapplet_required_version
++	PKG_CHECK_MODULES(LIBPANELAPPLET, [libmatepanelapplet-4.0 >= libmatepanelapplet_required_version
+ 					   mate-python-2.0 >= mate_python_required_version
+                                            libmate-2.0 libmateui-2.0],
+ 	  build_applet=true,
+--- python-mate-desktop-1.4.0/mateapplet/applet.defs.orig	2012-07-11 19:05:07.000000000 +0200
++++ python-mate-desktop-1.4.0/mateapplet/applet.defs	2014-01-13 19:55:31.348427942 +0100
+@@ -67,22 +67,6 @@
+   )
+ )
+ 
+-(define-method get_preferences_key
+-  (of-object "MatePanelApplet")
+-  (c-name "mate_panel_applet_get_preferences_key")
+-  (return-type "gchar*")
+-)
+-
+-(define-method add_preferences
+-  (of-object "MatePanelApplet")
+-  (c-name "mate_panel_applet_add_preferences")
+-  (return-type "none")
+-  (parameters
+-    '("const-gchar*" "schema_dir")
+-    '("GError**" "opt_error")
+-  )
+-)
+-
+ (define-method get_applet_flags
+   (of-object "MatePanelApplet")
+   (c-name "mate_panel_applet_get_flags")
+@@ -98,18 +82,6 @@
+   )
+ )
+ 
+-(define-method get_control
+-  (of-object "MatePanelApplet")
+-  (c-name "mate_panel_applet_get_control")
+-  (return-type "MateComponentControl*")
+-)
+-
+-(define-method get_popup_component
+-  (of-object "MatePanelApplet")
+-  (c-name "mate_panel_applet_get_popup_component")
+-  (return-type "MateComponentUIComponent*")
+-)
+-
+ (define-method request_focus
+   (of-object "MatePanelApplet")
+   (c-name "mate_panel_applet_request_focus")
+@@ -117,30 +89,6 @@
+   (parameters
+     '("guint32" "timestamp")))
+ 
+-(define-method setup_menu
+-  (of-object "MatePanelApplet")
+-  (c-name "mate_panel_applet_setup_menu")
+-  (return-type "none")
+-  (parameters
+-    '("const-gchar*" "xml")
+-    '("const-MateComponentUIVerb*" "verb_list")
+-    '("gpointer" "user_data")
+-  )
+-)
+-
+-(define-method setup_menu_from_file
+-  (of-object "MatePanelApplet")
+-  (c-name "mate_panel_applet_setup_menu_from_file")
+-  (return-type "none")
+-  (parameters
+-    '("const-gchar*" "opt_datadir")
+-    '("const-gchar*" "file")
+-    '("const-gchar*" "opt_app_name")
+-    '("const-MateComponentUIVerb*" "verb_list")
+-    '("gpointer" "user_data")
+-  )
+-)
+-
+ (define-method set_background_widget
+   (of-object "MatePanelApplet")
+   (c-name "mate_panel_applet_set_background_widget")
+@@ -150,74 +98,3 @@
+   )
+ )
+ 
+-(define-function factory_main
+-  (c-name "mate_panel_applet_factory_main")
+-  (return-type "int")
+-  (parameters
+-    '("const-gchar*" "iid")
+-    '("GType" "applet_type")
+-    '("MatePanelAppletFactoryCallback" "callback")
+-    '("gpointer" "data")
+-  )
+-)
+-
+-(define-function factory_main
+-  (c-name "mate_panel_applet_factory_main_closure")
+-  (return-type "int")
+-  (parameters
+-    '("const-gchar*" "iid")
+-    '("GType" "applet_type")
+-    '("GClosure*" "closure")
+-  )
+-)
+-
+-(define-function mate_panel_applet_shlib_factory
+-  (c-name "mate_panel_applet_shlib_factory")
+-  (return-type "MateComponent_Unknown")
+-  (parameters
+-    '("const-char*" "iid")
+-    '("GType" "applet_type")
+-    '("PortableServer_POA" "poa")
+-    '("gpointer" "impl_ptr")
+-    '("MatePanelAppletFactoryCallback" "callback")
+-    '("gpointer" "user_data")
+-    '("CORBA_Environment*" "ev")
+-  )
+-)
+-
+-(define-function mate_panel_applet_shlib_factory_closure
+-  (c-name "mate_panel_applet_shlib_factory_closure")
+-  (return-type "MateComponent_Unknown")
+-  (parameters
+-    '("const-char*" "iid")
+-    '("GType" "applet_type")
+-    '("PortableServer_POA" "poa")
+-    '("gpointer" "impl_ptr")
+-    '("GClosure*" "closure")
+-    '("CORBA_Environment*" "ev")
+-  )
+-)
+-
+-(define-function main
+-  (c-name "main")
+-  (return-type "int")
+-  (parameters
+-    '("int" "argc")
+-    '("char*-argv" "[]")
+-  )
+-)
+-
+-(define-function matecomponent_factory
+-  (c-name "panel__applet_matecomponent_factory")
+-  (return-type "none")
+-  (parameters
+-    '("char*" "iid")
+-    '("GType" "type")
+-    '("char*" "name")
+-    '("char*" "version")
+-    '("MatePanelAppletFactoryCallback" "callback")
+-    '("gpointer" "data")    
+-  )
+-)
+-
+-
+--- python-mate-desktop-1.4.0/mateapplet/applet.override.orig	2012-07-11 19:05:07.000000000 +0200
++++ python-mate-desktop-1.4.0/mateapplet/applet.override	2014-01-13 19:54:22.651764255 +0100
+@@ -26,218 +26,6 @@ import gtk.Widget as PyGtkWidget_Type
+ ignore-glob
+   *_get_type
+ %%
+-override mate_panel_applet_factory_main_closure kwargs
+-static PyObject*
+-_wrap_mate_panel_applet_factory_main_closure (PyGObject * self,
+-			                 PyObject *  args,
+-					 PyObject * kwargs)
+-{
+-    static char *kwlist[] = { "iid", "applet_type", "func", "extra_data", NULL };
+-    gchar *iid;
+-    PyObject *pytype;
+-    PyObject *callback;
+-    PyObject *params = NULL;
+-    GType type;
+-    int retval;
+-    
+-    if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+-				     "sOO|O:MatePanelAppletFactory.__init__",
+-				     kwlist, &iid, &pytype, &callback, &params)) {
+-        return NULL;
+-    }
+-
+-    if (!PyCallable_Check (callback)) {
+-        PyErr_SetString (PyExc_TypeError, "second arg not callable");
+-	return NULL;
+-    }
+-    
+-    type = pyg_type_from_object (pytype);
+-    
+-    pyg_begin_allow_threads;
+-    retval = mate_panel_applet_factory_main_closure (iid,
+-    	     				       	type,
+-                                                pyg_closure_new (callback, params, NULL));
+-    pyg_end_allow_threads;
+-    return PyInt_FromLong (retval);
+-}
+-%%
+-override panel__applet_matecomponent_factory kwargs
+-static PyObject *
+-_wrap_panel__applet_matecomponent_factory (PyGObject * self,
+- 			            PyObject *  args,
+-				    PyObject * kwargs)
+-{
+-	static char *kwlist[] = { "iid", "type", "name", "version", "func", "extra_data", NULL };
+-	gchar *iid;
+-	PyObject *pytype;
+-	gchar *name;
+-	gchar *version;
+-	PyObject *callback;
+-	PyObject *params = NULL;
+-	GType type;
+-	PyObject *av;
+-	int argc;
+-	char **argv;
+-	int i;
+-	
+-	if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+-					 "sOssO|O:mate.applet.matecomponent_factory",
+-					 kwlist, &iid, &pytype, &name, &version, &callback, &params)) {
+-		return NULL;
+-	}
+-	
+-	if (!PyCallable_Check (callback)) {
+-		PyErr_SetString (PyExc_TypeError, "second arg not callable");
+-		return NULL;
+-	}
+-	
+-	type = pyg_type_from_object (pytype);
+-	
+-	/* get argc and argv */
+-	av = PySys_GetObject ("argv");
+-	argc = PyList_Size (av);
+-	argv = g_new (char *, argc);
+-	for (i = 0; i < argc; i++) {
+-		argv[i] = g_strdup (PyString_AsString (PyList_GetItem (av, i)));
+-	}
+-	
+-	mate_program_init (name, version,     
+-			    LIBMATEUI_MODULE,             
+-			    argc, argv,                                         
+-			    MATE_PARAM_NONE,
+-                            MATE_CLIENT_PARAM_SM_CONNECT, FALSE,
+-			    NULL);            
+-
+-        pyg_begin_allow_threads;
+-        mate_panel_applet_factory_main_closure (iid,
+-	                                   type,
+-					   pyg_closure_new (callback, params, NULL));
+-        pyg_end_allow_threads;
+-	
+-	/* TODO: Check if it's really neccessary to set argc and argv here */
+-	PySys_SetArgv (argc, argv);
+-	if (argv != NULL) {
+-		for (i = 0; i < argc; i++)
+-			g_free (argv[i]);
+-		g_free (argv);
+-	}
+-	
+-	Py_INCREF (Py_None);
+-	return Py_None;
+-}
+-%%
+-override mate_panel_applet_setup_menu kwargs
+-static PyObject *
+-_wrap_mate_panel_applet_setup_menu (PyGObject * self,
+-			       PyObject *  args,
+-			       PyObject *  kwargs)
+-{
+-    static char *kwlist[] = { "xml", "list", "extra_data", NULL };
+-    gchar *             xml;
+-    PyObject *          list;
+-    PyObject *          params = NULL;
+-    MateComponentUIComponent * popup_component;
+-    int                 len, i;
+-    PyObject *          item;
+-    char *              cname;
+-    PyObject *          callback;
+-    
+-    if (!PyArg_ParseTupleAndKeywords (args, kwargs,
+-				      "sO|O:MatePanelApplet.setup_menu", 
+-				      kwlist, &xml, &list, &params)) {
+-	return NULL;
+-    }
+-
+-    if (!PySequence_Check (list)) {
+-	PyErr_SetString (PyExc_TypeError, "entries must be a sequence");
+-	return NULL;
+-    }
+-    
+-    /* Copied from mate-panel-applet.c */
+-    popup_component = mate_panel_applet_get_popup_component (MATE_PANEL_APPLET (self->obj));
+-	    
+-    matecomponent_ui_component_set (popup_component, "/", "<popups/>", NULL);
+- 
+-    matecomponent_ui_component_set_translate (popup_component, "/popups", xml, NULL);
+-    /* end copy */
+-    
+-    len = PySequence_Size (list);
+-    for (i = 0; i < len; i++) {
+-	item = PySequence_GetItem (list, i);
+-	Py_DECREF (item);
+-	
+-	if (!PyArg_ParseTuple (item, "sO", &cname, &callback)) {
+-	    return NULL;
+-	}
+-
+-	matecomponent_ui_component_add_verb_full (popup_component, cname,
+-					   pyg_closure_new (callback, params, NULL));
+-    }
+-
+-    Py_INCREF(Py_None);
+-    return Py_None;
+-}
+-%%
+-override mate_panel_applet_setup_menu_from_file kwargs
+-static PyObject *
+-_wrap_mate_panel_applet_setup_menu_from_file (PyGObject * self,
+-					 PyObject *  args,
+-					 PyObject *  kwargs)
+-{
+-    static char *kwlist[] = { "opt_datadir", "file", "opt_app_name", "list", "extra_data", NULL };
+-    gchar *             opt_datadir;
+-    gchar *             file;
+-    gchar *             opt_app_name;
+-    PyObject *          list;
+-    PyObject *          params = NULL;
+-    MateComponentUIComponent * popup_component;
+-    gchar *             app_name = NULL;
+-    int                 len, i;
+-    PyObject *          item;
+-    char *              cname;
+-    PyObject *          callback;
+-    
+-    if (!PyArg_ParseTupleAndKeywords (args, kwargs,
+-				      "zszO|O:MatePanelApplet.setup_menu_from_file", 
+-				      kwlist, &opt_datadir, &file, &opt_app_name, &list, &params)) {
+-	return NULL;
+-    }
+-
+-    if (!PySequence_Check (list)) {
+-	PyErr_SetString (PyExc_TypeError, "entries must be a sequence");
+-	return NULL;
+-    }
+-    
+-    /* Copied from mate-panel-applet.c */
+-    if (!opt_app_name)
+-	opt_app_name = app_name = g_strdup_printf ("%d", getpid ());
+-
+-    popup_component = mate_panel_applet_get_popup_component (MATE_PANEL_APPLET (self->obj));
+-
+-    matecomponent_ui_util_set_ui (popup_component, opt_datadir, file, opt_app_name, NULL);
+-    /* end copy */
+-    
+-    len = PySequence_Size (list);
+-    for (i = 0; i < len; i++) {
+-	item = PySequence_GetItem (list, i);
+-	Py_DECREF (item);
+-	
+-	if (!PyArg_ParseTuple (item, "sO", &cname, &callback)) {
+-	    return NULL;
+-	}
+-
+-	matecomponent_ui_component_add_verb_full (popup_component, cname,
+-					   pyg_closure_new (callback, params, NULL));
+-    }
+-    
+-    if (app_name) {
+-	g_free (app_name);
+-    }
+-    
+-    Py_INCREF(Py_None);
+-    return Py_None;
+-}
+-%%
+ override mate_panel_applet_new noargs
+ static int
+ _wrap_mate_panel_applet_new(PyGObject *self, PyObject *args, PyObject *kwargs)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/python-mate-desktop.git/commitdiff/0479540611c2f5971bf394e829cf232230b0f87b



More information about the pld-cvs-commit mailing list