Thunarx.MenuProvider: thunarx-python Reference Manual

## Thunarx.MenuProvider 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

Example 2. A Thunarx.MenuProvider plugin (without submenus)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    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")

Example 3. A Thunarx.MenuProvider plugin (with submenus)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    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.