[Xfce4-commits] <thunarx-python:master> Check python dependency better
Adam Plumb
noreply at xfce.org
Thu May 27 18:10:43 CEST 2010
Updating branch refs/heads/master
to 68c1b1b2b29ba507ebbdf942ec2c98b7113ff87b (commit)
from cbc0041f04a13e9786204b9f98d43e1d7a00f3a4 (commit)
commit 68c1b1b2b29ba507ebbdf942ec2c98b7113ff87b
Author: Adam Plumb <adamplumb at gmail.com>
Date: Thu Sep 17 21:11:08 2009 -0400
Check python dependency better
Makefile.am | 52 -----
configure.ac | 17 +-
src/.cvsignore | 5 -
src/Makefile.am | 3 +-
thunarx-python-object.c | 487 -----------------------------------------------
thunarx-python-object.h | 50 -----
thunarx-python.c | 365 -----------------------------------
thunarx-python.h | 79 --------
thunarx.defs | 320 -------------------------------
thunarx.override | 58 ------
thunarxmodule.c | 56 ------
11 files changed, 8 insertions(+), 1484 deletions(-)
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index 19d2c41..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1,52 +0,0 @@
-# $Id$
-
-INCLUDES = \
- -I$(top_builddir) \
- -I$(top_builddir)/plugins \
- -I$(top_srcdir) \
- -I$(top_srcdir)/plugins \
- -DBINDIR=\"$(bindir)\" \
- -DDATADIR=\"$(datadir)\" \
- -DG_LOG_DOMAIN=\"thunarx-python\" \
- -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \
- $(PLATFORM_CPPFLAGS)
-
-extensionsdir = $(libdir)/thunarx-$(THUNARX_VERSION_API)
-extensions_LTLIBRARIES = \
- thunarx-python.la
-
-thunarx-python_la_SOURCES = \
- thunarx-python-object.c \
- thunarx-python-object.h \
- thunarx-python.c \
- thunarx-python.h \
- thunarxmodule.c
-
-thunarx-python_la_CFLAGS = \
- $(EXO_CFLAGS) \
- $(LIBXFCE4UTIL_CFLAGS) \
- $(PLATFORM_CFLAGS)
-
-thunarx-python_la_LDFLAGS = \
- -avoid-version \
- -export-dynamic \
- -module \
- $(PLATFORM_LDFLAGS)
-
-defaultsdir = $(sysconfdir)/xdg/Thunar
-
-EXTRA_DIST = \
- README \
- nautilus.defs \
- nautilus.override
-
-.defs.c:
- (cd $(srcdir)\
- && $(PYGTK_CODEGEN) \
- --register $(PYGTK_DEFSDIR)/pango-types.defs \
- --register $(PYGTK_DEFSDIR)/gdk-types.defs \
- --register $(PYGTK_DEFSDIR)/gtk-types.defs \
- --override $*.override \
- --prefix py$* $*.defs) > gen-$*.c \
- && cp gen-$*.c $*.c \
- && rm -f gen-$*.c
diff --git a/configure.ac b/configure.ac
index fc6b3f2..c6e5859 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10,21 +10,18 @@ AC_CONFIG_HEADER([config.h])
# Checks for programs.
AC_PROG_CC
-# Check for Python
-AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)])
-AM_CHECK_PYTHON_LIBS(,[AC_MSG_ERROR(could not find Python lib)])
-
# Check for programs
PKG_CHECK_MODULES([THUNARX], [thunarx-1 >= 0.4.0])
PKG_CHECK_PACKAGE([GTK], [gtk+-2.0 >= 2.6.0])
PKG_CHECK_PACKAGE([GLIB], [glib-2.0 >= 2.6.0])
PKG_CHECK_PACKAGE([GOBJECT], [gobject-2.0 >= 2.6.0])
-PKG_CHECK_PACKAGE([PYGTK], [pygtk-2.0 >= 2.8.0]
+PKG_CHECK_PACKAGE([PYTHON], [python >= 2.4.0])
+PKG_CHECK_PACKAGE([PYGTK], [pygtk-2.0 >= 2.8.0])
-PACKAGE_CFLAGS="-g -Wall $THUNARX_CFLAGS $APR_CFLAGS $GTK_CFLAGS $GLIB_CFLAGS $GOBJECT_CFLAGS"
-PACKAGE_LIBS="-g $THUNARX_LIBS $APR_LIBS $GTK_LIBS $GLIB_LIBS $GOBJECT_LIBS"
-PACKAGE_LDFLAGS="$THUNARX_LDFLAGS $APR_LDFLAGS $GTK_LDFLAGS $GLIB_LDFLAGS $GOBJECT_LDFLAGS"
-PACKAGE_CPPFLAGS="$THUNARX_CPPFLAGS $APR_CPPFLAGS $GTK_CPPFLAGS $GLIB_CPPFLAGS $GOBJECT_CPPFLAGS"
+PACKAGE_CFLAGS="-g -Wall $THUNARX_CFLAGS $APR_CFLAGS $GTK_CFLAGS $GLIB_CFLAGS $GOBJECT_CFLAGS $PYTHON_CFLAGS"
+PACKAGE_LIBS="-g $THUNARX_LIBS $APR_LIBS $GTK_LIBS $GLIB_LIBS $GOBJECT_LIBS $PYTHON_LIBS"
+PACKAGE_LDFLAGS="$THUNARX_LDFLAGS $APR_LDFLAGS $GTK_LDFLAGS $GLIB_LDFLAGS $GOBJECT_LDFLAGS $PYTHON_LDFLAGS"
+PACKAGE_CPPFLAGS="$THUNARX_CPPFLAGS $APR_CPPFLAGS $GTK_CPPFLAGS $GLIB_CPPFLAGS $GOBJECT_CPPFLAGS $PYTHON_CPPFLAGS"
# Make dependency CFLAGS and LIBS available
AC_SUBST(PACKAGE_CFLAGS)
@@ -38,7 +35,7 @@ AC_SUBST(PYGTK_DEFSDIR)
AC_MSG_RESULT($PYGTK_DEFSDIR)
AC_MSG_CHECKING(for pygtk codegen)
-PYGTK_CODEGEN="$PYTHON `$PKG_CONFIG --variable=codegendir pygtk-2.0`/codegen.py"
+PYGTK_CODEGEN="/usr/bin/python `$PKG_CONFIG --variable=codegendir pygtk-2.0`/codegen.py"
AC_SUBST(PYGTK_CODEGEN)
AC_MSG_RESULT($PYGTK_CODEGEN)
diff --git a/src/.cvsignore b/src/.cvsignore
deleted file mode 100644
index 3d710cc..0000000
--- a/src/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-Makefile
-Makefile.in
-*.pyc
-*.pyo
-nautilus.c
diff --git a/src/Makefile.am b/src/Makefile.am
index d45f29b..b693e13 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -9,8 +9,7 @@ thunarx_python_la_SOURCES = \
thunarx_python.h
thunarx_python_la_LIBADD = \
- $(PACKAGE_LIBS) \
- $(PYTHON_LIBS)
+ $(PACKAGE_LIBS)
thunarx_python_la_LDFLAGS = \
-module -pthread
diff --git a/thunarx-python-object.c b/thunarx-python-object.c
deleted file mode 100644
index 2268835..0000000
--- a/thunarx-python-object.c
+++ /dev/null
@@ -1,487 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
-/*
- * Copyright (C) 2004 Novell, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU 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 General Public
- * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * Author: Dave Camp <dave at ximian.com>
- *
- */
-
-#include <config.h>
-
-#include "thunarx-python-object.h"
-#include "thunarx-python.h"
-
-#include <thunarx/thunarx-extension-types.h>
-
-#include <pygobject.h>
-
-/* Thunarx extension headers */
-#include <thunarx/thunarx-file-info.h>
-#include <thunarx/thunarx-info-provider.h>
-#include <thunarx/thunarx-column-provider.h>
-#include <thunarx/thunarx-location-widget-provider.h>
-#include <thunarx/thunarx-menu-item.h>
-#include <thunarx/thunarx-menu-provider.h>
-#include <thunarx/thunarx-property-page-provider.h>
-
-#include <string.h>
-
-#define METHOD_PREFIX ""
-
-static GObjectClass *parent_class;
-
-/* These macros assumes the following things:
- * a METHOD_NAME is defined with is a string
- * a goto label called beach
- * the return value is called ret
- */
-
-#define CHECK_METHOD_NAME(self) \
- if (!PyObject_HasAttrString(self, METHOD_NAME)) \
- goto beach;
-
-#define CONVERT_LIST(py_files, files) \
- { \
- GList *l; \
- py_files = PyList_New(0); \
- for (l = files; l; l = l->next) { \
- PyObject *obj = pygobject_new((GObject*)l->data); \
- PyList_Append(py_files, obj); \
- Py_DECREF(obj); \
- } \
- }
-
-#define HANDLE_RETVAL(py_ret) \
- if (!py_ret) { \
- PyErr_Print(); \
- goto beach; \
- } else if (py_ret == Py_None) { \
- goto beach; \
- }
-
-#define HANDLE_LIST(py_ret, type, type_name) \
- { \
- Py_ssize_t i = 0; \
- if (!PySequence_Check(py_ret) || PyString_Check(py_ret)) { \
- PyErr_SetString(PyExc_TypeError, \
- METHOD_NAME " must return a sequence"); \
- goto beach; \
- } \
- for (i = 0; i < PySequence_Size (py_ret); i++) { \
- PyGObject *py_item; \
- py_item = (PyGObject*)PySequence_GetItem (py_ret, i); \
- if (!pygobject_check(py_item, &Py##type##_Type)) { \
- PyErr_SetString(PyExc_TypeError, \
- METHOD_NAME \
- " must return a sequence of " \
- type_name); \
- goto beach; \
- } \
- ret = g_list_append (ret, (type*) g_object_ref(py_item->obj)); \
- Py_DECREF(py_item); \
- } \
- }
-
-#define METHOD_NAME "get_property_pages"
-static GList *
-thunarx_python_object_get_property_pages (ThunarxPropertyPageProvider *provider,
- GList *files)
-{
- ThunarxPythonObject *object = (ThunarxPythonObject*)provider;
- PyObject *py_files, *py_ret = NULL;
- GList *ret = NULL;
- PyGILState_STATE state = pyg_gil_state_ensure(); \
-
- debug_enter();
-
- CHECK_METHOD_NAME(object->instance);
-
- CONVERT_LIST(py_files, files);
-
- py_ret = PyObject_CallMethod(object->instance, METHOD_PREFIX METHOD_NAME,
- "(N)", py_files);
- HANDLE_RETVAL(py_ret);
-
- HANDLE_LIST(py_ret, ThunarxPropertyPage, "thunarx.PropertyPage");
-
- beach:
- Py_XDECREF(py_ret);
- pyg_gil_state_release(state);
- return ret;
-}
-#undef METHOD_NAME
-
-
-static void
-thunarx_python_object_property_page_provider_iface_init (ThunarxPropertyPageProviderIface *iface)
-{
- iface->get_pages = thunarx_python_object_get_property_pages;
-}
-
-#define METHOD_NAME "get_widget"
-static GtkWidget *
-thunarx_python_object_get_widget (ThunarxLocationWidgetProvider *provider,
- const char *uri,
- GtkWidget *window)
-{
- ThunarxPythonObject *object = (ThunarxPythonObject*)provider;
- GtkWidget *ret = NULL;
- PyObject *py_ret = NULL;
- PyGObject *py_ret_gobj;
- PyObject *py_uri = NULL;
- PyGILState_STATE state = pyg_gil_state_ensure();
-
- debug_enter();
-
- CHECK_METHOD_NAME(object->instance);
-
- py_uri = PyString_FromString(uri);
-
- py_ret = PyObject_CallMethod(object->instance, METHOD_PREFIX METHOD_NAME,
- "(NN)", py_uri,
- pygobject_new((GObject *)window));
- HANDLE_RETVAL(py_ret);
-
- py_ret_gobj = (PyGObject *)py_ret;
- if (!pygobject_check(py_ret_gobj, &PyGtkWidget_Type)) {
- PyErr_SetString(PyExc_TypeError,
- METHOD_NAME "should return a gtk.Widget");
- goto beach;
- }
- ret = (GtkWidget *)g_object_ref(py_ret_gobj->obj);
-
- beach:
- Py_XDECREF(py_ret);
- pyg_gil_state_release(state);
- return ret;
-}
-#undef METHOD_NAME
-
-static void
-thunarx_python_object_location_widget_provider_iface_init (ThunarxLocationWidgetProviderIface *iface)
-{
- iface->get_widget = thunarx_python_object_get_widget;
-}
-
-#define METHOD_NAME "get_file_items"
-static GList *
-thunarx_python_object_get_file_items (ThunarxMenuProvider *provider,
- GtkWidget *window,
- GList *files)
-{
- ThunarxPythonObject *object = (ThunarxPythonObject*)provider;
- GList *ret = NULL;
- PyObject *py_ret = NULL, *py_files;
- PyGILState_STATE state = pyg_gil_state_ensure();
-
- debug_enter();
-
- CHECK_METHOD_NAME(object->instance);
-
- CONVERT_LIST(py_files, files);
-
- py_ret = PyObject_CallMethod(object->instance, METHOD_PREFIX METHOD_NAME,
- "(NN)", pygobject_new((GObject *)window), py_files);
- HANDLE_RETVAL(py_ret);
-
- HANDLE_LIST(py_ret, ThunarxMenuItem, "thunarx.MenuItem");
-
- beach:
- Py_XDECREF(py_ret);
- pyg_gil_state_release(state);
- return ret;
-}
-#undef METHOD_NAME
-
-#define METHOD_NAME "get_background_items"
-static GList *
-thunarx_python_object_get_background_items (ThunarxMenuProvider *provider,
- GtkWidget *window,
- ThunarxFileInfo *file)
-{
- ThunarxPythonObject *object = (ThunarxPythonObject*)provider;
- GList *ret = NULL;
- PyObject *py_ret = NULL;
- PyGILState_STATE state = pyg_gil_state_ensure(); \
-
- debug_enter();
-
- CHECK_METHOD_NAME(object->instance);
-
- py_ret = PyObject_CallMethod(object->instance, METHOD_PREFIX METHOD_NAME,
- "(NN)",
- pygobject_new((GObject *)window),
- pygobject_new((GObject *)file));
-
- HANDLE_RETVAL(py_ret);
-
- HANDLE_LIST(py_ret, ThunarxMenuItem, "thunarx.MenuItem");
-
- beach:
- Py_XDECREF(py_ret);
- pyg_gil_state_release(state);
- return ret;
-}
-#undef METHOD_NAME
-
-#define METHOD_NAME "get_toolbar_items"
-static GList *
-thunarx_python_object_get_toolbar_items (ThunarxMenuProvider *provider,
- GtkWidget *window,
- ThunarxFileInfo *file)
-{
- ThunarxPythonObject *object = (ThunarxPythonObject*)provider;
- GList *ret = NULL;
- PyObject *py_ret = NULL;
- PyGILState_STATE state = pyg_gil_state_ensure(); \
-
- debug_enter();
-
- CHECK_METHOD_NAME(object->instance);
-
- py_ret = PyObject_CallMethod(object->instance, METHOD_PREFIX METHOD_NAME,
- "(NN)",
- pygobject_new((GObject *)window),
- pygobject_new((GObject *)file));
- HANDLE_RETVAL(py_ret);
-
- HANDLE_LIST(py_ret, ThunarxMenuItem, "thunarx.MenuItem");
-
- beach:
- Py_XDECREF(py_ret);
- pyg_gil_state_release(state);
- return ret;
-}
-#undef METHOD_NAME
-
-static void
-thunarx_python_object_menu_provider_iface_init (ThunarxMenuProviderIface *iface)
-{
- iface->get_background_items = thunarx_python_object_get_background_items;
- iface->get_toolbar_items = thunarx_python_object_get_toolbar_items;
- iface->get_file_items = thunarx_python_object_get_file_items;
-}
-
-#define METHOD_NAME "get_columns"
-static GList *
-thunarx_python_object_get_columns (ThunarxColumnProvider *provider)
-{
- ThunarxPythonObject *object = (ThunarxPythonObject*)provider;
- GList *ret = NULL;
- PyObject *py_ret;
- PyGILState_STATE state = pyg_gil_state_ensure(); \
-
- debug_enter();
-
- CHECK_METHOD_NAME(object->instance);
-
- py_ret = PyObject_CallMethod(object->instance, METHOD_PREFIX METHOD_NAME,
- NULL);
-
- HANDLE_RETVAL(py_ret);
-
- HANDLE_LIST(py_ret, ThunarxColumn, "thunarx.Column");
-
- beach:
- pyg_gil_state_release(state);
- return ret;
-}
-#undef METHOD_NAME
-
-static void
-thunarx_python_object_column_provider_iface_init (ThunarxColumnProviderIface *iface)
-{
- iface->get_columns = thunarx_python_object_get_columns;
-}
-
-
-#define METHOD_NAME "cancel_update"
-static void
-thunarx_python_object_cancel_update (ThunarxInfoProvider *provider,
- ThunarxOperationHandle *handle)
-{
- debug_enter();
-}
-#undef METHOD_NAME
-
-#define METHOD_NAME "update_file_info"
-static ThunarxOperationResult
-thunarx_python_object_update_file_info (ThunarxInfoProvider *provider,
- ThunarxFile *file,
- GClosure *update_complete,
- ThunarxOperationHandle **handle)
-{
- ThunarxPythonObject *object = (ThunarxPythonObject*)provider;
- ThunarxOperationResult ret = NAUTILUS_OPERATION_COMPLETE;
- PyObject *py_ret = NULL;
- PyGILState_STATE state = pyg_gil_state_ensure(); \
-
- debug_enter();
-
- CHECK_METHOD_NAME(object->instance);
-
- py_ret = PyObject_CallMethod(object->instance,
- METHOD_PREFIX METHOD_NAME, "(N)",
- pygobject_new((GObject*)file));
- HANDLE_RETVAL(py_ret);
-
-
- if (!PyInt_Check(py_ret)) {
- PyErr_SetString(PyExc_TypeError,
- METHOD_NAME " must return None or a int");
- goto beach;
- }
-
- ret = PyInt_AsLong(py_ret);
-
- beach:
- Py_XDECREF(py_ret);
- pyg_gil_state_release(state);
- return ret;
-}
-#undef METHOD_NAME
-
-static void
-thunarx_python_object_info_provider_iface_init (ThunarxInfoProviderIface *iface)
-{
- iface->cancel_update = thunarx_python_object_cancel_update;
- iface->update_file_info = thunarx_python_object_update_file_info;
-}
-
-static void
-thunarx_python_object_instance_init (ThunarxPythonObject *object)
-{
- ThunarxPythonObjectClass *class;
- debug_enter();
-
- class = (ThunarxPythonObjectClass*)(((GTypeInstance*)object)->g_class);
-
- object->instance = PyObject_CallObject(class->type, NULL);
- if (object->instance == NULL)
- PyErr_Print();
-}
-
-static void
-thunarx_python_object_finalize (GObject *object)
-{
- debug_enter();
-
- Py_DECREF(((ThunarxPythonObject *)object)->instance);
-}
-
-static void
-thunarx_python_object_class_init (ThunarxPythonObjectClass *class,
- gpointer class_data)
-{
- debug_enter();
-
- parent_class = g_type_class_peek_parent (class);
-
- class->type = (PyObject*)class_data;
-
- G_OBJECT_CLASS (class)->finalize = thunarx_python_object_finalize;
-}
-
-GType
-thunarx_python_object_get_type (GTypeModule *module,
- PyObject *type)
-{
- GTypeInfo *info;
- const char *type_name;
- GType gtype;
-
- static const GInterfaceInfo property_page_provider_iface_info = {
- (GInterfaceInitFunc) thunarx_python_object_property_page_provider_iface_init,
- NULL,
- NULL
- };
-
- static const GInterfaceInfo location_widget_provider_iface_info = {
- (GInterfaceInitFunc) thunarx_python_object_location_widget_provider_iface_init,
- NULL,
- NULL
- };
-
- static const GInterfaceInfo menu_provider_iface_info = {
- (GInterfaceInitFunc) thunarx_python_object_menu_provider_iface_init,
- NULL,
- NULL
- };
-
- static const GInterfaceInfo column_provider_iface_info = {
- (GInterfaceInitFunc) thunarx_python_object_column_provider_iface_init,
- NULL,
- NULL
- };
-
- static const GInterfaceInfo info_provider_iface_info = {
- (GInterfaceInitFunc) thunarx_python_object_info_provider_iface_init,
- NULL,
- NULL
- };
-
- debug_enter_args("type=%s", PyString_AsString(PyObject_GetAttrString(type, "__name__")));
- info = g_new0 (GTypeInfo, 1);
-
- info->class_size = sizeof (ThunarxPythonObjectClass);
- info->class_init = (GClassInitFunc)thunarx_python_object_class_init;
- info->instance_size = sizeof (ThunarxPythonObject);
- info->instance_init = (GInstanceInitFunc)thunarx_python_object_instance_init;
-
- info->class_data = type;
- Py_INCREF(type);
-
- type_name = g_strdup_printf("%s+ThunarxPython",
- PyString_AsString(PyObject_GetAttrString(type, "__name__")));
-
- gtype = g_type_module_register_type (module,
- G_TYPE_OBJECT,
- type_name,
- info, 0);
-
- if (PyObject_IsSubclass(type, (PyObject*)&PyThunarxPropertyPageProvider_Type)) {
- g_type_module_add_interface (module, gtype,
- NAUTILUS_TYPE_PROPERTY_PAGE_PROVIDER,
- &property_page_provider_iface_info);
- }
-
- if (PyObject_IsSubclass(type, (PyObject*)&PyThunarxLocationWidgetProvider_Type)) {
- g_type_module_add_interface (module, gtype,
- NAUTILUS_TYPE_LOCATION_WIDGET_PROVIDER,
- &location_widget_provider_iface_info);
- }
-
- if (PyObject_IsSubclass(type, (PyObject*)&PyThunarxMenuProvider_Type)) {
- g_type_module_add_interface (module, gtype,
- NAUTILUS_TYPE_MENU_PROVIDER,
- &menu_provider_iface_info);
- }
-
- if (PyObject_IsSubclass(type, (PyObject*)&PyThunarxColumnProvider_Type)) {
- g_type_module_add_interface (module, gtype,
- NAUTILUS_TYPE_COLUMN_PROVIDER,
- &column_provider_iface_info);
- }
-
- if (PyObject_IsSubclass(type, (PyObject*)&PyThunarxInfoProvider_Type)) {
- g_type_module_add_interface (module, gtype,
- NAUTILUS_TYPE_INFO_PROVIDER,
- &info_provider_iface_info);
- }
-
- return gtype;
-}
diff --git a/thunarx-python-object.h b/thunarx-python-object.h
deleted file mode 100644
index e101580..0000000
--- a/thunarx-python-object.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * thunarx-python-object.h - Generation of wrapper objects for thunarx
- * extension objects in python.
- *
- * Copyright (C) 2003 Novell, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU 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 General Public
- * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * Author: Dave Camp <dave at ximian.com>
- *
- */
-
-#ifndef NAUTILUS_PYTHON_OBJECT_H
-#define NAUTILUS_PYTHON_OBJECT_H
-
-#include <Python.h>
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-typedef struct _ThunarxPythonObject ThunarxPythonObject;
-typedef struct _ThunarxPythonObjectClass ThunarxPythonObjectClass;
-
-struct _ThunarxPythonObject {
- GObject parent_slot;
- PyObject *instance;
-};
-
-struct _ThunarxPythonObjectClass {
- GObjectClass parent_slot;
- PyObject *type;
-};
-
-GType thunarx_python_object_get_type (GTypeModule *module, PyObject *type);
-
-G_END_DECLS
-
-#endif
diff --git a/thunarx-python.c b/thunarx-python.c
deleted file mode 100644
index bc73026..0000000
--- a/thunarx-python.c
+++ /dev/null
@@ -1,365 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
-/*
- * Copyright (C) 2004,2005 Johan Dahlin
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; 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 <Python.h>
-#include <pygobject.h>
-#include <pygtk/pygtk.h>
-
-#include "thunarx-python.h"
-#include "thunarx-python-object.h"
-#include "pygnomevfs.h"
-
-#include <thunarx/thunarx-extension-types.h>
-
-static const GDebugKey thunarx_python_debug_keys[] = {
- {"misc", NAUTILUS_PYTHON_DEBUG_MISC},
-};
-static const guint thunarx_python_ndebug_keys = sizeof (thunarx_python_debug_keys) / sizeof (GDebugKey);
-ThunarxPythonDebug thunarx_python_debug;
-
-static gboolean thunarx_python_init_python(void);
-
-static GArray *all_types = NULL;
-
-
-static inline gboolean np_init_pygobject(void)
-{
- PyObject *gobject = PyImport_ImportModule("gobject");
- if (gobject != NULL) {
- PyObject *mdict = PyModule_GetDict(gobject);
- PyObject *cobject = PyDict_GetItemString(mdict, "_PyGObject_API");
- if (PyCObject_Check(cobject))
- _PyGObject_API = (struct _PyGObject_Functions *)PyCObject_AsVoidPtr(cobject);
- else {
- PyErr_SetString(PyExc_RuntimeError,
- "could not find _PyGObject_API object");
- PyErr_Print();
- return FALSE;
- }
- } else {
- PyErr_Print();
- g_warning("could not import gobject");
- return FALSE;
- }
- return TRUE;
-}
-
-static inline gboolean np_init_pygtk(void)
-{
- PyObject *pygtk = PyImport_ImportModule("gtk._gtk");
- if (pygtk != NULL) {
- PyObject *module_dict = PyModule_GetDict(pygtk);
- PyObject *cobject = PyDict_GetItemString(module_dict, "_PyGtk_API");
- if (PyCObject_Check(cobject))
- _PyGtk_API = (struct _PyGtk_FunctionStruct*)
- PyCObject_AsVoidPtr(cobject);
- else {
- PyErr_SetString(PyExc_RuntimeError,
- "could not find _PyGtk_API object");
- PyErr_Print();
- return FALSE;
- }
- } else {
- PyErr_Print();
- g_warning("could not import gtk._gtk");
- return FALSE;
- }
- return TRUE;
-}
-
-static inline gboolean np_init_pygnomevfs(void)
-{
- PyObject *module = PyImport_ImportModule("gnomevfs");
- if (module != NULL) {
- PyObject *mdict = PyModule_GetDict(module);
- PyObject *cobject = PyDict_GetItemString(mdict, "_PyGnomeVFS_API");
- if (PyCObject_Check(cobject))
- _PyGnomeVFS_API = (struct _PyGnomeVFS_Functions *)PyCObject_AsVoidPtr(cobject);
- else {
- g_warning("could not find _PyGnomeVFS_API object in the gnomevfs module");
- return FALSE;
- }
- } else {
- PyErr_Print();
- g_warning("could not import gnomevfs");
- return FALSE;
- }
- return TRUE;
-}
-
-
-static void
-thunarx_python_load_file(GTypeModule *type_module, const gchar *filename)
-{
- PyObject *main_module, *main_locals, *locals, *key, *value;
- PyObject *module;
- GType gtype;
- Py_ssize_t pos = 0;
-
- debug_enter_args("filename=%s", filename);
-
- main_module = PyImport_AddModule("__main__");
- if (main_module == NULL) {
- g_warning("Could not get __main__.");
- return;
- }
-
- main_locals = PyModule_GetDict(main_module);
- module = PyImport_ImportModuleEx((char *) filename, main_locals, main_locals, NULL);
- if (!module) {
- PyErr_Print();
- return;
- }
-
- locals = PyModule_GetDict(module);
-
- while (PyDict_Next(locals, &pos, &key, &value)) {
- if (!PyType_Check(value))
- continue;
-
- if (PyObject_IsSubclass(value, (PyObject*)&PyThunarxColumnProvider_Type) ||
- PyObject_IsSubclass(value, (PyObject*)&PyThunarxInfoProvider_Type) ||
- PyObject_IsSubclass(value, (PyObject*)&PyThunarxLocationWidgetProvider_Type) ||
- PyObject_IsSubclass(value, (PyObject*)&PyThunarxMenuProvider_Type) ||
- PyObject_IsSubclass(value, (PyObject*)&PyThunarxPropertyPageProvider_Type)) {
-
- gtype = thunarx_python_object_get_type(type_module, value);
- g_array_append_val(all_types, gtype);
- }
- }
-
- debug("Loaded python modules");
-}
-
-static void
-thunarx_python_load_dir (GTypeModule *module, const char *dirname)
-{
- GDir *dir;
- const char *name;
- gboolean initialized = FALSE;
-
- debug_enter_args("dirname=%s", dirname);
-
- dir = g_dir_open(dirname, 0, NULL);
- if (!dir)
- return;
-
-
- while ((name = g_dir_read_name(dir))) {
- if (g_str_has_suffix(name, ".py")) {
- char *modulename;
- int len;
-
- len = strlen(name) - 3;
- modulename = g_new0(char, len + 1 );
- strncpy(modulename, name, len);
-
- if (!initialized) {
- PyObject *sys_path, *py_path;
- /* n-p python part is initialized on demand (or not
- * at all if no extensions are found) */
- if (!thunarx_python_init_python()) {
- g_warning("thunarx_python_init_python failed");
- goto exit;
- }
- /* sys.path.insert(0, dirname) */
- sys_path = PySys_GetObject("path");
- py_path = PyString_FromString(dirname);
- PyList_Insert(sys_path, 0, py_path);
- Py_DECREF(py_path);
- }
- thunarx_python_load_file(module, modulename);
- }
- }
-exit:
- g_dir_close(dir);
-}
-
-static gboolean
-thunarx_python_init_python (void)
-{
- PyObject *pygtk, *mdict, *require;
- PyObject *sys_path, *tmp, *thunarx, *gtk, *pygtk_version, *pygtk_required_version;
- GModule *libpython;
- char *argv[] = { "thunarx", NULL };
-
- if (Py_IsInitialized())
- return TRUE;
-
- debug("g_module_open " PY_LIB_LOC "/libpython" PYTHON_VERSION "." G_MODULE_SUFFIX);
- libpython = g_module_open(PY_LIB_LOC "/libpython" PYTHON_VERSION "." G_MODULE_SUFFIX, 0);
- if (!libpython)
- g_warning("g_module_open libpython failed: %s", g_module_error());
- debug("Py_Initialize");
- Py_Initialize();
- if (PyErr_Occurred()) {
- PyErr_Print();
- return FALSE;
- }
-
- debug("PySys_SetArgv");
- PySys_SetArgv(1, argv);
- if (PyErr_Occurred()) {
- PyErr_Print();
- return FALSE;
- }
-
- /* pygtk.require("2.0") */
- debug("pygtk.require(\"2.0\")");
- pygtk = PyImport_ImportModule("pygtk");
- if (!pygtk) {
- PyErr_Print();
- return FALSE;
- }
- mdict = PyModule_GetDict(pygtk);
- require = PyDict_GetItemString(mdict, "require");
- PyObject_CallObject(require, Py_BuildValue("(S)", PyString_FromString("2.0")));
- if (PyErr_Occurred()) {
- PyErr_Print();
- return FALSE;
- }
-
- /* import gobject */
- debug("init_pygobject");
- if (!np_init_pygobject()) {
- g_warning("pygobject initialization failed");
- return FALSE;
- }
- /* import gtk */
- debug("init_pygtk");
- if (!np_init_pygtk()) {
- g_warning("pygtk initialization failed");
- return FALSE;
- }
- /* import gnomevfs */
- debug("init_gnomevfs");
- if (!np_init_pygnomevfs())
- return FALSE;
-
- /* gobject.threads_init() */
- debug("pyg_enable_threads");
- setenv("PYGTK_USE_GIL_STATE_API", "", 0);
- pyg_enable_threads();
-
- /* gtk.pygtk_version < (2, 4, 0) */
- gtk = PyImport_ImportModule("gtk");
- mdict = PyModule_GetDict(gtk);
- pygtk_version = PyDict_GetItemString(mdict, "pygtk_version");
- pygtk_required_version = Py_BuildValue("(iii)", 2, 4, 0);
- if (PyObject_Compare(pygtk_version, pygtk_required_version) == -1) {
- g_warning("PyGTK %s required, but %s found.",
- PyString_AsString(PyObject_Repr(pygtk_required_version)),
- PyString_AsString(PyObject_Repr(pygtk_version)));
- Py_DECREF(pygtk_required_version);
- return FALSE;
- }
- Py_DECREF(pygtk_required_version);
-
- /* sys.path.insert(., ...) */
- debug("sys.path.insert(0, ...)");
- sys_path = PySys_GetObject("path");
- PyList_Insert(sys_path, 0,
- (tmp = PyString_FromString(NAUTILUS_LIBDIR "/thunarx-python")));
- Py_DECREF(tmp);
-
- /* import thunarx */
- g_setenv("INSIDE_NAUTILUS_PYTHON", "", FALSE);
- debug("import thunarx");
- thunarx = PyImport_ImportModule("thunarx");
- if (!thunarx) {
- PyErr_Print();
- return FALSE;
- }
-
- /* Extract types and interfaces from thunarx */
- mdict = PyModule_GetDict(thunarx);
-
- _PyGtkWidget_Type = pygobject_lookup_class(GTK_TYPE_WIDGET);
- g_assert(_PyGtkWidget_Type != NULL);
-
-#define IMPORT(x, y) \
- _PyThunarx##x##_Type = (PyTypeObject *)PyDict_GetItemString(mdict, y); \
- if (_PyThunarx##x##_Type == NULL) { \
- PyErr_Print(); \
- return FALSE; \
- }
-
- IMPORT(Column, "Column");
- IMPORT(ColumnProvider, "ColumnProvider");
- IMPORT(InfoProvider, "InfoProvider");
- IMPORT(LocationWidgetProvider, "LocationWidgetProvider");
- IMPORT(Menu, "Menu");
- IMPORT(MenuItem, "MenuItem");
- IMPORT(MenuProvider, "MenuProvider");
- IMPORT(PropertyPage, "PropertyPage");
- IMPORT(PropertyPageProvider, "PropertyPageProvider");
-
-#undef IMPORT
-
- return TRUE;
-}
-
-void
-thunarx_module_initialize(GTypeModule *module)
-{
- gchar *user_extensions_dir;
- const gchar *env_string;
-
- env_string = g_getenv("NAUTILUS_PYTHON_DEBUG");
- if (env_string != NULL) {
- thunarx_python_debug = g_parse_debug_string(env_string,
- thunarx_python_debug_keys,
- thunarx_python_ndebug_keys);
- env_string = NULL;
- }
-
- debug_enter();
-
- all_types = g_array_new(FALSE, FALSE, sizeof(GType));
-
- thunarx_python_load_dir(module, NAUTILUS_EXTENSION_DIR "/python");
- user_extensions_dir = g_strdup_printf("%s/.thunarx/python-extensions/",
- g_get_home_dir());
- thunarx_python_load_dir(module, user_extensions_dir);
- g_free(user_extensions_dir);
-}
-
-void
-thunarx_module_shutdown(void)
-{
- debug_enter();
- if (Py_IsInitialized()) {
- Py_Finalize();
- }
- g_array_free(all_types, TRUE);
-}
-
-void
-thunarx_module_list_types(const GType **types,
- int *num_types)
-{
- debug_enter();
-
- *types = (GType*)all_types->data;
- *num_types = all_types->len;
-}
diff --git a/thunarx-python.h b/thunarx-python.h
deleted file mode 100644
index d6d8dec..0000000
--- a/thunarx-python.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * thunarx-python.c - Thunarx Python extension
- *
- * Copyright (C) 2004 Johan Dahlin
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU 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 General Public
- * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#ifndef NAUTILUS_PYTHON_H
-#define NAUTILUS_PYTHON_H
-
-#include <glib-object.h>
-#include <glib/gprintf.h>
-#include <Python.h>
-
-#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
-typedef int Py_ssize_t;
-#define PY_SSIZE_T_MAX INT_MAX
-#define PY_SSIZE_T_MIN INT_MIN
-#endif
-
-typedef enum {
- NAUTILUS_PYTHON_DEBUG_MISC = 1 << 0,
-} ThunarxPythonDebug;
-
-extern ThunarxPythonDebug thunarx_python_debug;
-
-#define debug(x) { if (thunarx_python_debug & NAUTILUS_PYTHON_DEBUG_MISC) \
- g_printf( "thunarx-python:" x "\n"); }
-#define debug_enter() { if (thunarx_python_debug & NAUTILUS_PYTHON_DEBUG_MISC) \
- g_printf("%s: entered\n", __FUNCTION__); }
-#define debug_enter_args(x, y) { if (thunarx_python_debug & NAUTILUS_PYTHON_DEBUG_MISC) \
- g_printf("%s: entered " x "\n", __FUNCTION__, y); }
-
-
-PyTypeObject *_PyGtkWidget_Type;
-#define PyGtkWidget_Type (*_PyGtkWidget_Type)
-
-PyTypeObject *_PyThunarxColumn_Type;
-#define PyThunarxColumn_Type (*_PyThunarxColumn_Type)
-
-PyTypeObject *_PyThunarxColumnProvider_Type;
-#define PyThunarxColumnProvider_Type (*_PyThunarxColumnProvider_Type)
-
-PyTypeObject *_PyThunarxInfoProvider_Type;
-#define PyThunarxInfoProvider_Type (*_PyThunarxInfoProvider_Type)
-
-PyTypeObject *_PyThunarxLocationWidgetProvider_Type;
-#define PyThunarxLocationWidgetProvider_Type (*_PyThunarxLocationWidgetProvider_Type)
-
-PyTypeObject *_PyThunarxMenu_Type;
-#define PyThunarxMenu_Type (*_PyThunarxMenu_Type)
-
-PyTypeObject *_PyThunarxMenuItem_Type;
-#define PyThunarxMenuItem_Type (*_PyThunarxMenuItem_Type)
-
-PyTypeObject *_PyThunarxMenuProvider_Type;
-#define PyThunarxMenuProvider_Type (*_PyThunarxMenuProvider_Type)
-
-PyTypeObject *_PyThunarxPropertyPage_Type;
-#define PyThunarxPropertyPage_Type (*_PyThunarxPropertyPage_Type)
-
-PyTypeObject *_PyThunarxPropertyPageProvider_Type;
-#define PyThunarxPropertyPageProvider_Type (*_PyThunarxPropertyPageProvider_Type)
-
-#endif /* NAUTILUS_PYTHON_H */
diff --git a/thunarx.defs b/thunarx.defs
deleted file mode 100644
index 0e87d96..0000000
--- a/thunarx.defs
+++ /dev/null
@@ -1,320 +0,0 @@
-;; -*- scheme -*-
-; object definitions ...
-(define-object Column
- (in-module "Thunarx")
- (parent "GObject")
- (c-name "ThunarxColumn")
- (gtype-id "NAUTILUS_TYPE_COLUMN")
-)
-
-(define-interface ColumnProvider
- (in-module "Thunarx")
- (c-name "ThunarxColumnProvider")
- (gtype-id "NAUTILUS_TYPE_COLUMN_PROVIDER")
-)
-
-(define-interface FileInfo
- (in-module "Thunarx")
- (c-name "ThunarxFileInfo")
- (gtype-id "NAUTILUS_TYPE_FILE_INFO")
-)
-
-(define-interface InfoProvider
- (in-module "Thunarx")
- (c-name "ThunarxInfoProvider")
- (gtype-id "NAUTILUS_TYPE_INFO_PROVIDER")
-)
-
-(define-interface LocationWidgetProvider
- (in-module "Thunarx")
- (c-name "ThunarxLocationWidgetProvider")
- (gtype-id "NAUTILUS_TYPE_LOCATION_WIDGET_PROVIDER")
-)
-
-(define-object Menu
- (in-module "Thunarx")
- (parent "GObject")
- (c-name "ThunarxMenu")
- (gtype-id "NAUTILUS_TYPE_MENU")
-)
-
-(define-object MenuItem
- (in-module "Thunarx")
- (parent "GObject")
- (c-name "ThunarxMenuItem")
- (gtype-id "NAUTILUS_TYPE_MENU_ITEM")
-)
-
-(define-interface MenuProvider
- (in-module "Thunarx")
- (c-name "ThunarxMenuProvider")
- (gtype-id "NAUTILUS_TYPE_MENU_PROVIDER")
-)
-
-(define-object PropertyPage
- (in-module "Thunarx")
- (parent "GObject")
- (c-name "ThunarxPropertyPage")
- (gtype-id "NAUTILUS_TYPE_PROPERTY_PAGE")
-)
-
-(define-interface PropertyPageProvider
- (in-module "Thunarx")
- (c-name "ThunarxPropertyPageProvider")
- (gtype-id "NAUTILUS_TYPE_PROPERTY_PAGE_PROVIDER")
-)
-
-;; Enumerations and flags ...
-
-(define-enum OperationResult
- (in-module "Thunarx")
- (c-name "ThunarxOperationResult")
- (gtype-id "NAUTILUS_TYPE_OPERATION_RESULT")
- (values
- '("complete" "NAUTILUS_OPERATION_COMPLETE")
- '("failed" "NAUTILUS_OPERATION_FAILED")
- '("in-progress" "NAUTILUS_OPERATION_IN_PROGRESS")
- )
-)
-
-
-;; From /usr/include/thunarx/libthunarx-extension/thunarx-column.h
-
-(define-function thunarx_column_get_type
- (c-name "thunarx_column_get_type")
- (return-type "GType")
-)
-
-(define-function thunarx_column_new
- (c-name "thunarx_column_new")
- (is-constructor-of "ThunarxColumn")
- (return-type "ThunarxColumn*")
- (parameters
- '("const-char*" "name")
- '("const-char*" "attribute")
- '("const-char*" "label")
- '("const-char*" "description")
- )
-)
-
-
-
-;; From /usr/include/thunarx/libthunarx-extension/thunarx-extension-types.h
-
-(define-function thunarx_operation_result_get_type
- (c-name "thunarx_operation_result_get_type")
- (return-type "GType")
-)
-
-;; From /usr/include/thunarx/libthunarx-extension/thunarx-file-info.h
-
-(define-function thunarx_file_info_list_copy
- (c-name "thunarx_file_info_list_copy")
- (return-type "GList*")
- (parameters
- '("GList*" "files")
- )
-)
-
-(define-function thunarx_file_info_list_free
- (c-name "thunarx_file_info_list_free")
- (return-type "none")
- (parameters
- '("GList*" "files")
- )
-)
-
-(define-function thunarx_file_info_get_type
- (c-name "thunarx_file_info_get_type")
- (return-type "GType")
-)
-
-(define-method is_gone
- (of-object "ThunarxFileInfo")
- (c-name "thunarx_file_info_is_gone")
- (return-type "gboolean")
-)
-
-(define-method get_file_type
- (of-object "ThunarxFileInfo")
- (c-name "thunarx_file_info_get_file_type")
- (return-type "GFileType")
-)
-
-(define-method get_location
- (of-object "ThunarxFileInfo")
- (c-name "thunarx_file_info_get_location")
- (return-type "GFile")
-)
-
-(define-method get_name
- (of-object "ThunarxFileInfo")
- (c-name "thunarx_file_info_get_name")
- (return-type "char*")
-)
-
-(define-method get_uri
- (of-object "ThunarxFileInfo")
- (c-name "thunarx_file_info_get_uri")
- (return-type "char*")
-)
-
-(define-method get_activation_uri
- (of-object "ThunarxFileInfo")
- (c-name "thunarx_file_info_get_activation_uri")
- (return-type "char*")
-)
-
-(define-method get_parent_location
- (of-object "ThunarxFileInfo")
- (c-name "thunarx_file_info_get_parent_location")
- (return-type "GFile")
-)
-
-(define-method get_parent_uri
- (of-object "ThunarxFileInfo")
- (c-name "thunarx_file_info_get_parent_uri")
- (return-type "char*")
-)
-
-(define-method get_uri_scheme
- (of-object "ThunarxFileInfo")
- (c-name "thunarx_file_info_get_uri_scheme")
- (return-type "char*")
-)
-
-(define-method get_mime_type
- (of-object "ThunarxFileInfo")
- (c-name "thunarx_file_info_get_mime_type")
- (return-type "char*")
-)
-
-(define-method is_mime_type
- (of-object "ThunarxFileInfo")
- (c-name "thunarx_file_info_is_mime_type")
- (return-type "gboolean")
- (parameters
- '("const-char*" "mime_type")
- )
-)
-
-(define-method is_directory
- (of-object "ThunarxFileInfo")
- (c-name "thunarx_file_info_is_directory")
- (return-type "gboolean")
-)
-
-(define-method add_emblem
- (of-object "ThunarxFileInfo")
- (c-name "thunarx_file_info_add_emblem")
- (return-type "none")
- (parameters
- '("const-char*" "emblem_name")
- )
-)
-
-(define-method get_string_attribute
- (of-object "ThunarxFileInfo")
- (c-name "thunarx_file_info_get_string_attribute")
- (return-type "char*")
- (parameters
- '("const-char*" "attribute_name")
- )
-)
-
-(define-method add_string_attribute
- (of-object "ThunarxFileInfo")
- (c-name "thunarx_file_info_add_string_attribute")
- (return-type "none")
- (parameters
- '("const-char*" "attribute_name")
- '("const-char*" "value")
- )
-)
-
-(define-method invalidate_extension_info
- (of-object "ThunarxFileInfo")
- (c-name "thunarx_file_info_invalidate_extension_info")
- (return-type "none")
-)
-
-;; From /usr/include/thunarx/libthunarx-extension/thunarx-menu-item.h
-
-(define-function thunarx_menu_item_get_type
- (c-name "thunarx_menu_item_get_type")
- (return-type "GType")
-)
-
-(define-function thunarx_menu_new
- (c-name "thunarx_menu_new")
- (is-constructor-of "ThunarxMenu")
- (return-type "ThunarxMenu*")
-)
-
-(define-method append_item
- (of-object "ThunarxMenu")
- (c-name "thunarx_menu_append_item")
- (return-type "none")
- (parameters
- '("ThunarxMenuItem*" "item")
- )
-)
-
-(define-method get_items
- (of-object "ThunarxMenu")
- (c-name "thunarx_menu_get_items")
- (return-type "GList*")
-)
-
-(define-function thunarx_menu_item_list_free
- (c-name "thunarx_menu_item_list_free")
- (return-type "none")
- (parameters
- '("GList*", "item_list")
- )
-)
-
-(define-function thunarx_menu_item_new
- (c-name "thunarx_menu_item_new")
- (is-constructor-of "ThunarxMenuItem")
- (return-type "ThunarxMenuItem*")
- (parameters
- '("const-char*" "name")
- '("const-char*" "label")
- '("const-char*" "tip")
- '("const-char*" "icon" (null-ok) (default "NULL"))
- )
-)
-
-(define-method set_submenu
- (of-object "ThunarxMenuItem")
- (c-name "thunarx_menu_item_set_submenu")
- (return-type "none")
- (parameters
- '("ThunarxMenu*" "menu")
- )
-)
-
-(define-method activate
- (of-object "ThunarxMenuItem")
- (c-name "thunarx_menu_item_activate")
- (return-type "none")
-)
-
-;; From /usr/include/thunarx/libthunarx-extension/thunarx-property-page.h
-
-(define-function thunarx_property_page_get_type
- (c-name "thunarx_property_page_get_type")
- (return-type "GType")
-)
-
-(define-function thunarx_property_page_new
- (c-name "thunarx_property_page_new")
- (is-constructor-of "ThunarxPropertyPage")
- (return-type "ThunarxPropertyPage*")
- (parameters
- '("const-char*" "name")
- '("GtkWidget*" "label")
- '("GtkWidget*" "page")
- )
-)
diff --git a/thunarx.override b/thunarx.override
deleted file mode 100644
index ea72b09..0000000
--- a/thunarx.override
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- Mode: C; c-basic-offset: 4 -*-
- * Copyright (C) 2004 Johan Dahlin
- *
- * thunarx.override: overrides for the thunarx extension library
- *
- * 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
- */
-%%
-headers
-#define NO_IMPORT_PYGOBJECT
-#include "pygobject.h"
-
-#include "pygnomevfs.h"
-
-#include <thunarx/thunarx-file-info.h>
-#include <thunarx/thunarx-info-provider.h>
-#include <thunarx/thunarx-column-provider.h>
-#include <thunarx/thunarx-location-widget-provider.h>
-#include <thunarx/thunarx-menu-provider.h>
-#include <thunarx/thunarx-property-page-provider.h>
-
-%%
-modulename thunarx
-%%
-import gobject.GObject as PyGObject_Type
-import gtk.Widget as PyGtkWidget_Type
-import gtk.Window as PyGtkWindow_Type
-%%
-ignore-glob
- *_get_type
-%%
-override thunarx_file_info_get_vfs_file_info noargs
-static PyObject *
-_wrap_thunarx_file_info_get_vfs_file_info(PyGObject *self)
-{
- GnomeVFSFileInfo *ret;
-
- ret = thunarx_file_info_get_vfs_file_info(NAUTILUS_FILE_INFO(self->obj));
- if (ret) {
- return pygnome_vfs_file_info_new(ret);
- }
-
- Py_INCREF(Py_None);
- return Py_None;
-}
diff --git a/thunarxmodule.c b/thunarxmodule.c
deleted file mode 100644
index a72ac2e..0000000
--- a/thunarxmodule.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- Mode: C; c-basic-offset: 4 -*-
- * Copyright (C) 2004 Johan Dahlin
- *
- * thunarx.override: overrides for the thunarx extension library
- *
- * 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
- */
-
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-/* include this first, before NO_IMPORT_PYGOBJECT is defined */
-#include <pygobject.h>
-#include <pygtk/pygtk.h>
-#include "pygnomevfs.h"
-
-void pythunarx_register_classes (PyObject *d);
-void pythunarx_add_constants(PyObject *module, const gchar *strip_prefix);
-
-extern PyMethodDef pythunarx_functions[];
-
-DL_EXPORT(void)
-initthunarx(void)
-{
- PyObject *m, *d;
-
- if (!g_getenv("INSIDE_NAUTILUS_PYTHON")) {
- Py_FatalError("This module can only be used from thunarx");
- return;
- }
-
- init_pygobject ();
- init_pygtk ();
- init_pygnomevfs();
-
- m = Py_InitModule ("thunarx", pythunarx_functions);
- d = PyModule_GetDict (m);
-
- pythunarx_register_classes (d);
- pythunarx_add_constants(m, "NAUTILUS_");
-}
More information about the Xfce4-commits
mailing list