[Xfce4-commits] [bindings/thunarx-python] 02/03: Updated documentation and examples for thunarx-3

noreply at xfce.org noreply at xfce.org
Thu Nov 30 03:31:20 CET 2017


This is an automated email from the git hooks/post-receive script.

a   d   a   m   p   l   u   m   b       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository bindings/thunarx-python.

commit 12cb676c1dfdf00b7d702326634f2089bdc3bb2b
Author: Adam Plumb <adamplumb at gmail.com>
Date:   Wed Nov 29 21:23:07 2017 -0500

    Updated documentation and examples for thunarx-3
---
 .gitignore                                         |   1 +
 configure.ac.in                                    |   8 +-
 docs/Makefile.am                                   |  74 ++-
 docs/reference/thunarx-python-class-reference.xml  |   2 +
 docs/reference/thunarx-python-file-info.xml        |  46 +-
 docs/reference/thunarx-python-menu-item.xml        | 177 +++++++
 docs/reference/thunarx-python-menu-provider.xml    | 179 +++----
 docs/reference/thunarx-python-menu.xml             | 103 ++++
 docs/reference/thunarx-python-overview-example.xml |  31 +-
 docs/reference/thunarx-python-overview.xml         |  17 +-
 .../thunarx-python-preferences-provider.xml        |  64 ++-
 .../thunarx-python-property-page-provider.xml      |  47 +-
 docs/reference/thunarx-python-property-page.xml    |  38 +-
 docs/reference/thunarx-python-renamer-provider.xml |  40 +-
 docs/reference/thunarx-python-renamer.xml          |  72 +--
 examples/Makefile                                  | 565 +++++++++++++++++++++
 examples/Makefile.in                               | 565 +++++++++++++++++++++
 examples/thunarx-renamer-plugin.py                 |  11 +-
 examples/thunarx-submenu-plugin.py                 |   7 -
 19 files changed, 1719 insertions(+), 328 deletions(-)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0fa5896
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+docs/reference/*.docbook
diff --git a/configure.ac.in b/configure.ac.in
index 3cd4a9a..dd8675d 100644
--- a/configure.ac.in
+++ b/configure.ac.in
@@ -67,7 +67,7 @@ AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)])
 AM_CHECK_PYTHON_LIBS(,[AC_MSG_ERROR(could not find Python lib)])
 
 dnl Check for gtk-doc
-GTK_DOC_CHECK(1.9)
+GTK_DOC_CHECK(1.14)
 
 dnl ***************************
 dnl *** Determine the installed thunarx version ***
@@ -110,9 +110,9 @@ dnl ---------------------------------
 dnl Check for gtk-doc dependencies
 dnl ---------------------------------
 if test "${enable_gtk_doc}" != no; then
-    dnl Check for xsltproc
-    AC_PATH_PROG([XSLTPROC], [xsltproc])
-    if test -z "$XSLTPROC"; then
+    dnl Check for gtkdoc-mkhtml
+    AC_PATH_PROG([GTKDOC_MKHTML], [gtkdoc-mkhtml])
+    if test -z "$GTKDOC_MKHTML"; then
         echo " disabling generation of docs"
         enable_gtk_doc=no
     fi
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 6d67e4f..2b16969 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -5,9 +5,6 @@ BUILDDIR = $(top_builddir)/docs
 REF_VERSION = $(VERSION)
 FULL_VERSION = $(VERSION)
 
-HTML_STYLE = $(PYGOBJECT_DATADIR)/pygobject/xsl/ref-html-style.xsl
-PDF_STYLE = $(PYGOBJECT_DATADIR)/pygobject/xsl/pdf-style.xsl
-
 XMLFILES = 							\
 	reference/thunarx-python-ref.xml			\
 	reference/thunarx-python-overview.xml			\
@@ -15,6 +12,8 @@ XMLFILES = 							\
 	reference/thunarx-python-class-reference.xml			\
 	reference/thunarx-python-provider-reference.xml			\
 	reference/thunarx-python-menu-provider.xml \
+	reference/thunarx-python-menu-item.xml \
+	reference/thunarx-python-menu.xml \
 	reference/thunarx-python-property-page.xml \
 	reference/thunarx-python-property-page-provider.xml \
 	reference/thunarx-python-renamer.xml \
@@ -22,38 +21,40 @@ XMLFILES = 							\
 	reference/thunarx-python-preferences-provider.xml \
 	reference/thunarx-python-file-info.xml
 
-HTMLdir = $(datadir)/gtk-doc/html/thunarx-python
-HTMLFILES =						\
-	html/index.html					\
-	html/index.sgml					\
-	html/thunarx-python-overview.html \
-	html/thunarx-python-overview-example.html \
-	html/thunarx-python-class-reference.html \
-	html/thunarx-python-provider-reference.html \
-	html/class-thunarx-python-menu-provider.html  \
-	html/class-thunarx-python-property-page.html  \
-	html/class-thunarx-python-property-page-provider.html  \
-	html/class-thunarx-python-renamer.html  \
-	html/class-thunarx-python-renamer-provider.html  \
-	html/class-thunarx-python-preferences-provider.html  \
-	html/class-thunarx-python-file-info.html  \
-	html/thunarx-python.devhelp
-
-CSS_FILES = $(PYGOBJECT_PYGDOCS)/style.css
-CSSdir = $(HTMLdir)
-CSS_DATA = $(CSS_FILES)
-
+HTMLdir = $(HTML_DIR)/thunarx-python
+HTML_DATA =						\
+	index.html					\
+	thunarx-python-overview.html \
+	thunarx-python-overview-example.html \
+	thunarx-python-class-reference.html \
+	thunarx-python-provider-reference.html \
+	class-thunarx-python-menu-provider.html  \
+	class-thunarx-python-menu-item.html  \
+	class-thunarx-python-menu.html  \
+	class-thunarx-python-property-page.html  \
+	class-thunarx-python-property-page-provider.html  \
+	class-thunarx-python-renamer.html  \
+	class-thunarx-python-renamer-provider.html  \
+	class-thunarx-python-preferences-provider.html  \
+	class-thunarx-python-file-info.html  \
+	thunarx-python.devhelp2 \
+	up.png up-insensitive.png \
+	right.png right-insensitive.png \
+	left.png left-insensitive.png home.png \
+	style.css
+	
 BUILT_SOURCES = 		\
-	reference/builddate.xml	\
-	$(HTMLFILES)
+	reference/builddate.xml \
+	$(HTML_DATA)
 
 CLEANFILES = 			\
 	thunarx-python-ref.*	\
 	reference/builddate.xml \
-	$(HTMLFILES)
+	$(HTML_DATA)
 
 EXTRA_DIST = 		\
-	$(XMLFILES) 
+	$(XMLFILES) \
+	$(HTML_DATA)
 
 REFERENCE_DEPS = 	\
 	reference 	\
@@ -63,18 +64,9 @@ if ENABLE_GTK_DOC
 
 reference/builddate.xml: $(REFERENCE_DEPS)
 	$(PYTHON) -c 'import datetime; print datetime.date.today()' > $@
-
-$(HTMLFILES): $(REFERENCE_DEPS) reference/builddate.xml
-	xsltproc --nonet --xinclude -o $(BUILDDIR)/html/ \
-		 --path $(BUILDDIR)/reference:$(srcdir)/reference \
-		 --stringparam gtkdoc.bookname "thunarx-python" \
-		 --stringparam gtkdoc.version ${REF_VERSION} \
-		 $(HTML_STYLE) $(srcdir)/reference/thunarx-python-ref.xml
-	$(PYGOBJECT_FIXXREF) -i $(PYGOBJECT_PYGDOCS) $(BUILDDIR)/html 
+	
+$(HTML_DATA): $(REFERENCE_DEPS) reference/builddate.xml
+	$(GTKDOC_MKHTML) thunarx-python reference/thunarx-python-ref.xml
 	touch $@
-
-pdf: $(REFERENCE_DEPS) reference/builddate.xml
-	xsltproc --nonet --xinclude -o thunarx-python-ref.fo \
-		$(PDF_STYLE) reference/thunarx-python-ref.xml
-	pdfxmltex thunarx-python-ref.fo >output </dev/null
+	
 endif
diff --git a/docs/reference/thunarx-python-class-reference.xml b/docs/reference/thunarx-python-class-reference.xml
index eeb8e22..0b5aa62 100644
--- a/docs/reference/thunarx-python-class-reference.xml
+++ b/docs/reference/thunarx-python-class-reference.xml
@@ -7,6 +7,8 @@
     <title>Available Classes</title>
     <xi:include href="thunarx-python-file-info.xml"/>
     <xi:include href="thunarx-python-property-page.xml"/>
+    <xi:include href="thunarx-python-menu-item.xml"/>
+    <xi:include href="thunarx-python-menu.xml"/>
     <xi:include href="thunarx-python-renamer.xml"/>
 </chapter>
 
diff --git a/docs/reference/thunarx-python-file-info.xml b/docs/reference/thunarx-python-file-info.xml
index 609b21c..91f9eae 100644
--- a/docs/reference/thunarx-python-file-info.xml
+++ b/docs/reference/thunarx-python-file-info.xml
@@ -4,8 +4,8 @@
 
 <refentry id="class-thunarx-python-file-info">
   <refnamediv>
-    <refname>thunarx.FileInfo</refname>
-    <refpurpose>thunarx.FileInfo Reference</refpurpose>
+    <refname>Thunarx.FileInfo</refname>
+    <refpurpose>Thunarx.FileInfo Reference</refpurpose>
   </refnamediv>
 
 <!-- ******************************* -->
@@ -16,8 +16,8 @@
     <title>Synopsis</title>
 
     <classsynopsis language="python">
-        <ooclass><classname>thunarx.FileInfo</classname></ooclass>
-        <ooclass><classname><link linkend="class-ginterface">gobject.GInterface</link></classname></ooclass>
+        <ooclass><classname>Thunarx.FileInfo</classname></ooclass>
+        <ooclass><classname><link linkend="class-ginterface">GObject.GInterface</link></classname></ooclass>
 
         <methodsynopsis language="python">
             <methodname><link linkend="method-thunarx-python-file-info--get-name">get_name</link></methodname>
@@ -88,8 +88,8 @@
 <refsect1>
     <title>Ancestry</title>
 
-<synopsis>+-- <link linkend="class-ginterface">gobject.GInterface</link>
-    +-- <link linkend="class-thunarx-python-file-info">thunarx.FileInfo</link>
+<synopsis>+-- <link linkend="class-ginterface">GObject.GInterface</link>
+    +-- <link linkend="class-thunarx-python-file-info">Thunarx.FileInfo</link>
 </synopsis>
 </refsect1>
 
@@ -102,7 +102,7 @@
     <title>Description</title>
 
       <para>
-        Each <link linkend="class-thunarx-python-file-info"><classname>thunarx.FileInfo</classname></link> object is an abstraction
+        Each <link linkend="class-thunarx-python-file-info"><classname>Thunarx.FileInfo</classname></link> object is an abstraction
         of a real file.
       </para>
 
@@ -142,7 +142,7 @@
     <title>Public Methods</title>
 
     <refsect2 id="method-thunarx-python-file-info--get-name">
-        <title>thunarx.FileInfo.get_name</title>
+        <title>Thunarx.FileInfo.get_name</title>
         <programlisting><methodsynopsis language="python">
             <methodname>get_name</methodname>
         </methodsynopsis></programlisting>
@@ -155,7 +155,7 @@
     </refsect2>
 
     <refsect2 id="method-thunarx-python-file-info--get-uri">
-        <title>thunarx.FileInfo.get_uri</title>
+        <title>Thunarx.FileInfo.get_uri</title>
         <programlisting><methodsynopsis language="python">
             <methodname>get_uri</methodname>
         </methodsynopsis></programlisting>
@@ -168,7 +168,7 @@
     </refsect2>
 
     <refsect2 id="method-thunarx-python-file-info--get-parent-uri">
-        <title>thunarx.FileInfo.get_parent_uri</title>
+        <title>Thunarx.FileInfo.get_parent_uri</title>
         <programlisting><methodsynopsis language="python">
             <methodname>get_parent_uri</methodname>
         </methodsynopsis></programlisting>
@@ -181,7 +181,7 @@
     </refsect2>
 
     <refsect2 id="method-thunarx-python-file-info--get-uri-scheme">
-        <title>thunarx.FileInfo.get_uri_scheme</title>
+        <title>Thunarx.FileInfo.get_uri_scheme</title>
         <programlisting><methodsynopsis language="python">
             <methodname>get_uri_scheme</methodname>
         </methodsynopsis></programlisting>
@@ -194,7 +194,7 @@
     </refsect2>
 
     <refsect2 id="method-thunarx-python-file-info--get-mime-type">
-        <title>thunarx.FileInfo.get_mime_type</title>
+        <title>Thunarx.FileInfo.get_mime_type</title>
         <programlisting><methodsynopsis language="python">
             <methodname>get_mime_type</methodname>
         </methodsynopsis></programlisting>
@@ -207,7 +207,7 @@
     </refsect2>
 
     <refsect2 id="method-thunarx-python-file-info--has-mime-type">
-        <title>thunarx.FileInfo.has_mime_type</title>
+        <title>Thunarx.FileInfo.has_mime_type</title>
         <programlisting><methodsynopsis language="python">
             <methodname>has_mime_type</methodname>
         </methodsynopsis></programlisting>
@@ -221,7 +221,7 @@
                 <listitem><simpara>
 Checks whether file_info is of the given mime_type or whether the MIME-type of file_info is a subclass of mime_type.
 
-This is the preferred way for most extensions to check whether they support a given file or not, and you should consider using this method rather than thunarx.FileInfo.get_mime_type(). A simple example would be a menu extension that performs a certain action on text files. In this case you want to check whether a given thunarx.FileInfo refers to any kind of text file, not only to "text/plain" (e.g. this also includes "text/xml" and "application/x-desktop").
+This is the preferred way for most extensions to check whether they support a given file or not, and you should consider using this method rather than Thunarx.FileInfo.get_mime_type(). A simple example would be a menu extension that performs a certain action on text files. In this case you want to check whether a given Thunarx.FileInfo refers to any kind of text file, not only to "text/plain" (e.g. this also includes "text/xml" and "application/x-desktop").
 
 But you should be aware that this method may take some time to test whether mime_type is valid for file_info, so don't call it too often.
                 </simpara></listitem>
@@ -230,7 +230,7 @@ But you should be aware that this method may take some time to test whether mime
     </refsect2>
 
     <refsect2 id="method-thunarx-python-file-info--is-directory">
-        <title>thunarx.FileInfo.is_directory</title>
+        <title>Thunarx.FileInfo.is_directory</title>
         <programlisting><methodsynopsis language="python">
             <methodname>is_directory</methodname>
         </methodsynopsis></programlisting>
@@ -243,7 +243,7 @@ But you should be aware that this method may take some time to test whether mime
     </refsect2>
 
     <refsect2 id="method-thunarx-python-file-info--get-file-info">
-        <title>thunarx.FileInfo.get_file_info</title>
+        <title>Thunarx.FileInfo.get_file_info</title>
         <programlisting><methodsynopsis language="python">
             <methodname>get_file_info</methodname>
         </methodsynopsis></programlisting>
@@ -256,7 +256,7 @@ But you should be aware that this method may take some time to test whether mime
     </refsect2>
 
     <refsect2 id="method-thunarx-python-file-info--get-filesystem-info">
-        <title>thunarx.FileInfo.get_filesystem_info</title>
+        <title>Thunarx.FileInfo.get_filesystem_info</title>
         <programlisting><methodsynopsis language="python">
             <methodname>get_filesystem_info</methodname>
         </methodsynopsis></programlisting>
@@ -269,7 +269,7 @@ But you should be aware that this method may take some time to test whether mime
     </refsect2>
 
     <refsect2 id="method-thunarx-python-file-info--get-location">
-        <title>thunarx.FileInfo.get_location</title>
+        <title>Thunarx.FileInfo.get_location</title>
         <programlisting><methodsynopsis language="python">
             <methodname>get_location</methodname>
         </methodsynopsis></programlisting>
@@ -282,7 +282,7 @@ But you should be aware that this method may take some time to test whether mime
     </refsect2>
 
     <refsect2 id="method-thunarx-python-file-info--changed">
-        <title>thunarx.FileInfo.changed</title>
+        <title>Thunarx.FileInfo.changed</title>
         <programlisting><methodsynopsis language="python">
             <methodname>changed</methodname>
         </methodsynopsis></programlisting>
@@ -295,7 +295,7 @@ But you should be aware that this method may take some time to test whether mime
     </refsect2>
 
     <refsect2 id="method-thunarx-python-file-info--renamed">
-        <title>thunarx.FileInfo.renamed</title>
+        <title>Thunarx.FileInfo.renamed</title>
         <programlisting><methodsynopsis language="python">
             <methodname>renamed</methodname>
         </methodsynopsis></programlisting>
@@ -323,18 +323,18 @@ The plugins should instead connect to the ::renamed signal and update it's inter
     <title>Signal Details</title>
 
   <refsect2 id="signal-thunarx-python-file-info--changed">
-    <title>The "changed" thunarx.FileInfo Signal</title>
+    <title>The "changed" Thunarx.FileInfo Signal</title>
 
     <para>
 Emitted whenever the system notices a change to file_info.
 </para><para>
-Thunar plugins should use this signal to stay informed about changes to a file_info for which they currently display information (i.e. in a thunarx.PropertyPage), and update it's user interface whenever a change is noticed on file_info.
+Thunar plugins should use this signal to stay informed about changes to a file_info for which they currently display information (i.e. in a Thunarx.PropertyPage), and update it's user interface whenever a change is noticed on file_info.
     </para>
 
   </refsect2>
   
   <refsect2 id="signal-thunarx-python-file-info--renamed">
-    <title>The "renamed" thunarx.FileInfo Signal</title>
+    <title>The "renamed" Thunarx.FileInfo Signal</title>
 
     <para>
 Emitted when the file_info is renamed to another name.
diff --git a/docs/reference/thunarx-python-menu-item.xml b/docs/reference/thunarx-python-menu-item.xml
new file mode 100644
index 0000000..6857783
--- /dev/null
+++ b/docs/reference/thunarx-python-menu-item.xml
@@ -0,0 +1,177 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+    "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+
+<refentry id="class-thunarx-python-menu-item">
+  <refnamediv>
+    <refname>Thunarx.MenuItem</refname>
+    <refpurpose>Thunarx.MenuItem Reference</refpurpose>
+  </refnamediv>
+
+<!-- ******************************* -->
+<!-- BEGIN OF NAUTILUS-PYTHON SYNOPSIS -->
+<!-- ******************************* -->
+
+  <refsect1>
+    <title>Synopsis</title>
+
+    <classsynopsis language="python">
+        <ooclass><classname>Thunarx.MenuItem</classname></ooclass>
+        <ooclass><classname><link linkend="class-ginterface">GObject.GInterface</link></classname></ooclass>
+
+        <methodsynopsis language="python">
+            <methodname><link linkend="method-thunarx-python-menu-item--set-sensitive">set_sensitive</link></methodname>
+            <methodparam>Boolean</methodparam>
+        </methodsynopsis>
+
+        <methodsynopsis language="python">
+            <methodname><link linkend="method-thunarx-python-menu-item--get-sensitive">get_sensitive</link></methodname>
+            <methodparam></methodparam>
+        </methodsynopsis>
+
+        <methodsynopsis language="python">
+            <methodname><link linkend="method-thunarx-python-menu-item--set-menu">set_menu</link></methodname>
+            <methodparam>ThunarxMenu</methodparam>
+        </methodsynopsis>
+
+        <methodsynopsis language="python">
+            <methodname><link linkend="method-thunarx-python-menu-item--activate">activate</link></methodname>
+            <methodparam></methodparam>
+        </methodsynopsis>
+    </classsynopsis>
+  </refsect1>
+
+<!-- ********************************* -->
+<!-- BEGIN OF ANCESTRY -->
+<!-- ********************************* -->
+
+<refsect1>
+    <title>Ancestry</title>
+
+<synopsis>+-- <link linkend="class-ginterface">GObject.GInterface</link>
+    +-- <link linkend="class-thunarx-python-menu-item">Thunarx.MenuItem</link>
+</synopsis>
+</refsect1>
+
+
+<!-- ********************************** -->
+<!-- BEGIN OF DESCRIPTION -->
+<!-- ********************************** -->
+
+  <refsect1 id="description-menu-item">
+    <title>Description</title>
+
+      <para>
+        Each <link linkend="class-thunarx-python-menu-item"><classname>Thunarx.MenuItem</classname></link> object is an abstraction
+        of a real menu item.
+      </para>
+
+  </refsect1>
+
+
+<!-- ****************************************** -->
+<!-- BEGIN OF SIGNAL PROTOTYPES -->
+<!-- ****************************************** -->
+
+<refsect1>
+    <title>Signals</title>
+    <variablelist>
+      <varlistentry>
+        <term><link linkend="signal-thunarx-python-menu-item--activate">"activate"</link></term>
+        <listitem>
+          <methodsynopsis language="python"><methodname>callback</methodname>
+          </methodsynopsis>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+</refsect1>
+
+
+<!-- ******************************** -->
+<!-- BEGIN OF METHODS -->
+<!-- ******************************** -->
+
+<refsect1>
+    <title>Public Methods</title>
+
+    <refsect2 id="method-thunarx-python-menu-item--get-sensitive">
+        <title>Thunarx.MenuItem.get_sensitive</title>
+        <programlisting><methodsynopsis language="python">
+            <methodname>get_sensitive</methodname>
+        </methodsynopsis></programlisting>
+        <variablelist>
+            <varlistentry>
+                <term><emphasis>Returns</emphasis> :Boolean</term>
+                <listitem><simpara>Returns whether the menu item is sensitive.</simpara></listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect2>
+
+    <refsect2 id="method-thunarx-python-menu-item--set-sensitive">
+        <title>Thunarx.MenuItem.set_sensitive</title>
+        <programlisting><methodsynopsis language="python">
+            <methodname>set_sensitive</methodname>
+            <methodparam>Boolean</methodparam>
+        </methodsynopsis></programlisting>
+        <variablelist>
+            <varlistentry>
+                <term><emphasis>Returns</emphasis> :</term>
+                <listitem><simpara>Set whether the menu item is sensitive.</simpara></listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect2>
+
+    <refsect2 id="method-thunarx-python-menu-item--set-menu">
+        <title>Thunarx.MenuItem.set_menu</title>
+        <programlisting><methodsynopsis language="python">
+            <methodname>set_menu</methodname>
+            <methodparam>ThunarxMenu</methodparam>
+        </methodsynopsis></programlisting>
+        <variablelist>
+            <varlistentry>
+                <term><emphasis>Returns</emphasis> :</term>
+                <listitem><simpara>Add a menu to the menu item (i.e. submenu)</simpara></listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect2>
+    
+
+    <refsect2 id="method-thunarx-python-menu-item--activate">
+        <title>Thunarx.MenuItem.activate</title>
+        <programlisting><methodsynopsis language="python">
+            <methodname>activate</methodname>
+        </methodsynopsis></programlisting>
+        <variablelist>
+            <varlistentry>
+                <term><emphasis>Returns</emphasis> :</term>
+                <listitem><simpara>Emits the ::activate signal on menu_item. This method should not be invoked by thunarx-python plugins, instead the file manager itself will use this method to emit ::activate whenever it notices a change on menu_item.</simpara></listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect2>
+
+</refsect1>
+
+
+
+<!-- ******************************** -->
+<!-- BEGIN OF SIGNAL DETAILS -->
+<!-- ******************************** --> 
+ 
+<refsect1>
+    <title>Signal Details</title>
+
+  <refsect2 id="signal-thunarx-python-menu-item--activate">
+    <title>The "activate" Thunarx.MenuItem Signal</title>
+
+    <para>
+Emitted whenever the system notices a change to menu_item.
+</para><para>
+Thunar plugins should use this signal to stay informed about changes to a menu_item for which they currently display information (i.e. in a Thunarx.PropertyPage), and update it's user interface whenever a change is noticed on menu_item.
+    </para>
+
+  </refsect2>
+  
+</refsect1>
+
+</refentry>
+
diff --git a/docs/reference/thunarx-python-menu-provider.xml b/docs/reference/thunarx-python-menu-provider.xml
index 6562226..b4bada6 100644
--- a/docs/reference/thunarx-python-menu-provider.xml
+++ b/docs/reference/thunarx-python-menu-provider.xml
@@ -4,8 +4,8 @@
 
 <refentry id="class-thunarx-python-menu-provider">
   <refnamediv>
-    <refname>thunarx.MenuProvider</refname>
-    <refpurpose>thunarx.MenuProvider Reference</refpurpose>
+    <refname>Thunarx.MenuProvider</refname>
+    <refpurpose>Thunarx.MenuProvider Reference</refpurpose>
   </refnamediv>
 
 <!-- ******************************* -->
@@ -16,22 +16,22 @@
     <title>Synopsis</title>
 
     <classsynopsis language="python">
-      <ooclass><classname>thunarx.MenuProvider</classname></ooclass>
+      <ooclass><classname>Thunarx.MenuProvider</classname></ooclass>
 
       <methodsynopsis language="python">
-        <methodname><link linkend="method-thunarx-python-menu-provider--get-file-actions">get_file_actions</link></methodname>
+        <methodname><link linkend="method-thunarx-python-menu-provider--get-file-menu-items">get_file_menu_items</link></methodname>
         <methodparam><parameter role="keyword">window</parameter></methodparam>
         <methodparam><parameter role="keyword">files</parameter></methodparam>
       </methodsynopsis>
 
       <methodsynopsis language="python">
-        <methodname><link linkend="method-thunarx-python-menu-provider--get-folder-actions">get_folder_actions</link></methodname>
+        <methodname><link linkend="method-thunarx-python-menu-provider--get-folder-menu-items">get_folder_menu_items</link></methodname>
         <methodparam><parameter role="keyword">window</parameter></methodparam>
         <methodparam><parameter role="keyword">folder</parameter></methodparam>
       </methodsynopsis>
       
       <methodsynopsis language="python">
-        <methodname><link linkend="method-thunarx-python-menu-provider--get-dnd-actions">get_dnd_actions</link></methodname>
+        <methodname><link linkend="method-thunarx-python-menu-provider--get-dnd-menu-items">get_dnd_menu_items</link></methodname>
         <methodparam><parameter role="keyword">window</parameter></methodparam>
         <methodparam><parameter role="keyword">folder</parameter></methodparam>
         <methodparam><parameter role="keyword">files</parameter></methodparam>
@@ -53,89 +53,70 @@
 
 
 <example>
-    <title>A thunarx.MenuProvider plugin (without submenus)</title>
+    <title>A Thunarx.MenuProvider plugin (without submenus)</title>
     <programlisting>
-import thunarx
-import gtk
+from gi.repository import GObject, Gtk, Thunarx
 
-class ThunarxMenuProviderPlugin(thunarx.MenuProvider):
+class ThunarxMenuProviderPlugin(GObject.GObject, Thunarx.MenuProvider):
     def __init__(self):
         pass
     
-    def get_file_actions(self, window, files):
-        return [gtk.Action("TMP:TestFileAction", "PyFileAction", "Python File Action", gtk.STOCK_FILE)]
-    
-    def get_folder_actions(self, window, folder):
-        return [gtk.Action("TMP:TestFolderAction", "PyFolderAction", "Python Folder Action", gtk.STOCK_DIRECTORY)]
+    def get_file_menu_items(self, window, files):
+        item = Thunarx.MenuItem(name="TMP:TestFileAction", label="Python File Action", tooltip='', icon=Gtk.STOCK_FILE)
+        item.connect("activate", self.__do_something, window)
+
+        return [item]
+
+    def get_folder_menu_items(self, window, folder):
+        return [Thunarx.MenuItem(name="TMP:TestFolderAction", label="Python Folder Action", tooltip='', icon=Gtk.STOCK_OPEN)]
+
+    def __do_something(self, item, window):
+        print "Doing something"
     </programlisting>
 </example>
 
 <example>
-    <title>A thunarx.MenuProvider plugin (with submenus)</title>
+    <title>A Thunarx.MenuProvider plugin (with submenus)</title>
     <programlisting>
-import thunarx
-import gtk
-
-"""
-Thunarx Submenu Plugin
-    This plugin shows an example of a MenuProvider plugin that implements
-    sub-menus.    The example used here requires the developer to sub-class 
-    gtk.Action and override the create_menu_item virtual method.
-    
-"""
-
-class MyAction(gtk.Action):
-    __gtype_name__ = "MyAction"
-    
-    def __init__(self, name, label, tooltip=None, stock_id=None, menu_handler=None):
-        gtk.Action.__init__(self, name, label, tooltip, stock_id)
-        self.menu_handler = menu_handler
-
-    def create_menu_item(self):
-        menuitem = gtk.MenuItem(self.get_label())
-        
-        if self.menu_handler is not None:
-            menu = gtk.Menu()
-            menuitem.set_submenu(menu)
-            self.menu_handler(menu)
-        
-        return menuitem
+from gi.repository import GObject, Gtk, Thunarx
 
-    do_create_menu_item = create_menu_item
-
-def PyFileActionMenu(menu):
-    action = gtk.Action("TMP:Submenuitem1", "Submenuitem 1", None, None)
-    subitem = action.create_menu_item()
-    menu.append(subitem)
-    subitem.show()
-
-    action = MyAction("TMP:Submenuitem2", "Submenuitem 2", None, None, menu_handler=PyFileActionSubmenu)
-    subitem = action.create_menu_item()
-    menu.append(subitem)
-    subitem.show()
-
-def PyFileActionSubmenu(menu):
-    action = gtk.Action("TMP:SubSubmenuitem1", "Subsubmenuitem 1", None, None)
-    subitem = action.create_menu_item()
-    menu.append(subitem)
-    subitem.show()
-
-    action = gtk.Action("TMP:SubSubmenuitem2", "Subsubmenuitem 2", None, None)
-    subitem = action.create_menu_item()
-    menu.append(subitem)
-    subitem.show()
-
-class ThunarxSubMenuProviderPlugin(thunarx.MenuProvider):
+class ThunarxSubMenuProviderPlugin(GObject.GObject, Thunarx.MenuProvider):
     def __init__(self):
         pass
     
-    def get_file_actions(self, window, files):
-        return [MyAction("TMP:TestFileAction", "PyFileAction", "Python File Action", 
-            gtk.STOCK_FILE, menu_handler=PyFileActionMenu)]
+    def get_file_menu_items(self, window, files):
+        item = Thunarx.MenuItem(name="TMP:Item1", label="Python File Action", tooltip='', icon=Gtk.STOCK_FILE)
+
+        submenu = Thunarx.Menu()
+        subitem1 = Thunarx.MenuItem(name='TMP::Subitem1', 
+                                         label='Subitem1', 
+                                         tooltip='First tip',
+                                         icon=Gtk.STOCK_DND)
+        subitem1.connect("activate", self.__subitem1_callback, window)
+        submenu.append_item(subitem1)
+
+        subitem2 = Thunarx.MenuItem(name='TMP::Subitem2', 
+                                         label='Subitem2', 
+                                         tooltip='Second tip',
+                                         icon=Gtk.STOCK_FULLSCREEN)
+        subitem2.connect("activate", self.__subitem2_callback, window)
+        submenu.append_item(subitem2)
+                                         
+        item.set_menu(submenu)
+        
+        item2 = Thunarx.MenuItem(name='TMP::Item2', 
+                                         label='Another item', 
+                                         tooltip='',
+                                         icon=Gtk.STOCK_OK)
     
-    def get_folder_actions(self, window, folder):
-        return [MyAction("TMP:TestFolderAction", "PyFolderAction", 
-            "Python Folder Action", gtk.STOCK_DIRECTORY)]
+        return item,item2
+
+    def __subitem1_callback(self, item, window):
+        print "Subitem1 call"
+        
+    def __subitem2_callback(self, item, window):
+        print "Subitem2 call"
+
     </programlisting>
 </example>
 
@@ -147,11 +128,11 @@ class ThunarxSubMenuProviderPlugin(thunarx.MenuProvider):
   <refsect1>
         <title>Passive Methods</title>
 
-        <refsect2 id="method-thunarx-python-menu-provider--get-file-actions">
-          <title>thunarx.MenuProvider.get_file_actions</title>
+        <refsect2 id="method-thunarx-python-menu-provider--get-file-menu-items">
+          <title>Thunarx.MenuProvider.get_file_menu_items</title>
 
           <programlisting><methodsynopsis language="python">
-            <methodname>get_file_actions</methodname>
+            <methodname>get_file_menu_items</methodname>
             <methodparam><parameter role="keyword">window</parameter></methodparam>
             <methodparam><parameter role="keyword">files</parameter></methodparam>
           </methodsynopsis></programlisting>
@@ -159,29 +140,29 @@ class ThunarxSubMenuProviderPlugin(thunarx.MenuProvider):
           <variablelist>
             <varlistentry>
                 <term><parameter role="keyword">window</parameter> :</term>
-                <listitem><simpara>the current <link linkend="class-gtkwindow"><classname>gtk.Window</classname></link> instance</simpara></listitem>
+                <listitem><simpara>the current <link linkend="class-Gtkwindow"><classname>Gtk.Window</classname></link> instance</simpara></listitem>
             </varlistentry>
             <varlistentry>
                 <term><parameter role="keyword">menu</parameter> :</term>
-                <listitem><simpara>a list of <link linkend="class-thunarx-python-file-info"><classname>thunarx.FileInfo</classname></link> objects.</simpara></listitem>
+                <listitem><simpara>a list of <link linkend="class-thunarx-python-file-info"><classname>Thunarx.FileInfo</classname></link> objects.</simpara></listitem>
             </varlistentry>
             <varlistentry>
                 <term><emphasis>Returns</emphasis> :</term>
-                <listitem><simpara>a list of gtk.Action objects</simpara></listitem>
+                <listitem><simpara>a list of Thunarx.MenuItem objects</simpara></listitem>
             </varlistentry>
           </variablelist>
 
           <para>
-            The <methodname>get_file_actions</methodname>() method returns a list of
-            gtk.Action objects.
+            The <methodname>get_file_menu_items</methodname>() method returns a list of
+            Thunarx.MenuItem objects.
           </para>
         </refsect2>
 
-        <refsect2 id="method-thunarx-python-menu-provider--get-folder-actions">
-          <title>thunarx.MenuProvider.get_folder_actions</title>
+        <refsect2 id="method-thunarx-python-menu-provider--get-folder-menu-items">
+          <title>Thunarx.MenuProvider.get_folder_menu_items</title>
 
           <programlisting><methodsynopsis language="python">
-            <methodname>get_folder_actions</methodname>
+            <methodname>get_folder_menu_items</methodname>
             <methodparam><parameter role="keyword">window</parameter></methodparam>
             <methodparam><parameter role="keyword">folder</parameter></methodparam>
           </methodsynopsis></programlisting>
@@ -189,29 +170,29 @@ class ThunarxSubMenuProviderPlugin(thunarx.MenuProvider):
           <variablelist>
             <varlistentry>
                 <term><parameter role="keyword">window</parameter> :</term>
-                <listitem><simpara>the current <link linkend="class-gtkwindow"><classname>gtk.Window</classname></link> instance</simpara></listitem>
+                <listitem><simpara>the current <link linkend="class-Gtkwindow"><classname>Gtk.Window</classname></link> instance</simpara></listitem>
             </varlistentry>
             <varlistentry>
                 <term><parameter role="keyword">folder</parameter> :</term>
-                <listitem><simpara>the current folder, as a <link linkend="class-thunarx-python-file-info"><classname>thunarx.FileInfo</classname></link> object.</simpara></listitem>
+                <listitem><simpara>the current folder, as a <link linkend="class-thunarx-python-file-info"><classname>Thunarx.FileInfo</classname></link> object.</simpara></listitem>
             </varlistentry>
             <varlistentry>
                 <term><emphasis>Returns</emphasis> :</term>
-                <listitem><simpara>a list of gtk.Action objects</simpara></listitem>
+                <listitem><simpara>a list of Thunarx.MenuItem objects</simpara></listitem>
             </varlistentry>
           </variablelist>
 
           <para>
-            The <methodname>get_folder_actions</methodname>() method returns a list of
-            gtk.Action objects.
+            The <methodname>get_folder_menu_items</methodname>() method returns a list of
+            Thunarx.MenuItem objects.
           </para>
         </refsect2>
         
-        <refsect2 id="method-thunarx-python-menu-provider--get-dnd-actions">
-          <title>thunarx.MenuProvider.get_dnd_actions</title>
+        <refsect2 id="method-thunarx-python-menu-provider--get-dnd-menu-items">
+          <title>Thunarx.MenuProvider.get_dnd_menu_items</title>
 
           <programlisting><methodsynopsis language="python">
-            <methodname>get_dnd_actions</methodname>
+            <methodname>get_dnd_menu_items</methodname>
             <methodparam><parameter role="keyword">window</parameter></methodparam>
             <methodparam><parameter role="keyword">folder</parameter></methodparam>
             <methodparam><parameter role="keyword">files</parameter></methodparam>
@@ -220,25 +201,25 @@ class ThunarxSubMenuProviderPlugin(thunarx.MenuProvider):
           <variablelist>
             <varlistentry>
                 <term><parameter role="keyword">window</parameter> :</term>
-                <listitem><simpara>the current <link linkend="class-gtkwindow"><classname>gtk.Window</classname></link> instance</simpara></listitem>
+                <listitem><simpara>the current <link linkend="class-Gtkwindow"><classname>Gtk.Window</classname></link> instance</simpara></listitem>
             </varlistentry>
             <varlistentry>
                 <term><parameter role="keyword">folder</parameter> :</term>
-                <listitem><simpara>the current folder, as a <link linkend="class-thunarx-python-file-info"><classname>thunarx.FileInfo</classname></link> object.</simpara></listitem>
+                <listitem><simpara>the current folder, as a <link linkend="class-thunarx-python-file-info"><classname>Thunarx.FileInfo</classname></link> object.</simpara></listitem>
             </varlistentry>
             <varlistentry>
                 <term><parameter role="keyword">files</parameter> :</term>
-                <listitem><simpara>a list of the currently selected files, as a <link linkend="class-thunarx-python-file-info"><classname>thunarx.FileInfo</classname></link> objects.</simpara></listitem>
+                <listitem><simpara>a list of the currently selected files, as a <link linkend="class-thunarx-python-file-info"><classname>Thunarx.FileInfo</classname></link> objects.</simpara></listitem>
             </varlistentry>
             <varlistentry>
                 <term><emphasis>Returns</emphasis> :</term>
-                <listitem><simpara>a list of gtk.Action objects</simpara></listitem>
+                <listitem><simpara>a list of Thunarx.MenuItem objects</simpara></listitem>
             </varlistentry>
           </variablelist>
 
           <para>
-            The <methodname>get_dnd_actions</methodname>() method returns a list of
-            gtk.Action objects.
+            The <methodname>get_dnd_menu_items</methodname>() method returns a list of
+            Thunarx.MenuItem objects.
           </para>
         </refsect2>
     </refsect1>
diff --git a/docs/reference/thunarx-python-menu.xml b/docs/reference/thunarx-python-menu.xml
new file mode 100644
index 0000000..a6d7eaa
--- /dev/null
+++ b/docs/reference/thunarx-python-menu.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+    "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+
+<refentry id="class-thunarx-python-menu">
+  <refnamediv>
+    <refname>Thunarx.Menu</refname>
+    <refpurpose>Thunarx.Menu Reference</refpurpose>
+  </refnamediv>
+
+<!-- ******************************* -->
+<!-- BEGIN OF NAUTILUS-PYTHON SYNOPSIS -->
+<!-- ******************************* -->
+
+  <refsect1>
+    <title>Synopsis</title>
+
+    <classsynopsis language="python">
+        <ooclass><classname>Thunarx.Menu</classname></ooclass>
+        <ooclass><classname><link linkend="class-ginterface">GObject.GInterface</link></classname></ooclass>
+
+        <methodsynopsis language="python">
+            <methodname><link linkend="method-thunarx-python-menu--get-items">get_items</link></methodname>
+            <methodparam></methodparam>
+        </methodsynopsis>
+
+        <methodsynopsis language="python">
+            <methodname><link linkend="method-thunarx-python-menu--append-item">append_item</link></methodname>
+            <methodparam>ThunarxMenuItem</methodparam>
+        </methodsynopsis>
+    </classsynopsis>
+  </refsect1>
+
+<!-- ********************************* -->
+<!-- BEGIN OF ANCESTRY -->
+<!-- ********************************* -->
+
+<refsect1>
+    <title>Ancestry</title>
+
+<synopsis>+-- <link linkend="class-ginterface">GObject.GInterface</link>
+    +-- <link linkend="class-thunarx-python-menu">Thunarx.Menu</link>
+</synopsis>
+</refsect1>
+
+
+<!-- ********************************** -->
+<!-- BEGIN OF DESCRIPTION -->
+<!-- ********************************** -->
+
+  <refsect1 id="description-menu">
+    <title>Description</title>
+
+      <para>
+        Each <link linkend="class-thunarx-python-menu"><classname>Thunarx.Menu</classname></link> object is an abstraction
+        of a real menu.
+      </para>
+
+  </refsect1>
+
+
+
+
+<!-- ******************************** -->
+<!-- BEGIN OF METHODS -->
+<!-- ******************************** -->
+
+<refsect1>
+    <title>Public Methods</title>
+
+    <refsect2 id="method-thunarx-python-menu--get-items">
+        <title>Thunarx.Menu.get_items</title>
+        <programlisting><methodsynopsis language="python">
+            <methodname>get_items</methodname>
+        </methodsynopsis></programlisting>
+        <variablelist>
+            <varlistentry>
+                <term><emphasis>Returns</emphasis> :List</term>
+                <listitem><simpara>Returns a list of attached menu items</simpara></listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect2>
+
+    <refsect2 id="method-thunarx-python-menu--append-item">
+        <title>Thunarx.Menu.append_item</title>
+        <programlisting><methodsynopsis language="python">
+            <methodname>append_item</methodname>
+            <methodparam>ThunarxMenuItem</methodparam>
+        </methodsynopsis></programlisting>
+        <variablelist>
+            <varlistentry>
+                <term><emphasis>Returns</emphasis> :</term>
+                <listitem><simpara>Append menu items to menu</simpara></listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect2>
+    
+</refsect1>
+
+
+
+</refentry>
+
diff --git a/docs/reference/thunarx-python-overview-example.xml b/docs/reference/thunarx-python-overview-example.xml
index c6f0786..0c00821 100644
--- a/docs/reference/thunarx-python-overview-example.xml
+++ b/docs/reference/thunarx-python-overview-example.xml
@@ -11,22 +11,27 @@
     <example>
         <title>A Simple Extension</title>
         <programlisting>
-import thunarx
-import gtk
+from gi.repository import GObject, Gtk, Thunarx
 
-class ThunarxMenuProviderPlugin(thunarx.MenuProvider):
+class ThunarxMenuProviderPlugin(GObject.GObject, Thunarx.MenuProvider):
     def __init__(self):
         pass
     
-    def get_file_actions(self, window, files):
-        return [gtk.Action("TMP:TestFileAction", "PyFileAction", "Python File Action", gtk.STOCK_FILE)]
-    
-    def get_folder_actions(self, window, folder):
-        return [gtk.Action("TMP:TestFolderAction", "PyFolderAction", "Python Folder Action", gtk.STOCK_DIRECTORY)]
+    def get_file_menu_items(self, window, files):
+        item = Thunarx.MenuItem(name="TMP:TestFileAction", label="Python File Action", tooltip='', icon=Gtk.STOCK_FILE)
+        item.connect("activate", self.__do_something, window)
+
+        return [item]
+
+    def get_folder_menu_items(self, window, folder):
+        return [Thunarx.MenuItem(name="TMP:TestFolderAction", label="Python Folder Action", tooltip='', icon=Gtk.STOCK_OPEN)]
+
+    def __do_something(self, item, window):
+        print "Doing something"
         </programlisting>
     </example>
     
-    <para>Save this file as TestExtension.py in the /usr/lib/thunarx-1/python folder (or thunarx-2). 
+    <para>Save this file as TestExtension.py in the $XDG_DATA_DIR/thunarx-python/extensions folder or ~/.local/share/thunarx-python/extensions.
     You may need to create this folder. To run, open the terminal and type:</para>
     
     <informalexample>
@@ -36,14 +41,14 @@ $ thunar</programlisting>
     </informalexample>
 
     <para>Once Thunar starts, right-click on a file and you should see a new menu item, 
-    "PyFileAction". It is as simple as that!</para>
+    "Python File Action". It is as simple as that!</para>
     
     <para>As mentioned above, in order to 
-    get loaded by Thunar, a python extension must import the thunarx module, 
-    create a class derived from a thunarx *Provider, then create the methods that 
+    get loaded by Thunar, a python extension must import the Thunarx module, 
+    create a class derived from a Thunarx *Provider, then create the methods that 
     will be called by Thunar when it requests information from its providers. 
     In this case, when someone right-clicks on a file, Thunar will ask all of its 
     MenuProviders for additional menu items to show the user. When folders or files are clicked, 
-    the get_file_actions method is called and a list of gtk.Action objects is expected.</para>
+    the get_file_menu_items method is called and a list of Thunarx.MenuItem objects is expected.</para>
 
 </chapter>
diff --git a/docs/reference/thunarx-python-overview.xml b/docs/reference/thunarx-python-overview.xml
index c856e11..11cd40a 100644
--- a/docs/reference/thunarx-python-overview.xml
+++ b/docs/reference/thunarx-python-overview.xml
@@ -6,9 +6,9 @@
 
     <title>Overview</title>
 
-    <para>Writing a Thunarx-Python extension is a fairly straight-forward process. 
-    One simply imports the thunarx module and creates a class which is derived from a number 
-    of the thunarx module's classes. When an extension derives a class, it becomes a "provider", 
+    <para>Writing a thunarx-python extension is a fairly straight-forward process. 
+    One simply imports the Thunarx module and creates a class which is derived from a number 
+    of the Thunarx module's classes. When an extension derives a class, it becomes a "provider", 
     telling Thunarx to ask it for information. There are several types of providers 
     available for extensions to use: there is MenuProvider, PropertyPageProvider, RenamerProvider,
     and PreferencePageProvider, all of which will be explained 
@@ -17,9 +17,9 @@
     <para>Here are the basic steps:</para>
     
     <para>1. A script is written and installed to the standard python extensions install path</para>
-    <para>2. Thunar is (re)started and loads the Thunarx-Python C extension, which in turn loads all python extensions</para>
-    <para>3. Any python script in the standard python extensions install path that imports the thunarx module and derives 
-    the main class from a thunarx module class will be loaded</para>
+    <para>2. Thunar is (re)started and loads the thunarx-python C extension, which in turn loads all python extensions</para>
+    <para>3. Any python script in the standard python extensions install path that imports the Thunarx module and derives 
+    the main class from a Thunarx module class will be loaded</para>
     
     <note>
 <title>Where to install python extensions</title>
@@ -27,6 +27,11 @@
 <para>As of thunarx-python 0.3.0, python extensions are installed in $XDG_DATA_DIR/thunarx-python/extensions where $XDG_DATA_DIR 
         could be /usr/share for a global install or ~/.local/share for a local install.</para>
     </note>
+    
+    <note>
+        <title>thunarx-3</title>
+        <para>As of thunar v1.7.0, thunarx requires Gtk+3 and no longer accepts gtk.Actions.  Instead, it expects Thunarx.MenuItems.</para>
+    </note>
 
     <xi:include href="thunarx-python-overview-example.xml"/>
 
diff --git a/docs/reference/thunarx-python-preferences-provider.xml b/docs/reference/thunarx-python-preferences-provider.xml
index 416b4f3..366235a 100644
--- a/docs/reference/thunarx-python-preferences-provider.xml
+++ b/docs/reference/thunarx-python-preferences-provider.xml
@@ -4,8 +4,8 @@
 
 <refentry id="class-thunarx-python-preferences-provider">
   <refnamediv>
-    <refname>thunarx.PreferencesProvider</refname>
-    <refpurpose>thunarx.PreferencesProvider Reference</refpurpose>
+    <refname>Thunarx.PreferencesProvider</refname>
+    <refpurpose>Thunarx.PreferencesProvider Reference</refpurpose>
   </refnamediv>
 
 <!-- ******************************* -->
@@ -16,10 +16,10 @@
     <title>Synopsis</title>
 
     <classsynopsis language="python">
-      <ooclass><classname>thunarx.PreferencesProvider</classname></ooclass>
+      <ooclass><classname>Thunarx.PreferencesProvider</classname></ooclass>
 
       <methodsynopsis language="python">
-        <methodname><link linkend="method-thunarx-preferences-provider--get-actions">get_actions</link></methodname>
+        <methodname><link linkend="method-Thunarx-preferences-provider--get-preferences-menu-items">get_preferences_menu_items</link></methodname>
         <methodparam><parameter role="keyword">window</parameter></methodparam>
       </methodsynopsis>
     </classsynopsis>
@@ -33,37 +33,45 @@
     <title>Description</title>
 
       <para>
-The thunarx.PreferencesProvider interface is implemented by extensions that want to register additional actions in the preferences menu of the file manager. In general this should only be done by extensions that are closely tied to the file manager (for example, the thunar-uca is such an extension, while an extension that just adds Compress file and Uncompress file to the context menu of compressed files should not add their own preferences to the file manager menu, because it should use [...]
+The Thunarx.PreferencesProvider interface is implemented by extensions that want to register additional actions in the preferences menu of the file manager. In general this should only be done by extensions that are closely tied to the file manager (for example, the thunar-uca is such an extension, while an extension that just adds Compress file and Uncompress file to the context menu of compressed files should not add their own preferences to the file manager menu, because it should use [...]
 </para><para>
-The gtk.Action objects returned from the thunarx.PreferencesProvider.get_actions() method must be namespaced with the model to avoid collision with internal file manager actions and actions provided by other extensions. For example, the preferences action provided by the thunar-uca extension is called ThunarUca::manage-actions.
+The Thunarx.MenuItem objects returned from the Thunarx.PreferencesProvider.get_preferences_menu_items() method must be namespaced with the model to avoid collision with internal file manager actions and actions provided by other extensions. For example, the preferences action provided by the thunar-uca extension is called ThunarUca::manage-actions.
       </para>
   </refsect1>
 
 <example>
-    <title>A thunarx.PreferencesProvider plugin</title>
+    <title>A Thunarx.PreferencesProvider plugin</title>
     <programlisting>
-import thunarx
-import gtk
+from gi.repository import GObject, Gtk, Thunarx
 
-class ThunarxPreferencesPlugin(thunarx.PreferencesProvider):
+class DialogExample(Gtk.Dialog):
+    def __init__(self, parent):
+        Gtk.Dialog.__init__(self, "My Dialog", parent, 0,
+            (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
+             Gtk.STOCK_OK, Gtk.ResponseType.OK))
+
+        self.set_default_size(150, 100)
+
+        label = Gtk.Label("This is a dialog to display additional information")
+
+        box = self.get_content_area()
+        box.add(label)
+        self.show_all()
+
+class ThunarxPreferencesPlugin(GObject.GObject, Thunarx.PreferencesProvider):
     def __init__(self):
         pass
     
-    def get_preferences_actions(self, window):
-        action = gtk.Action("TPP:PrefItem", "My Example Preferences", None, None)
-        action.connect("activate", self.__open_preferences, window)
-        return action,
+    def get_preferences_menu_items(self, window):
+        item = Thunarx.MenuItem(name="TPP:PrefItem", label="My Example Preferences", tooltip=None, icon=None)
+        item.connect("activate", self.__open_preferences, window)
+        return item,
     
     def __open_preferences(self, action, window):
-        dialog = gtk.Dialog("My dialog",
-            window,
-            gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
-            (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,
-            gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
-
-        dialog.show()
-        dialog.run()
+        dialog = DialogExample(window)
+        response = dialog.run()
         dialog.destroy()
+
     </programlisting>
 </example>
 
@@ -74,27 +82,27 @@ class ThunarxPreferencesPlugin(thunarx.PreferencesProvider):
   <refsect1>
         <title>Passive Methods</title>
 
-        <refsect2 id="method-thunarx-preferences-provider--get-actions">
-          <title>thunarx.PreferencesProvider.get_actions</title>
+        <refsect2 id="method-Thunarx-preferences-provider--get-preferences-menu-items">
+          <title>Thunarx.PreferencesProvider.get_preferences_menu_items</title>
 
           <programlisting><methodsynopsis language="python">
-            <methodname>get_actions</methodname>
+            <methodname>get_preferences_menu_items</methodname>
               <methodparam></methodparam>
           </methodsynopsis></programlisting>
 
           <variablelist>
             <varlistentry>
 	            <term><parameter role="keyword">window</parameter> :</term>
-	            <listitem><simpara>a gtk.Window</simpara></listitem>
+	            <listitem><simpara>a Gtk.Window</simpara></listitem>
             </varlistentry>
             <varlistentry>
               <term><emphasis>Returns</emphasis> :</term>
-              <listitem><simpara>the list of gtk.Action objects that provider has to offer as preferences within window.</simpara></listitem>
+              <listitem><simpara>the list of Thunarx.MenuItem objects that provider has to offer as preferences within window.</simpara></listitem>
             </varlistentry>
           </variablelist>
 
           <para>
-Returns the list of GtkActions that provider has to offer as preferences within window. These actions will usually be added to the builtin list of preferences in the "Edit" menu of the file manager's window.
+Returns the list of ThunarxMenuItems that provider has to offer as preferences within window. These actions will usually be added to the builtin list of preferences in the "Edit" menu of the file manager's window.
 </para><para>
 Plugin writers that implement this interface should make sure to choose descriptive action names and tooltips, and not to crowd the "Edit" menu too much. That said, think twice before implementing this interface, as too many preference actions will render the file manager useless over time!
           </para>
diff --git a/docs/reference/thunarx-python-property-page-provider.xml b/docs/reference/thunarx-python-property-page-provider.xml
index 29f3bbc..d58f98d 100644
--- a/docs/reference/thunarx-python-property-page-provider.xml
+++ b/docs/reference/thunarx-python-property-page-provider.xml
@@ -4,8 +4,8 @@
 
 <refentry id="class-thunarx-python-property-page-provider">
   <refnamediv>
-    <refname>thunarx.PropertyPageProvider</refname>
-    <refpurpose>thunarx.PropertyPageProvider Reference</refpurpose>
+    <refname>Thunarx.PropertyPageProvider</refname>
+    <refpurpose>Thunarx.PropertyPageProvider Reference</refpurpose>
   </refnamediv>
 
 <!-- ******************************* -->
@@ -16,10 +16,10 @@
     <title>Synopsis</title>
 
     <classsynopsis language="python">
-      <ooclass><classname>thunarx.PropertyPageProvider</classname></ooclass>
+      <ooclass><classname>Thunarx.PropertyPageProvider</classname></ooclass>
 
       <methodsynopsis language="python">
-        <methodname><link linkend="method-thunarx-property-page-provider--get-pages">get_pages</link></methodname>
+        <methodname><link linkend="method-Thunarx-property-page-provider--get-pages">get_pages</link></methodname>
         <methodparam><parameter role="keyword">files</parameter></methodparam>
       </methodsynopsis>
     </classsynopsis>
@@ -33,20 +33,19 @@
     <title>Description</title>
 
       <para>
-      To add a property page to the file properties dialog, extensions must implement the ThunarxPropertyPageProvider interface. This interface has only one virtual method, get_pages, that is passed a list of thunarx.FileInfo objects and returns a list of thunarx.PropertyPage objects. 
+      To add a property page to the file properties dialog, extensions must implement the ThunarxPropertyPageProvider interface. This interface has only one virtual method, get_pages, that is passed a list of Thunarx.FileInfo objects and returns a list of Thunarx.PropertyPage objects. 
       </para>
   </refsect1>
 
 <example>
-    <title>A thunarx.PropertyPageProvider plugin</title>
+    <title>A Thunarx.PropertyPageProvider plugin</title>
     <programlisting>
 import hashlib
 import urllib
 
-import thunarx
-import gtk
+from gi.repository import GObject, Gtk, Thunarx
 
-class ThunarxPropertyPagePlugin(thunarx.PropertyPageProvider):
+class ThunarxPropertyPagePlugin(GObject.GObject, Thunarx.PropertyPageProvider):
     def __init__(self):
         pass
 
@@ -63,23 +62,23 @@ class ThunarxPropertyPagePlugin(thunarx.PropertyPageProvider):
 
         filename = urllib.unquote(file.get_uri()[7:])
 
-        self.hbox = gtk.HBox(0, False)
-        self.hbox.show()
+        hbox = Gtk.HBox(0, False)
+        hbox.show()
 
-        label = gtk.Label('MD5Sum:')
+        label = Gtk.Label('MD5Sum:')
         label.show()
-        self.hbox.pack_start(label)
+        hbox.pack_start(label, True, True, 0)
 
-        self.value_label = gtk.Label()
-        self.hbox.pack_start(self.value_label)
+        value_label = Gtk.Label()
+        hbox.pack_start(value_label, True, True, 0)
 
         md5sum = hashlib.md5(filename).hexdigest()
-        self.value_label.set_text(md5sum)
-        self.value_label.show()
+        value_label.set_text(md5sum)
+        value_label.show()
 
-        page = thunarx.PropertyPage("MD5")
-
-        page.add(self.hbox)
+        page = Thunarx.PropertyPage()
+        page.set_label("MD5")
+        page.add(hbox)
 
         return [page]
     </programlisting>
@@ -92,8 +91,8 @@ class ThunarxPropertyPagePlugin(thunarx.PropertyPageProvider):
   <refsect1>
         <title>Passive Methods</title>
 
-        <refsect2 id="method-thunarx-property-page-provider--get-pages">
-          <title>thunarx.PropertyPageProvider.get_pages</title>
+        <refsect2 id="method-Thunarx-property-page-provider--get-pages">
+          <title>Thunarx.PropertyPageProvider.get_pages</title>
 
           <programlisting><methodsynopsis language="python">
             <methodname>get_pages</methodname>
@@ -103,11 +102,11 @@ class ThunarxPropertyPagePlugin(thunarx.PropertyPageProvider):
           <variablelist>
             <varlistentry>
 	            <term><parameter role="keyword">files</parameter> :</term>
-	            <listitem><simpara>a list of <link linkend="class-thunarx-python-file-info"><classname>thunarx.FileInfo</classname></link> objects.</simpara></listitem>
+	            <listitem><simpara>a list of <link linkend="class-thunarx-python-file-info"><classname>Thunarx.FileInfo</classname></link> objects.</simpara></listitem>
             </varlistentry>
             <varlistentry>
               <term><emphasis>Returns</emphasis> :</term>
-              <listitem><simpara>a list of <link linkend="class-thunarx-python-property-page"><classname>thunarx.PropertyPage</classname></link> objects</simpara></listitem>
+              <listitem><simpara>a list of <link linkend="class-thunarx-python-property-page"><classname>Thunarx.PropertyPage</classname></link> objects</simpara></listitem>
             </varlistentry>
           </variablelist>
 
diff --git a/docs/reference/thunarx-python-property-page.xml b/docs/reference/thunarx-python-property-page.xml
index d8d5ecf..0a1460c 100644
--- a/docs/reference/thunarx-python-property-page.xml
+++ b/docs/reference/thunarx-python-property-page.xml
@@ -4,8 +4,8 @@
 
 <refentry id="class-thunarx-python-property-page">
   <refnamediv>
-    <refname>thunarx.PropertyPage</refname>
-    <refpurpose>thunarx.PropertyPage Reference</refpurpose>
+    <refname>Thunarx.PropertyPage</refname>
+    <refpurpose>Thunarx.PropertyPage Reference</refpurpose>
   </refnamediv>
 
 <!-- ******************************* -->
@@ -16,16 +16,16 @@
     <title>Synopsis</title>
 
     <classsynopsis language="python">
-        <ooclass><classname>thunarx.PropertyPage</classname></ooclass>
-        <ooclass><classname><link linkend="class-gobject">gobject.GObject</link></classname></ooclass>
+        <ooclass><classname>Thunarx.PropertyPage</classname></ooclass>
+        <ooclass><classname><link linkend="class-GObject">GObject.GObject</link></classname></ooclass>
 
         <constructorsynopsis language="python">
-            <methodname><link linkend="constructor-thunarx-property-page">thunarx.PropertyPage</link></methodname>
+            <methodname><link linkend="constructor-Thunarx-property-page">Thunarx.PropertyPage</link></methodname>
             <methodparam><parameter role="keyword">label</parameter></methodparam>
         </constructorsynopsis>
 
         <constructorsynopsis language="python">
-            <methodname><link linkend="constructor-thunarx-property-page">thunarx.PropertyPage</link></methodname>
+            <methodname><link linkend="constructor-Thunarx-property-page">Thunarx.PropertyPage</link></methodname>
             <methodparam><parameter role="keyword">label_widget</parameter></methodparam>
         </constructorsynopsis>
         
@@ -56,8 +56,8 @@
 <refsect1>
     <title>Ancestry</title>
 
-<synopsis>+-- <link linkend="class-gobject">gobject.GObject</link>
-    +-- <link linkend="class-thunarx-python-property-page">thunarx.PropertyPage</link>
+<synopsis>+-- <link linkend="class-GObject">GObject.GObject</link>
+    +-- <link linkend="class-thunarx-python-property-page">Thunarx.PropertyPage</link>
 </synopsis>
 </refsect1>
 
@@ -70,7 +70,7 @@
     <title>Description</title>
 
       <para>
-        A <link linkend="class-thunarx-python-property-page"><classname>thunarx.PropertyPage</classname></link> object is returned by <link linkend="class-thunarx-python-property-page-provider"><classname>thunarx.PropertyPageProvider</classname></link> extensions.
+        A <link linkend="class-thunarx-python-property-page"><classname>Thunarx.PropertyPage</classname></link> object is returned by <link linkend="class-thunarx-python-property-page-provider"><classname>Thunarx.PropertyPageProvider</classname></link> extensions.
       </para>
 
   </refsect1>
@@ -114,11 +114,11 @@
 <!-- BEGIN OF CONSTRUCTOR -->
 <!-- ************************************ -->
 
-<refsect1 id="constructor-thunarx-property-page">
+<refsect1 id="constructor-Thunarx-property-page">
   <title>Constructor</title>
 
   <programlisting><constructorsynopsis language="python">
-        <methodname>thunarx.PropertyPage</methodname>
+        <methodname>Thunarx.PropertyPage</methodname>
         <methodparam><parameter role="keyword">label</parameter></methodparam>
   </constructorsynopsis></programlisting>
 
@@ -130,15 +130,15 @@
   </variablelist>
 
   <para>
-    Creates a new <link linkend="class-thunarx-python-property-page"><classname>thunarx.PropertyPage</classname></link> object.
+    Creates a new <link linkend="class-thunarx-python-property-page"><classname>Thunarx.PropertyPage</classname></link> object.
   </para>
 </refsect1>
 
-<refsect1 id="constructor-thunarx-property-page-label-widget">
+<refsect1 id="constructor-Thunarx-property-page-label-widget">
   <title>Constructor</title>
 
   <programlisting><constructorsynopsis language="python">
-        <methodname>thunarx.PropertyPage</methodname>
+        <methodname>Thunarx.PropertyPage</methodname>
         <methodparam><parameter role="keyword">label_widget</parameter></methodparam>
   </constructorsynopsis></programlisting>
     
@@ -150,7 +150,7 @@
   </variablelist>
 
   <para>
-    Creates a new <link linkend="class-thunarx-python-property-page-label-widget"><classname>thunarx.PropertyPage</classname></link> object.
+    Creates a new <link linkend="class-thunarx-python-property-page-label-widget"><classname>Thunarx.PropertyPage</classname></link> object.
   </para>
 </refsect1>
 
@@ -162,7 +162,7 @@
     <title>Public Methods</title>
 
     <refsect2 id="method-thunarx-python-property-page--get-label">
-        <title>thunarx.FileInfo.get_label</title>
+        <title>Thunarx.FileInfo.get_label</title>
         <programlisting><methodsynopsis language="python">
             <methodname>get_label</methodname>
         </methodsynopsis></programlisting>
@@ -175,7 +175,7 @@
     </refsect2>
 
     <refsect2 id="method-thunarx-python-property-page--set-label">
-        <title>thunarx.FileInfo.set_label</title>
+        <title>Thunarx.FileInfo.set_label</title>
         <programlisting><methodsynopsis language="python">
             <methodname>set_label</methodname>
         </methodsynopsis></programlisting>
@@ -188,7 +188,7 @@
     </refsect2>
 
     <refsect2 id="method-thunarx-python-property-page--get-label-widget">
-        <title>thunarx.FileInfo.get_label_widget</title>
+        <title>Thunarx.FileInfo.get_label_widget</title>
         <programlisting><methodsynopsis language="python">
             <methodname>get_label_widget</methodname>
         </methodsynopsis></programlisting>
@@ -201,7 +201,7 @@
     </refsect2>
     
     <refsect2 id="method-thunarx-python-property-page--set-label-widget">
-        <title>thunarx.FileInfo.set_label_widget</title>
+        <title>Thunarx.FileInfo.set_label_widget</title>
         <programlisting><methodsynopsis language="python">
             <methodname>set_label_widget</methodname>
         </methodsynopsis></programlisting>
diff --git a/docs/reference/thunarx-python-renamer-provider.xml b/docs/reference/thunarx-python-renamer-provider.xml
index 18cda15..f498b71 100644
--- a/docs/reference/thunarx-python-renamer-provider.xml
+++ b/docs/reference/thunarx-python-renamer-provider.xml
@@ -4,8 +4,8 @@
 
 <refentry id="class-thunarx-python-renamer-provider">
   <refnamediv>
-    <refname>thunarx.RenamerProvider</refname>
-    <refpurpose>thunarx.RenamerProvider Reference</refpurpose>
+    <refname>Thunarx.RenamerProvider</refname>
+    <refpurpose>Thunarx.RenamerProvider Reference</refpurpose>
   </refnamediv>
 
 <!-- ******************************* -->
@@ -16,10 +16,10 @@
     <title>Synopsis</title>
 
     <classsynopsis language="python">
-      <ooclass><classname>thunarx.RenamerProvider</classname></ooclass>
+      <ooclass><classname>Thunarx.RenamerProvider</classname></ooclass>
 
       <methodsynopsis language="python">
-        <methodname><link linkend="method-thunarx-renamer-provider--get-pages">get_pages</link></methodname>
+        <methodname><link linkend="method-Thunarx-renamer-provider--get-renamers">get_renamers</link></methodname>
         <methodparam><parameter role="keyword">files</parameter></methodparam>
       </methodsynopsis>
     </classsynopsis>
@@ -33,22 +33,20 @@
     <title>Description</title>
 
       <para>
-The thunarx.RenamerProvider interface is implemented by extensions which provide additional bulk renamers that should be used by the bulk rename dialog in Thunar.
+The Thunarx.RenamerProvider interface is implemented by extensions which provide additional bulk renamers that should be used by the bulk rename dialog in Thunar.
       </para>
       
       <example>
-        <title>A thunarx.RenamerProvider Extension</title>
+        <title>A Thunarx.RenamerProvider Extension</title>
         <programlisting>
-import thunarx
-import gtk
-import gobject
+from gi.repository import GObject, Gtk, Thunarx
 
-class ThunarxPythonRenamer(thunarx.Renamer):
+class ThunarxPythonRenamer(Thunarx.Renamer):
     __gtype_name__ = "ThunarxPythonRenamer"
-    prefix = gobject.property(type=str)
+    prefix = GObject.property(type=str)
     
     def __init__(self):
-        thunarx.Renamer.__init__(self)
+        Thunarx.Renamer.__init__(self)
 
         # Set properties to be saved in the settings files
         self.set_property("prefix", "__")
@@ -56,12 +54,12 @@ class ThunarxPythonRenamer(thunarx.Renamer):
         self.set_name("Example Python Renamer")
         self.set_help_url("http://www.google.com")
      
-        hbox = gtk.HBox(0, False)
+        hbox = Gtk.HBox(0, False)
         
-        label = gtk.Label("Prefix:")
+        label = Gtk.Label("Prefix:")
         hbox.pack_start(label, False, False, 0)
         
-        self.entry = gtk.Entry()
+        self.entry = Gtk.Entry()
         self.entry.set_text(self.get_property("prefix"))
         self.entry.connect("changed", self.entry_changed)
         hbox.pack_start(self.entry, False, False, 0)
@@ -81,8 +79,8 @@ class ThunarxPythonRenamer(thunarx.Renamer):
         # Emitting this will cause the do_process method to be called
         self.emit("changed")
 
-    def do_get_actions(self, window, files):
-        return [gtk.Action("TPR:SomeAction", "Some Action", None, gtk.STOCK_OPEN)]
+    def do_get_menu_items(self, window, files):
+        return [Gtk.Action(name="TPR:SomeAction", label="Some Action", tooltip=None, icon=Gtk.STOCK_OPEN)]
 
     def do_load(self, settings):
         """
@@ -100,7 +98,7 @@ class ThunarxPythonRenamer(thunarx.Renamer):
         settings["Prefix"] = self.get_property("prefix")
         return settings
 
-class ThunarxRenamerPlugin(thunarx.RenamerProvider):
+class ThunarxRenamerPlugin(GObject.GObject, Thunarx.RenamerProvider):
     def __init__(self):
         pass
     
@@ -117,8 +115,8 @@ class ThunarxRenamerPlugin(thunarx.RenamerProvider):
   <refsect1>
         <title>Passive Methods</title>
 
-        <refsect2 id="method-thunarx-renamer-provider--get-renamers">
-          <title>thunarx.RenamerProvider.get_renamers</title>
+        <refsect2 id="method-Thunarx-renamer-provider--get-renamers">
+          <title>Thunarx.RenamerProvider.get_renamers</title>
 
           <programlisting><methodsynopsis language="python">
             <methodname>get_renamers</methodname>
@@ -128,7 +126,7 @@ class ThunarxRenamerPlugin(thunarx.RenamerProvider):
           <variablelist>
             <varlistentry>
               <term><emphasis>Returns</emphasis> :</term>
-              <listitem><simpara>the list of thunarx.Renamer objects provided by the specified provider.</simpara></listitem>
+              <listitem><simpara>the list of Thunarx.Renamer objects provided by the specified provider.</simpara></listitem>
             </varlistentry>
           </variablelist>
 
diff --git a/docs/reference/thunarx-python-renamer.xml b/docs/reference/thunarx-python-renamer.xml
index 858fd3b..188d31a 100644
--- a/docs/reference/thunarx-python-renamer.xml
+++ b/docs/reference/thunarx-python-renamer.xml
@@ -4,8 +4,8 @@
 
 <refentry id="class-thunarx-python-renamer">
   <refnamediv>
-    <refname>thunarx.Renamer</refname>
-    <refpurpose>thunarx.Renamer Reference</refpurpose>
+    <refname>Thunarx.Renamer</refname>
+    <refpurpose>Thunarx.Renamer Reference</refpurpose>
   </refnamediv>
 
 <!-- ******************************* -->
@@ -16,8 +16,8 @@
     <title>Synopsis</title>
 
     <classsynopsis language="python">
-        <ooclass><classname>thunarx.Renamer</classname></ooclass>
-        <ooclass><classname><link linkend="class-ginterface">gobject.GObject</link></classname></ooclass>
+        <ooclass><classname>Thunarx.Renamer</classname></ooclass>
+        <ooclass><classname><link linkend="class-ginterface">GObject.GObject</link></classname></ooclass>
 
         <methodsynopsis language="python">
             <methodname><link linkend="method-thunarx-python-renamer--get-help-url">get_help_name</link></methodname>
@@ -57,7 +57,7 @@
         </methodsynopsis>
 
         <methodsynopsis language="python">
-            <methodname><link linkend="method-thunarx-python-renamer--do-get-actions">do_get_actions</link></methodname>
+            <methodname><link linkend="method-thunarx-python-renamer--do-get-menu-items">do_get_menu_items</link></methodname>
             <methodparam><parameter role="keyword">window</parameter></methodparam>
             <methodparam><parameter role="keyword">files</parameter></methodparam>
         </methodsynopsis>
@@ -76,8 +76,8 @@
 <refsect1>
     <title>Ancestry</title>
 
-<synopsis>+-- <link linkend="class-ginterface">gobject.GObject</link>
-    +-- <link linkend="class-thunarx-python-renamer">thunarx.Renamer</link>
+<synopsis>+-- <link linkend="class-ginterface">GObject.GObject</link>
+    +-- <link linkend="class-thunarx-python-renamer">Thunarx.Renamer</link>
 </synopsis>
 </refsect1>
 
@@ -90,11 +90,11 @@
     <title>Description</title>
 
       <para>
-        The abstract base class thunarx.Renamer is implemented by extensions which provide additional bulk renamers that should be used in the bulk rename dialog.
+        The abstract base class Thunarx.Renamer is implemented by extensions which provide additional bulk renamers that should be used in the bulk rename dialog.
       </para>
       
       <para>
-Derived classes must override the process() method, which is called by the bulk rename dialog for every file to generate a new name. For example, the ThunarSbrReplaceRenamer class included in the thunar-sbr plugin (which is part of the Thunar distribution) provides a bulk renamer, named Search & Replace, which allows the user to rename multiple files by searching for a pattern in each file name and, if the pattern is found, replacing it with the specified replacement text.
+Derived classes must override the do_process() method, which is called by the bulk rename dialog for every file to generate a new name. For example, the ThunarSbrReplaceRenamer class included in the thunar-sbr plugin (which is part of the Thunar distribution) provides a bulk renamer, named Search & Replace, which allows the user to rename multiple files by searching for a pattern in each file name and, if the pattern is found, replacing it with the specified replacement text.
       </para>
 
   </refsect1>
@@ -168,7 +168,7 @@ Default value: NULL
     <title>Passive Methods</title>
 
     <refsect2 id="method-thunarx-python-renamer--do-process">
-        <title>thunarx.Renamer.do_process</title>
+        <title>Thunarx.Renamer.do_process</title>
         <programlisting><methodsynopsis language="python">
             <methodname>do_process</methodname>
             <methodparam><parameter role="keyword">file</parameter></methodparam>
@@ -178,7 +178,7 @@ Default value: NULL
         <variablelist>
             <varlistentry>
 	            <term><parameter role="keyword">file</parameter> :</term>
-	            <listitem><simpara>the thunarx.FileInfo for the file whose new name - according to renamer - should be determined.</simpara></listitem>
+	            <listitem><simpara>the Thunarx.FileInfo for the file whose new name - according to renamer - should be determined.</simpara></listitem>
             </varlistentry>
             <varlistentry>
 	            <term><parameter role="keyword">text</parameter> :</term>
@@ -198,7 +198,7 @@ Default value: NULL
     </refsect2>
 
     <refsect2 id="method-thunarx-python-renamer--do-load">
-        <title>thunarx.Renamer.do_load</title>
+        <title>Thunarx.Renamer.do_load</title>
         <programlisting><methodsynopsis language="python">
             <methodname>do_load</methodname>
             <methodparam><parameter role="keyword">settings</parameter></methodparam>
@@ -210,16 +210,16 @@ Default value: NULL
             </varlistentry>
         </variablelist>
         
-        <para>Tells renamer to load its internal settings from the specified settings. The settings hash table contains previously saved settings, see thunarx.Renamer.do_save(), as key/value pairs of strings. That is, both the keys and the values are strings.
+        <para>Tells renamer to load its internal settings from the specified settings. The settings hash table contains previously saved settings, see Thunarx.Renamer.do_save(), as key/value pairs of strings. That is, both the keys and the values are strings.
 </para><para>
-Implementations of thunarx.Renamer may decide to override this method to perform custom loading of settings. If you do not override this method, the default method of thunarx.Renamer will be used, which simply loads all GObject properties provided by renamers class (excluding the ones provided by the parent classes) from the settings. The GObject properties must be transformable to strings and from strings.
+Implementations of Thunarx.Renamer may decide to override this method to perform custom loading of settings. If you do not override this method, the default method of Thunarx.Renamer will be used, which simply loads all GObject properties provided by renamers class (excluding the ones provided by the parent classes) from the settings. The GObject properties must be transformable to strings and from strings.
 </para><para>
-If you decide to override this method for your thunarx.Renamer implementation, you should also override thunarx.Renamer.do_save().
+If you decide to override this method for your Thunarx.Renamer implementation, you should also override Thunarx.Renamer.do_save().
 </para>
     </refsect2>
 
     <refsect2 id="method-thunarx-python-renamer--do-save">
-        <title>thunarx.Renamer.do_save</title>
+        <title>Thunarx.Renamer.do_save</title>
         <programlisting><methodsynopsis language="python">
             <methodname>do_save</methodname>
             <methodparam><parameter role="keyword">settings</parameter></methodparam>
@@ -232,45 +232,45 @@ If you decide to override this method for your thunarx.Renamer implementation, y
         </variablelist>
     </refsect2>
 
-    <refsect2 id="method-thunarx-python-renamer--do-get-actions">
-        <title>thunarx.Renamer.do_get_actions</title>
+    <refsect2 id="method-thunarx-python-renamer--do-get-menu-items">
+        <title>Thunarx.Renamer.do_get_menu_items</title>
         <programlisting><methodsynopsis language="python">
-            <methodname>do_get_actions</methodname>
+            <methodname>do_get_menu_items</methodname>
             <methodparam><parameter role="keyword">window</parameter></methodparam>
             <methodparam><parameter role="keyword">files</parameter></methodparam>
         </methodsynopsis></programlisting>
         <variablelist>
             <varlistentry>
 	            <term><parameter role="keyword">window</parameter> :</term>
-	            <listitem><simpara>a gtk.Window</simpara></listitem>
+	            <listitem><simpara>a Gtk.Window</simpara></listitem>
             </varlistentry>
             <varlistentry>
 	            <term><parameter role="keyword">files</parameter> :</term>
-	            <listitem><simpara>a list of thunarx.FileInfo objects</simpara></listitem>
+	            <listitem><simpara>a list of Thunarx.FileInfo objects</simpara></listitem>
             </varlistentry>
             <varlistentry>
                 <term><emphasis>Returns</emphasis> :</term>
-                <listitem><simpara>the list of GtkActions provided by renamer for the given list of files</simpara></listitem>
+                <listitem><simpara>the list of ThunarxMenuItems provided by renamer for the given list of files</simpara></listitem>
             </varlistentry>
         </variablelist>
 
         <para>
-Returns the list of gtk.Action objects provided by renamer for the given list of files. By default, this method returns NULL (the empty list), but derived classes may override this method to provide additional actions for files in the bulk renamer dialog list.
+Returns the list of Thunarx.MenuItem objects provided by renamer for the given list of files. By default, this method returns NULL (the empty list), but derived classes may override this method to provide additional actions for files in the bulk renamer dialog list.
 </para><para>
-The returned gtk.Action objects will be displayed in the file's context menu of the bulk renamer dialog, when this renamer is active. For example, an ID3-Tag based renamer may add an action "Edit Tags" to the context menus of supported media files and, when activated, display a dialog (which should be transient and modal for window, if not NULL), which allows the users to edit media file tags on-the-fly.
+The returned Thunarx.MenuItem objects will be displayed in the file's context menu of the bulk renamer dialog, when this renamer is active. For example, an ID3-Tag based renamer may add an action "Edit Tags" to the context menus of supported media files and, when activated, display a dialog (which should be transient and modal for window, if not NULL), which allows the users to edit media file tags on-the-fly.
 </para><para>
-Derived classes that override this method should always check first if all the thunarx.FileInfo objects in the list of files are supported, and only return actions that can be performed on this specific list of files. For example, the ID3-Tag renamer mentioned above, should first check whether all items in files are actually audio files. The thunarx.FileInfo.has_mime_type() of the thunarx.FileInfo interface can be used to easily test whether a file in the files list is of a certain MIME type.
+Derived classes that override this method should always check first if all the Thunarx.FileInfo objects in the list of files are supported, and only return actions that can be performed on this specific list of files. For example, the ID3-Tag renamer mentioned above, should first check whether all items in files are actually audio files. The Thunarx.FileInfo.has_mime_type() of the Thunarx.FileInfo interface can be used to easily test whether a file in the files list is of a certain MIME type.
 </para><para>
 Some actions may only work properly if only a single file ist selected (for example, the ID3-Tag renamer will probably only supporting editing one file at a time). In this case you have basicly two options: Either you can return NULL here if files does not contain exactly one item, or you can return the actions as usual, but make them insensitive, using: action.set_sensitive(False)
 </para><para>
 The latter has the advantage that the user will still notice the existance of the action and probably realize that it can only be applied to a single item at once.
 </para><para>
-The gtk.Action objects returned from this method must be namespaced with the module to avoid collision with internal file manager actions and actions provided by other extensions. For example, the menu action provided by the ID3-Tag renamer mentioned above, should be named TagRenamer::edit-tags (if TagRenamer is the class name). For additional information about the way GtkActions should be returned from extensions and the way they are used, read the description of the thunarx.MenuProvide [...]
+The Thunarx.MenuItem objects returned from this method must be namespaced with the module to avoid collision with internal file manager actions and actions provided by other extensions. For example, the menu action provided by the ID3-Tag renamer mentioned above, should be named TagRenamer::edit-tags (if TagRenamer is the class name). For additional information about the way ThunarxMenuItems should be returned from extensions and the way they are used, read the description of the Thunarx [...]
         </para>
     </refsect2>
 
     <refsect2 id="method-thunarx-python-renamer--do-changed">
-        <title>thunarx.Renamer.do_changed</title>
+        <title>Thunarx.Renamer.do_changed</title>
         <programlisting><methodsynopsis language="python">
             <methodname>do_changed</methodname>
         </methodsynopsis></programlisting>
@@ -290,7 +290,7 @@ The gtk.Action objects returned from this method must be namespaced with the mod
     <title>Active Methods</title>
     
     <refsect2 id="method-thunarx-python-renamer--get-help-url">
-        <title>thunarx.Renamer.get_help_url</title>
+        <title>Thunarx.Renamer.get_help_url</title>
         <programlisting><methodsynopsis language="python">
             <methodname>get_help_url</methodname>
         </methodsynopsis></programlisting>
@@ -305,7 +305,7 @@ The gtk.Action objects returned from this method must be namespaced with the mod
     </refsect2>
     
     <refsect2 id="method-thunarx-python-renamer--set-help-url">
-        <title>thunarx.Renamer.set_help_url</title>
+        <title>Thunarx.Renamer.set_help_url</title>
         <programlisting><methodsynopsis language="python">
             <methodname>set_help_url</methodname>
             <methodparam><parameter role="keyword">help_url</parameter></methodparam>
@@ -318,14 +318,14 @@ The gtk.Action objects returned from this method must be namespaced with the mod
         </variablelist>
         
         <para>
-The URL to the documentation of this thunarx.Renamer. Derived classes can set this property to point to the documentation for the specific renamer. The documentation of the specific renamer in turn should contain a link to the general Thunar renamer documentation.
+The URL to the documentation of this Thunarx.Renamer. Derived classes can set this property to point to the documentation for the specific renamer. The documentation of the specific renamer in turn should contain a link to the general Thunar renamer documentation.
 </para><para>
 May also be unset, in which case the general Thunar renamer documentation will be shown when the user clicks the "Help" button.
         </para>
     </refsect2>
 
     <refsect2 id="method-thunarx-python-renamer--get-name">
-        <title>thunarx.Renamer.get_name</title>
+        <title>Thunarx.Renamer.get_name</title>
         <programlisting><methodsynopsis language="python">
             <methodname>get_name</methodname>
         </methodsynopsis></programlisting>
@@ -336,11 +336,11 @@ May also be unset, in which case the general Thunar renamer documentation will b
             </varlistentry>
         </variablelist>
         
-        <para>Returns the user visible name for renamer, previously set with thunarx.Renamer.set_name().</para>
+        <para>Returns the user visible name for renamer, previously set with Thunarx.Renamer.set_name().</para>
     </refsect2>
     
     <refsect2 id="method-thunarx-python-renamer--set-name">
-        <title>thunarx.Renamer.set_name</title>
+        <title>Thunarx.Renamer.set_name</title>
         <programlisting><methodsynopsis language="python">
             <methodname>set_name</methodname>
         </methodsynopsis></programlisting>
@@ -367,12 +367,12 @@ May also be unset, in which case the general Thunar renamer documentation will b
     <title>Signal Details</title>
 
   <refsect2 id="signal-thunarx-python-renamer--changed">
-    <title>The "changed" thunarx.Renamer Signal</title>
+    <title>The "changed" Thunarx.Renamer Signal</title>
 
     <para>
-Derived classes should emit this signal using the thunarx.Renamer.do_changed() method whenever the user changed a setting in the renamer GUI.
+Derived classes should emit this signal using the Thunarx.Renamer.do_changed() method whenever the user changed a setting in the renamer GUI.
 </para><para>
-The file manager will then invoke thunarx.Renamer.do_process() for all files that should be renamed and update the preview.
+The file manager will then invoke Thunarx.Renamer.do_process() for all files that should be renamed and update the preview.
     </para>
 
   </refsect2>
diff --git a/examples/Makefile b/examples/Makefile
new file mode 100644
index 0000000..2680bce
--- /dev/null
+++ b/examples/Makefile
@@ -0,0 +1,565 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# examples/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/thunarx-python
+pkgincludedir = $(includedir)/thunarx-python
+pkglibdir = $(libdir)/thunarx-python
+pkglibexecdir = $(libexecdir)/thunarx-python
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-pc-linux-gnu
+host_triplet = x86_64-pc-linux-gnu
+target_triplet = x86_64-pc-linux-gnu
+subdir = examples
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(docsdir)" "$(DESTDIR)$(examplesdir)"
+DATA = $(docs_DATA) $(examples_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in README
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/adam/Development/xfce/thunarx-python/missing aclocal-1.15
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AR = ar
+AUTOCONF = ${SHELL} /home/adam/Development/xfce/thunarx-python/missing autoconf
+AUTOHEADER = ${SHELL} /home/adam/Development/xfce/thunarx-python/missing autoheader
+AUTOMAKE = ${SHELL} /home/adam/Development/xfce/thunarx-python/missing automake-1.15
+AWK = gawk
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+CPP = gcc -E
+CPPFLAGS =  -DNDEBUG
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DLLTOOL = false
+DSYMUTIL = 
+DUMPBIN = 
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /usr/bin/grep -E
+EXEEXT = 
+FGREP = /usr/bin/grep -F
+GLIB_CFLAGS = -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include 
+GLIB_LIBS = -lglib-2.0 
+GLIB_REQUIRED_VERSION = 2.30.0
+GLIB_VERSION = 2.52.3
+GREP = /usr/bin/grep
+GTKDOC_CHECK = /usr/bin/gtkdoc-check
+GTKDOC_MKHTML = /usr/bin/gtkdoc-mkhtml
+GTK_CFLAGS = -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -pthread 
+GTK_LIBS = -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 
+GTK_REQUIRED_VERSION = 3.20.0
+GTK_VERSION = 3.22.21
+HTML_DIR = ${datadir}/gtk-doc/html
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+LD = /usr/bin/ld -m elf_x86_64
+LDFLAGS =  -Wl,--as-needed -Wl,-O1
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO = 
+LN_S = ln -s
+LTLIBOBJS = 
+LT_SYS_LIBRARY_PATH = 
+MAINT = 
+MAKEINFO = ${SHELL} /home/adam/Development/xfce/thunarx-python/missing makeinfo
+MANIFEST_TOOL = :
+MKDIR_P = /usr/bin/mkdir -p
+NM = /usr/bin/nm -B
+NMEDIT = 
+OBJDUMP = objdump
+OBJEXT = o
+OTOOL = 
+OTOOL64 = 
+PACKAGE = thunarx-python
+PACKAGE_BUGREPORT = thunar-dev at xfce.org
+PACKAGE_NAME = thunarx-python
+PACKAGE_STRING = thunarx-python 0.3.0
+PACKAGE_TARNAME = thunarx-python
+PACKAGE_URL = 
+PACKAGE_VERSION = 0.3.0
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/bin/pkg-config
+PKG_CONFIG_LIBDIR = 
+PKG_CONFIG_PATH = /home/adam/Development/xfce/exo/build/lib/pkgconfig:/home/adam/Development/xfce/thunar/build/lib/pkgconfig
+PYGOBJECT_CFLAGS = -I/usr/include/pygobject-3.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include 
+PYGOBJECT_LIBS = -lgobject-2.0 -lglib-2.0 
+PYGOBJECT_REQUIRED_VERSION = 3.20.0
+PYGOBJECT_VERSION = 3.24.1
+PYTHON = /usr/bin/python
+PYTHON_CFLAGS = -I/usr/include/python2.7 -I/usr/include/python2.7
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_INCLUDES = -I/usr/include/python2.7
+PYTHON_LDFLAGS = -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic
+PYTHON_LIBS = -lpython2.7 -lpthread -ldl -lutil -lm
+PYTHON_LIB_LOC = /usr/lib64
+PYTHON_PLATFORM = linux2
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.7
+RANLIB = ranlib
+SED = /usr/bin/sed
+SET_MAKE = 
+SHELL = /bin/sh
+STRIP = strip
+THUNARX_API_VERSION = 3
+THUNARX_CFLAGS = -I/home/adam/Development/xfce/thunar/build/include/thunarx-3 -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/li [...]
+THUNARX_EXTENSION_DIR = /home/adam/Development/xfce/thunar/build/lib/thunarx-3
+THUNARX_LIBDIR = /home/adam/Development/xfce/thunar/build/lib
+THUNARX_LIBS = -L/home/adam/Development/xfce/thunar/build/lib -lthunarx-3 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 
+THUNARX_REQUIRED_VERSION = 1.6.0
+THUNARX_VERSION = 1.7.0git-095d8709
+VERSION = 0.3.0
+abs_builddir = /home/adam/Development/xfce/thunarx-python/examples
+abs_srcdir = /home/adam/Development/xfce/thunarx-python/examples
+abs_top_builddir = /home/adam/Development/xfce/thunarx-python
+abs_top_srcdir = /home/adam/Development/xfce/thunarx-python
+ac_ct_AR = ar
+ac_ct_CC = gcc
+ac_ct_DUMPBIN = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-pc-linux-gnu
+build_alias = 
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = x86_64-pc-linux-gnu
+host_alias = 
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /home/adam/Development/xfce/thunarx-python/install-sh
+libdir = ${exec_prefix}/lib
+libdirsuffix = 64
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/thunarx-python
+pkgpythondir = ${pythondir}/thunarx-python
+prefix = /home/adam/Development/xfce/thunar/build
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}/lib64/python2.7/site-packages
+pythondir = ${prefix}/lib/python2.7/site-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = x86_64-pc-linux-gnu
+target_alias = 
+target_cpu = x86_64
+target_os = linux-gnu
+target_vendor = pc
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+docsdir = $(docdir)
+docs_DATA = README
+examplesdir = $(docdir)/examples
+examples_DATA = \
+	thunarx-preferences-plugin.py			\
+	thunarx-renamer-plugin.py			\
+	thunarx-menu-plugin.py			\
+	thunarx-property-page-plugin.py			\
+	thunarx-submenu-plugin.py
+
+EXTRA_DIST = README $(examples_DATA)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu examples/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+install-docsDATA: $(docs_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(docsdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(docsdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docsdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(docsdir)" || exit $$?; \
+	done
+
+uninstall-docsDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(docsdir)'; $(am__uninstall_files_from_dir)
+install-examplesDATA: $(examples_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(examples_DATA)'; test -n "$(examplesdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(examplesdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(examplesdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(examplesdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(examplesdir)" || exit $$?; \
+	done
+
+uninstall-examplesDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(examples_DATA)'; test -n "$(examplesdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(examplesdir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+	for dir in "$(DESTDIR)$(docsdir)" "$(DESTDIR)$(examplesdir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-docsDATA install-examplesDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-docsDATA uninstall-examplesDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am \
+	install-docsDATA install-dvi install-dvi-am \
+	install-examplesDATA install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am uninstall-docsDATA \
+	uninstall-examplesDATA
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/examples/Makefile.in b/examples/Makefile.in
new file mode 100644
index 0000000..6434859
--- /dev/null
+++ b/examples/Makefile.in
@@ -0,0 +1,565 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = examples
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(docsdir)" "$(DESTDIR)$(examplesdir)"
+DATA = $(docs_DATA) $(examples_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in README
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@
+GLIB_VERSION = @GLIB_VERSION@
+GREP = @GREP@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@
+GTK_VERSION = @GTK_VERSION@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYGOBJECT_CFLAGS = @PYGOBJECT_CFLAGS@
+PYGOBJECT_LIBS = @PYGOBJECT_LIBS@
+PYGOBJECT_REQUIRED_VERSION = @PYGOBJECT_REQUIRED_VERSION@
+PYGOBJECT_VERSION = @PYGOBJECT_VERSION@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_LIB_LOC = @PYTHON_LIB_LOC@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+THUNARX_API_VERSION = @THUNARX_API_VERSION@
+THUNARX_CFLAGS = @THUNARX_CFLAGS@
+THUNARX_EXTENSION_DIR = @THUNARX_EXTENSION_DIR@
+THUNARX_LIBDIR = @THUNARX_LIBDIR@
+THUNARX_LIBS = @THUNARX_LIBS@
+THUNARX_REQUIRED_VERSION = @THUNARX_REQUIRED_VERSION@
+THUNARX_VERSION = @THUNARX_VERSION@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libdirsuffix = @libdirsuffix@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+docsdir = $(docdir)
+docs_DATA = README
+examplesdir = $(docdir)/examples
+examples_DATA = \
+	thunarx-preferences-plugin.py			\
+	thunarx-renamer-plugin.py			\
+	thunarx-menu-plugin.py			\
+	thunarx-property-page-plugin.py			\
+	thunarx-submenu-plugin.py
+
+EXTRA_DIST = README $(examples_DATA)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu examples/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+install-docsDATA: $(docs_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(docsdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(docsdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docsdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(docsdir)" || exit $$?; \
+	done
+
+uninstall-docsDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(docsdir)'; $(am__uninstall_files_from_dir)
+install-examplesDATA: $(examples_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(examples_DATA)'; test -n "$(examplesdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(examplesdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(examplesdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(examplesdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(examplesdir)" || exit $$?; \
+	done
+
+uninstall-examplesDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(examples_DATA)'; test -n "$(examplesdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(examplesdir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+	for dir in "$(DESTDIR)$(docsdir)" "$(DESTDIR)$(examplesdir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-docsDATA install-examplesDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-docsDATA uninstall-examplesDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am \
+	install-docsDATA install-dvi install-dvi-am \
+	install-examplesDATA install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am uninstall-docsDATA \
+	uninstall-examplesDATA
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/examples/thunarx-renamer-plugin.py b/examples/thunarx-renamer-plugin.py
index 6ed4a65..9c3be64 100644
--- a/examples/thunarx-renamer-plugin.py
+++ b/examples/thunarx-renamer-plugin.py
@@ -10,7 +10,7 @@ class ThunarxPythonRenamer(Thunarx.Renamer):
         # Set properties to be saved in the settings files
         self.set_property("prefix", "__")
         
-        self.set_name("Example Python Renamer")
+        self.set_name("Example Python Renamer 2")
         self.set_help_url("http://www.google.com")
      
         hbox = Gtk.HBox(0, False)
@@ -28,18 +28,15 @@ class ThunarxPythonRenamer(Thunarx.Renamer):
         self.add(hbox)
         hbox.show()
     
-    def do_process(self, file, text, index):
-        prefix = self.entry.get_text()
-        return prefix + text
-
     def entry_changed(self, widget):
         self.set_property("prefix", widget.get_text())
         
         # Emitting this will cause the do_process method to be called
         self.emit("changed")
 
-    def do_get_actions(self, window, files):
-        return [Gtk.MenuItem(name="TPR:SomeAction", label="Some Action", tooltip=None, icon=Gtk.STOCK_OPEN)]
+    def do_get_menu_items(self, window, files):
+        print "python get menu items"
+        return [Thunarx.MenuItem(name="TPR:SomeAction", label="Some Action", tooltip=None, icon=Gtk.STOCK_OPEN)]
 
     def do_load(self, settings):
         """
diff --git a/examples/thunarx-submenu-plugin.py b/examples/thunarx-submenu-plugin.py
index b97297d..1f7a6ec 100644
--- a/examples/thunarx-submenu-plugin.py
+++ b/examples/thunarx-submenu-plugin.py
@@ -1,12 +1,5 @@
 from gi.repository import GObject, Gtk, Thunarx
 
-"""
-Thunarx Submenu Plugin
-    This plugin shows an example of a MenuProvider plugin that implements
-    sub-menus.    The example used here requires the developer to sub-class 
-    gtk.Action and override the create_menu_item virtual method.
-"""
-
 class ThunarxSubMenuProviderPlugin(GObject.GObject, Thunarx.MenuProvider):
     def __init__(self):
         pass

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list