
import nautilus
import gtk
import gtkcons

# the following 3 lines make it so that you can run Twisted programs from
# within Nautilus.

from twisted.internet import gtk2reactor
theReactor = gtk2reactor.install()
theReactor.startRunning()

class PythonMenuProvider(nautilus.MenuProvider):
    def __init__(self):
         pass

    def get_file_items(self, window, files):
        X = []
        item = nautilus.MenuItem('NautilusPython::python_console',
                                 '>>> Python()',
                                 'Start a Python console window with "window" and "files" variables in scope.')
        item.set_property('icon', 'gnome-mime-text-x-python')

        def menu_activate_cb(menu):
            gtkcons.gtk_console({'window': window,
                                 'files': files})

        item.connect('activate', menu_activate_cb)
        X.append(item)
        return X

