Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
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
                                      )