Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: UTF8 -*-
- import gtk
- import gtksourceview
- import pango
- class EditorTest:
- def delete_event(self, widget, event, data=None):
- return False
- def destroy(self, widget, data=None):
- gtk.main_quit()
- def open_file(self, widget, data=None):
- dialog = gtk.FileChooserDialog("Άνοιγμα...", None, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK))
- dialog.set_default_response(gtk.RESPONSE_OK)
- filter = gtk.FileFilter()
- filter.set_name("Αρχεία πηγαίου κώδικα Python")
- filter.add_mime_type("text/python")
- filter.add_pattern("*.py")
- dialog.add_filter(filter)
- response = dialog.run()
- if response == gtk.RESPONSE_OK:
- fname = dialog.get_filename()
- f = open(fname, 'r')
- self.view.get_buffer().set_text(f.read())
- dialog.destroy()
- def save_file(self, widget, data=None):
- dialog = gtk.FileChooserDialog("Αποθήκευση ως..", None, gtk.FILE_CHOOSER_ACTION_SAVE, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK))
- dialog.set_default_response(gtk.RESPONSE_OK)
- filter = gtk.FileFilter()
- filter.set_name("Αρχεία πηγαίου κώδικα Python")
- filter.add_mime_type("text/python")
- filter.add_pattern("*.py")
- dialog.add_filter(filter)
- response = dialog.run()
- if response == gtk.RESPONSE_OK:
- fname = dialog.get_filename()
- f = open(fname, 'w')
- textbuf = self.view.get_buffer()
- f.write(textbuf.get_text(textbuf.get_start_iter(), textbuf.get_end_iter(), False))
- dialog.destroy()
- def __init__(self):
- self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
- win = self.window
- win.connect("delete_event", self.delete_event)
- win.connect("destroy", self.destroy)
- vbox = gtk.VBox(False, 0)
- hbox = gtk.HBox(False, 5)
- open_button = gtk.Button("Open")
- open_button.connect("clicked", self.open_file, None)
- save_button = gtk.Button("Save as...")
- save_button.connect("clicked", self.save_file, None)
- hbox.pack_start(open_button, False, False, 10)
- hbox.pack_start(save_button, False, False, 0)
- scrolled_window = gtk.ScrolledWindow()
- scrolled_window.set_border_width(10)
- scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_ALWAYS)
- scrolled_window.show()
- bufferS = gtksourceview.SourceBuffer()
- manager = gtksourceview.SourceLanguagesManager()
- language = manager.get_language_from_mime_type("text/x-python")
- bufferS.set_language(language)
- bufferS.set_highlight(True)
- self.view = gtksourceview.SourceView(bufferS)
- self.view.set_show_line_numbers(True)
- self.view.modify_font(pango.FontDescription("monospace 10"))
- win.resize(400,400)
- scrolled_window.add_with_viewport(self.view)
- vbox.pack_start(hbox, False, False, 5)
- vbox.pack_start(scrolled_window, True, True, 0)
- win.add(vbox)
- win.show_all()
- def main(self):
- gtk.main()
- if __name__ == "__main__":
- editor = EditorTest()
- editor.main()
Advertisement
Add Comment
Please, Sign In to add comment