class Navegador(Gtk.HPaned): __gsignals__ = { "info": (GObject.SIGNAL_RUN_FIRST, GObject.TYPE_NONE, (GObject.TYPE_PYOBJECT, )) } def __init__(self): Gtk.HPaned.__init__(self) self.api = None self.descriptor = None self.pack1(self.area_izquierda_del_panel(), resize=False, shrink=True) self.pack2(self.area_derecha_del_panel(), resize=True, shrink=True) self.show_all() self.api.connect('objeto', self.ver_objeto) self.api.connect('info', self.re_emit_info) def re_emit_info(self, widget, objeto): self.emit('info', objeto) def ver_objeto(self, widget, objeto): os.chdir(DATOS) try: if objeto: pydoc.writedoc(objeto) archivo = os.path.join(DATOS, '%s.html' % (objeto.__name__)) self.descriptor.open(archivo) else: self.descriptor.open('') except: self.descriptor.open('') def area_izquierda_del_panel(self): vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) # gtk 2 hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) frame = Gtk.Frame() frame.set_label("Objects") frame.set_label_align(0.5, 0.5) combo = Gtk.ComboBoxText() for item in PaquetesObjetos1: combo.append_text(item) combo.connect('changed', self.get_item) frame.add(combo) hbox.pack_start(frame, True, True, 2) frame = Gtk.Frame() frame.set_label("No Objects") frame.set_label_align(0.5, 0.5) combo2 = Gtk.ComboBoxText() for item in PaquetesNoObjetos1: combo2.append_text(item) combo2.connect('changed', self.get_item) frame.add(combo2) hbox.pack_start(frame, True, True, 2) frame = Gtk.Frame() frame.set_label("gir-1.1-gtk-2.0") frame.set_label_align(0.5, 0.5) frame.add(hbox) vbox.pack_start(frame, False, False, 0) # gtk 3 hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) frame = Gtk.Frame() frame.set_label("Objects") frame.set_label_align(0.5, 0.5) combo = Gtk.ComboBoxText() for item in PaquetesObjetos2: combo.append_text(item) combo.connect('changed', self.get_item) frame.add(combo) hbox.pack_start(frame, True, True, 2) frame = Gtk.Frame() frame.set_label("No Objects") frame.set_label_align(0.5, 0.5) combo2 = Gtk.ComboBoxText() for item in PaquetesNoObjetos2: combo2.append_text(item) combo2.connect('changed', self.get_item) frame.add(combo2) hbox.pack_start(frame, True, True, 2) frame = Gtk.Frame() frame.set_label("gir-1.2-gtk-3.0") frame.set_label_align(0.5, 0.5) frame.add(hbox) vbox.pack_start(frame, False, False, 0) scrolled_window = Gtk.ScrolledWindow() scrolled_window.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self.api = Api() scrolled_window.add_with_viewport(self.api) vbox.pack_start(scrolled_window, True, True, 0) combo.set_active(0) return vbox def area_derecha_del_panel(self): scrolled_window = Gtk.ScrolledWindow() scrolled_window.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) self.descriptor = WebKit.WebView() scrolled_window.add_with_viewport(self.descriptor) return scrolled_window def get_item(self, widget): self.api.llenar([widget.get_active_text()])