Thunarx.MenuProvider

Thunarx.MenuProvider Reference

## Synopsis

          Thunarx.MenuProvider

            get_file_menu_items
            window
            files

            get_folder_menu_items
            window
            folder

            get_dnd_menu_items
            window
            folder
            files

## Description

The interface to extensions that provide additional menu items

## A Thunarx.MenuProvider plugin (without submenus)

    from gi.repository import GObject, Gtk, Thunarx

    class ThunarxMenuProviderPlugin(GObject.GObject, Thunarx.MenuProvider):
        def __init__(self):
            pass

        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")

## A Thunarx.MenuProvider plugin (with submenus)

    from gi.repository import GObject, Gtk, Thunarx

    class ThunarxSubMenuProviderPlugin(GObject.GObject, Thunarx.MenuProvider):
        def __init__(self):
            pass

        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)

            return item,item2

        def __subitem1_callback(self, item, window):
            print("Subitem1 call")

        def __subitem2_callback(self, item, window):
            print("Subitem2 call")

## Passive Methods

### Thunarx.MenuProvider.get_file_menu_items

                get_file_menu_items
                window
                files

`window` :

- the current `Gtk.Window` instance

`menu` :

- a list of `Thunarx.FileInfo` objects.

Returns :

- a list of Thunarx.MenuItem objects

The `get_file_menu_items`() method returns a list of Thunarx.MenuItem objects.

### Thunarx.MenuProvider.get_folder_menu_items

                get_folder_menu_items
                window
                folder

`window` :

- the current `Gtk.Window` instance

`folder` :

- the current folder, as a `Thunarx.FileInfo` object.

Returns :

- a list of Thunarx.MenuItem objects

The `get_folder_menu_items`() method returns a list of Thunarx.MenuItem objects.

### Thunarx.MenuProvider.get_dnd_menu_items

                get_dnd_menu_items
                window
                folder
                files

`window` :

- the current `Gtk.Window` instance

`folder` :

- the current folder, as a `Thunarx.FileInfo` object.

`files` :

- a list of the currently selected files, as a `Thunarx.FileInfo` objects.

Returns :

- a list of Thunarx.MenuItem objects

The `get_dnd_menu_items`() method returns a list of Thunarx.MenuItem objects.