# -*- coding: utf-8 -*- # __init__.py -- plugin object # # Copyright (C) 2006 - Steve Frécinaux # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # Parts from "Interactive Python-GTK Console" (stolen from epiphany's console.py) # Copyright (C), 1998 James Henstridge # Copyright (C), 2005 Adam Hooper # Bits from gedit Python Console Plugin # Copyrignt (C), 2005 Raphaël Slinckx import gi gi.require_version('Gedit', '3.0') gi.require_version('Peas', '1.0') gi.require_version('PeasGtk', '1.0') gi.require_version('Gtk', '3.0') from gi.repository import GObject, Gtk, Gedit, Peas, PeasGtk from .console import PythonConsole from .config import PythonConsoleConfigWidget try: import gettext gettext.bindtextdomain('gedit') gettext.textdomain('gedit') _ = gettext.gettext except: _ = lambda s: s class PythonConsolePlugin(GObject.Object, Gedit.WindowActivatable, PeasGtk.Configurable): __gtype_name__ = "PythonConsolePlugin" window = GObject.Property(type=Gedit.Window) def __init__(self): GObject.Object.__init__(self) def do_activate(self): self._console = PythonConsole(namespace = {'__builtins__' : __builtins__, 'gedit' : Gedit, 'window' : self.window}) self._console.eval('print("You can access the main window through ' \ '\'window\' :\\n%s" % window)', False) bottom = self.window.get_bottom_panel() self._console.show_all() bottom.add_titled(self._console, "GeditPythonConsolePanel", _('Python Console')) def do_deactivate(self): self._console.stop() bottom = self.window.get_bottom_panel() bottom.remove(self._console) def do_update_state(self): pass def do_create_configure_widget(self): config_widget = PythonConsoleConfigWidget(self.plugin_info.get_data_dir()) return config_widget.configure_widget() # ex:et:ts=4: