def create_widgets(self): self.glade_file = GLADE_FILE self.propsdialog_glade_file = PROPSDIALOG_GLADE_FILE wTree = glade.XML( self.glade_file, 'main_window') wTree.signal_autoconnect(self) self.window = wTree.get_widget('main_window') top_vbox = wTree.get_widget('top_vbox') self.main_menubar = wTree.get_widget('main_menubar') # (un)fullscreen available in PyGTK 2.2 and above if gtk.pygtk_version < (2, 2): wTree.get_widget('fullscreen_menu').set_sensitive(False) #self.open_recent_file_menu = wTree.get_widget('open_recent_file_menu') self.content_menu = wTree.get_widget('content_menu') self.background_menu = wTree.get_widget('background_menu') self.skins_menu = wTree.get_widget('skins_menu') self.hyphenation_menu = wTree.get_widget('hyphenation_menu') self.text_widget = ContentArea( self, self.properties ) top_vbox.pack_start( self.text_widget ) self.text_widget.realize() #text_widget.connect('position-changed', self.position_changed_cb) #self.text_widget = text_widget #self.properties.read() self.window.resize( self.properties.window.width, self.properties.window.height ) self.update_background_menu() self.update_skins_menu() self.update_hyphenation_menu() self.window.show_all() self.text_widget.initialize()
class InterfaceMain: #=============================================================================# # # # Private methods # # v # #=============================================================================# def __init__(self, filename=None, fullscreen=False, hidemenu=False): self.filename = None self.encoding = 'utf-8' self.line = 0 self.char = 0 self.is_fullscreen = False self.prev_geometry = (0, 0) self.properties = Properties() self.properties.read() self.recent_files = RecentFiles() self.recent_files.read() self.create_widgets() if filename: self.filename = filename else: self.filename = self.recent_files.filename() self.line = self.recent_files.line() self.char = self.recent_files.char() gobject.idle_add( self.open_file, self.filename ) if fullscreen and gtk.pygtk_version >= (2, 2): self.on_fullscreen_activate() self.prev_geometry = (self.properties.window.width, self.properties.window.height) if hidemenu: self.main_menubar.hide() #self.timeout_cb() gobject.idle_add(lambda : self.timeout_cb() and False) gobject.timeout_add(10000, self.timeout_cb) #self.window.connect('key-release-event', self.key_press_event_cb) self.window.connect('key-press-event', self.key_press_event_cb) #=============================================================================# # # # Public methods # # v # #=============================================================================# def create_widgets(self): self.glade_file = GLADE_FILE self.propsdialog_glade_file = PROPSDIALOG_GLADE_FILE wTree = glade.XML( self.glade_file, 'main_window') wTree.signal_autoconnect(self) self.window = wTree.get_widget('main_window') top_vbox = wTree.get_widget('top_vbox') self.main_menubar = wTree.get_widget('main_menubar') # (un)fullscreen available in PyGTK 2.2 and above if gtk.pygtk_version < (2, 2): wTree.get_widget('fullscreen_menu').set_sensitive(False) #self.open_recent_file_menu = wTree.get_widget('open_recent_file_menu') self.content_menu = wTree.get_widget('content_menu') self.background_menu = wTree.get_widget('background_menu') self.skins_menu = wTree.get_widget('skins_menu') self.hyphenation_menu = wTree.get_widget('hyphenation_menu') self.text_widget = ContentArea( self, self.properties ) top_vbox.pack_start( self.text_widget ) self.text_widget.realize() #text_widget.connect('position-changed', self.position_changed_cb) #self.text_widget = text_widget #self.properties.read() self.window.resize( self.properties.window.width, self.properties.window.height ) self.update_background_menu() self.update_skins_menu() self.update_hyphenation_menu() self.window.show_all() self.text_widget.initialize() #=============================================================================# def open_file(self, filename): #print 'open_file', filename try: open(filename) except IOError, err: #sys.stderr.write('ERROR: can\'t open file: %s: %s\n' # % (filename, err[1])) error_dialog( self.window, "Can't open file %s: %s" % (filename, err[1]) ) return if self.filename: # save previous file #print 'save previous file', self.text_widget.current_page_line_index self.recent_files.add( self.filename, self.text_widget.current_page_line_index, self.text_widget.current_page_char_index, self.text_widget.content.encoding, ) self.text_widget.open_file( self.filename, line=self.line, char=self.char )