All pastes #521146 Raw Edit

Untitled

public python v1 · immutable
#521146 ·published 2007-05-30 03:34 UTC
rendered paste body
import	gtk;import	gtksourceview;import	mimetypes;import	sys;class editor :	def __init__ ( self ) :		self.window		= gtk.Window ( gtk.WINDOW_TOPLEVEL );		self.window.connect("delete_event", self.delete_window );		self.window.set_title ( 'Simple Editor' );		self.window.resize ( 400, 400 );		self.vbox	= gtk.VBox ( False, 1 );		self.vbox.set_border_width ( 0 );		self.window.add ( self.vbox );		self.vbox.show()	        ui_string = """	        <ui>	            <menubar name="MenuBar">	                <menu action="File">	                    <menuitem action="New"/>	                    <menuitem action="Open"/>	                    <menuitem action="Save"/>	                    <menuitem action="Save As"/>	                    <separator/>	                    <menuitem action="Close"/>	                    <menuitem action="Quit"/>	                </menu>	                <menu action="Edit">	                    <menuitem action="Undo"/>	                    <menuitem action="Redo"/>	                    <separator/>	                    <menuitem action="Cut"/>	                    <menuitem action="Copy"/>	                    <menuitem action="Paste"/>	                    <menuitem action="Delete"/>	                    <separator/>	                    <menuitem action="Select All"/>	                </menu>	                <menu action="Help">	                    <menuitem action="About"/>	                </menu>	            </menubar>	            <toolbar name="ToolBar">	                <toolitem action="New"/>	                <toolitem action="Open"/>	                <toolitem action="Save"/>	                <toolitem action="Save As"/>			<separator/>	                <toolitem action="Save Session"/>	            </toolbar>	        </ui>	        """	        action_group	= gtk.ActionGroup ( 'simpleeditor' );	        action_group.add_actions ( [	            ('File', None, '_File'),	            ('New', gtk.STOCK_NEW, '_New', None, 'Create a new file!',	             self.new_file),	            ('Open', gtk.STOCK_OPEN, '_Open', None, 'Open a file!',	             self.open_file),	            ('Save', gtk.STOCK_SAVE, '_Save', None, 'Save file!',	             self.poo),	            ('Save As', gtk.STOCK_SAVE_AS, 'Save As', None, 'Save file as...',	             self.poo),	            ('Execute', gtk.STOCK_EXECUTE, 'Execute', None, 'Execute',	             self.poo),	            ('Close', gtk.STOCK_CLOSE, '_Close', None, 'Close a tab!',	             self.poo),	            ('Quit', gtk.STOCK_QUIT, '_Quit', None, 'Quit!',	             self.poo),	            ('Save Session', gtk.STOCK_PASTE, 'Save Session', None, 'Save Session!',	             self.poo),	            ('Edit', None, '_Edit'),	            ('Undo', gtk.STOCK_UNDO, '_Undo', None, 'Undo', None),	            ('Redo', gtk.STOCK_REDO, '_Redo', None, 'Redo', None),	            ('Cut', gtk.STOCK_CUT, 'Cu_t', None, 'Cut', self.poo),	            ('Copy', gtk.STOCK_COPY, '_Copy', None, 'Copy', self.poo),	            ('Paste', gtk.STOCK_PASTE, '_Paste', None, 'Paste', self.poo),	            ('Delete', gtk.STOCK_DELETE, '_Delete', None, 'Delete', self.poo),	            ('Select All', None, 'Select _All', None, 'Select All', None),	            ('Help', None, '_Help'),	            ('About', gtk.STOCK_ABOUT, '_About', None, 'About', self.poo)	        ] );	        uimanager	= gtk.UIManager ( );	        uimanager.insert_action_group ( action_group, 0 );	        uimanager.add_ui_from_string ( ui_string );	        accel_group	= uimanager.get_accel_group ( );	        self.window.add_accel_group ( accel_group );	        self.menubar	= uimanager.get_widget ( '/MenuBar' );	        self.toolbar	= uimanager.get_widget ( '/ToolBar' );	        self.vbox.pack_start ( self.menubar, False );	        self.vbox.pack_start ( self.toolbar, False );		self.notebook	= gtk.Notebook ( );		self.notebook.set_tab_pos ( gtk.POS_TOP );		self.notebook.show ( );		source_buffer		= self.create_buffer ( );		self.view = gtksourceview.SourceView ( source_buffer );		self.view.set_show_line_numbers ( True );		self.view.set_tabs_width ( 8 );		self.view.grab_focus ( );		scrolled_window = gtk.ScrolledWindow ( );		scrolled_window.set_policy ( gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC );		scrolled_window.add ( self.view );		scrolled_window.show ( );		self.frame	= gtk.Frame ( );		self.frame.set_border_width ( 10 );		self.frame.set_size_request ( 100, 75 );		self.frame.add ( scrolled_window );		self.frame.show ( );		label		= gtk.Label( 'Untitled 1' );		tabeventbox	= gtk.EventBox ( );		tabeventbox.connect ( 'button-press-event', self.poo );		tabeventbox.set_visible_window ( False );		tabhbox		= gtk.HBox ( False, 2 );		tabtooltip	= gtk.Tooltips ( );		tabtooltip.set_tip ( tabeventbox, 'Untitled 1' );		tabtooltip.enable ( );		tabbutton	= gtk.Button ( );		tabbutton.set_relief ( gtk.RELIEF_NONE );		tabbutton.connect ( 'clicked', self.close_tab );		tabbutton.set_use_underline ( False );		image		= gtk.Image ( );		image.set_from_stock ( gtk.STOCK_CLOSE, gtk.ICON_SIZE_MENU );		tabbutton.set_image ( image );		tabbutton.set_focus_on_click ( True );		tabhbox.pack_start ( label, False );		tabhbox.pack_end ( tabbutton, False, False );		tabhbox.show_all ( );		tabeventbox.add ( tabhbox );		self.notebook.append_page ( self.frame, tabeventbox );		self.vbox.pack_end ( self.notebook, True, True, 0 );		self.window.show_all ( );	def delete_window ( self, widget, event = None ):	        gtk.main_quit ( );	        return gtk.False;	def open_file ( self, event = None ) :		dialog = gtk.FileChooserDialog (			"Open File ...",			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 );		dialog.set_select_multiple ( True );		response	= dialog.run ( );		if ( response == gtk.RESPONSE_OK ) :			for i in dialog.get_filenames ( ) :				mime	= mimetypes.guess_type ( i )[ 0 ];				self.add_tab ( mime, i );		elif ( response == gtk.RESPONSE_CANCEL ) :			dialog.destroy ( );		dialog.destroy ( );	def new_file ( self, name = None, widget = None, event = None ) :		self.add_tab ( 'text/plain', '' );	def poo ( self, name = None, widget = None, event = None ) :		print 1;	def get_currentbuffer ( self ) :		current_buffer = self.notebook.get_nth_page ( self.notebook.get_current_page ( ) ).get_child ( );		return current_buffer.get_child ( );	def create_buffer ( self, language = 'text/x-python' ) :		source_languages_manager	= gtksourceview.SourceLanguagesManager ( );		source_buffer			= gtksourceview.SourceBuffer ( );		source_buffer.set_language ( source_languages_manager.get_language_from_mime_type ( language ) );		source_buffer.set_highlight ( True );		return source_buffer;	def close_tab ( self, name = None, widget = None, event = None ) :		self.notebook.remove_page ( self.notebook.get_current_page ( ) );	def add_tab ( self, mime, filename ) :		source_buffer		= self.create_buffer ( mime );		view = gtksourceview.SourceView ( source_buffer );		view.set_show_line_numbers ( True );		view.set_tabs_width ( 8 );		view.grab_focus ( );		view.show ( );		scrolled_window = gtk.ScrolledWindow ( );		scrolled_window.set_policy ( gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC );		scrolled_window.add ( view );		scrolled_window.show ( );		frame	= gtk.Frame ( );		frame.set_border_width ( 10 );		frame.set_size_request ( 100, 75 );		frame.add ( scrolled_window );		frame.show ( );		try :			file_name	= filename.split ( '/' );			file_name	= file_name[ len ( file_name ) - 1 ];		except :			file_name	= 'Untitled';		label		= gtk.Label( file_name );		tabeventbox	= gtk.EventBox ( );		tabeventbox.connect ( 'button-press-event', self.poo );		tabeventbox.set_visible_window ( False );		tabhbox		= gtk.HBox ( False, 2 );		tabtooltip	= gtk.Tooltips ( );		tabtooltip.set_tip ( tabeventbox, file_name );		tabtooltip.enable ( );		tabbutton	= gtk.Button ( );		tabbutton.set_relief ( gtk.RELIEF_NONE );		tabbutton.connect ( 'clicked', self.close_tab );		tabbutton.set_use_underline ( False );		image		= gtk.Image ( );		image.set_from_stock ( gtk.STOCK_CLOSE, gtk.ICON_SIZE_MENU );		tabbutton.set_image ( image );		tabbutton.set_focus_on_click ( True );		tabhbox.pack_start ( label, False );		tabhbox.pack_end ( tabbutton, False, False );		tabhbox.show_all ( );		tabeventbox.add ( tabhbox );		try :			source_buffer.insert ( source_buffer.get_start_iter(), open ( filename ).read ( ) );		except :			source_buffer.insert ( source_buffer.get_start_iter(), '' );		self.current_page	= self.notebook.append_page ( frame, tabeventbox );		self.notebook.set_current_page ( self.current_page );def main ( ) :	app	= editor ( );	gtk.main ( );if ( __name__ == '__main__' ) :	main ( );"""print view.get_buffer ( );GET TEXT            fd = open(filepath, 'w')            fd.write(self.buffer.get_text(                            self.buffer.get_start_iter(),                            self.buffer.get_end_iter(), False))            fd.close()SET MODIFIED            self.buffer.set_modified(False)FONT            source_view.modify_font(pango.FontDescription('Monospace'))"""