Example #1
0
    def proceed_definition(self):
        # grab the start iterator
        startpos = self.startpos[len(self.startpos) - 1]
        startiter = self.buffer.get_iter_at_offset(startpos)
        # grab the last iter of the buffer
        enditer = self.buffer.get_end_iter()
        # grab the text
        text = self.buffer.get_text(startiter, enditer)
        if text == "": return
        # proceed the term
        res = Doudou.proceed(text)
        if res == None: return
        if isinstance(res, str): 
            print res
            error_dialog(self.get_toplevel(), res)
            return

        # update starting position         
        endpos = startpos + res[0]
        self.startpos.append(endpos)

        enditer = self.buffer.get_iter_at_offset(endpos)

        # create a texttag

        self.buffer.apply_tag(self.not_editable_tag, startiter, enditer)
        
        # and we set the cursor there
        self.buffer.place_cursor(enditer)

        #print self.startpos
        return True
Example #2
0
    def undo(self):
        if len(self.startpos) == 1: return
        # calling the undo
        res = Doudou.undo()
        if isinstance(res, str): 
            print res
            error_dialog(self.get_toplevel(), res)
            return
        # poping the last starting position
        oldendpos = self.startpos.pop()

        # removing the tag
        newendpos = self.startpos[len(self.startpos) - 1]

        oldenditer = self.buffer.get_iter_at_offset(oldendpos)
        newenditer = self.buffer.get_iter_at_offset(newendpos)
        
        self.buffer.remove_tag(self.not_editable_tag, newenditer, oldenditer)

        # and we set the cursor
        self.buffer.place_cursor(newenditer)

        #print self.startpos
        return True
Example #3
0
 def show_defs(self):
     error_dialog(self.get_toplevel(), Doudou.showdefs())