Пример #1
0
 def init(self):
     self.editor = Pscyntilla()
     self.widget.pack_start(self.editor._sc)
     self.optionize()
     self.editor._sc.connect('modified', self.cb_modified)
     self.editor._sc.connect('save-point-reached',
                             self.cb_save_point_reached)
     self.editor._sc.connect('save-point-left', self.cb_save_point_left)
Пример #2
0
 def init(self):
     self.editor = Pscyntilla()
     self.marks = {}
     # TODO: need a better way to do this:
     self.editor.service = self.service
     self.widget.pack_start(self.editor._sc)
     self.optionize()
     self.editor._sc.connect('modified', self.cb_modified)
     self.editor._sc.connect('save-point-reached', self.cb_save_point_reached)
     self.editor._sc.connect('save-point-left', self.cb_save_point_left)
     self.editor.connect('mark-clicked', self.cb_mark_clicked)
Пример #3
0
 def init(self):
     self.editor = Pscyntilla()
     self.widget.pack_start(self.editor._sc)
     self.optionize()
     self.editor._sc.connect('modified', self.cb_modified)
     self.editor._sc.connect('save-point-reached', self.cb_save_point_reached)
     self.editor._sc.connect('save-point-left', self.cb_save_point_left)
Пример #4
0
class ScintillaView(contentview.content_view):

    HAS_CONTROL_BOX = False
    HAS_TITLE = False

    def init(self):
        self.editor = Pscyntilla()
        self.widget.pack_start(self.editor._sc)
        self.optionize()
        self.editor._sc.connect('modified', self.cb_modified)
        self.editor._sc.connect('save-point-reached',
                                self.cb_save_point_reached)
        self.editor._sc.connect('save-point-left', self.cb_save_point_left)

    def cb_save_point_reached(self, editor, *args):
        self.service._save_act.set_sensitive(False)
        self.service._revert_act.set_sensitive(False)

    def cb_save_point_left(self, editor, *args):
        self.service._save_act.set_sensitive(True)
        self.service._revert_act.set_sensitive(True)

    def optionize(self):
        opt = self.service.opt
        # font
        self.editor.set_font(*self._font_and_size(opt('font', 'font')))
        # indenting options
        use_tabs = opt('indenting', 'use_tabs')
        self.editor.set_use_tabs(use_tabs)
        self.editor.set_tab_width(opt('indenting', 'tab_width'))
        if not use_tabs:
            self.editor.set_spaceindent_width(
                opt('indenting', 'space_indent_width'))
        # folding options
        self.editor.use_folding(opt('folding', 'use_folding'),
                                width=opt('folding', 'marker_size'))
        self.editor.set_foldmargin_colours(back=opt('folding',
                                                    'marker_background'),
                                           fore=opt('folding',
                                                    'marker_foreground'))
        # line numbers
        self.editor.set_linenumber_margin_colours(
            background=opt('line_numbers', 'background'),
            foreground=opt('line_numbers', 'foreground'))
        self.editor.set_linenumbers_visible(
            opt('line_numbers', 'show_line_numbers'))
        if opt('colors', 'use_dark_theme'):
            self.editor.use_dark_theme()
        else:
            self.editor.use_light_theme()
        # caret and selection
        car = 'caret'
        self.editor.set_caret_colour(opt(car, 'caret_colour'))
        self.editor.set_caret_line_visible(opt(car, 'highlight_current_line'),
                                           opt(car, 'current_line_color'))
        self.editor.set_selection_color(opt(car, 'selection_color'))
        # edge column
        el = 'edge_line'
        self.editor.set_edge_column_visible(opt(el, 'show_edge_line'),
                                            opt(el, 'position'),
                                            opt(el, 'color'))

    def _font_and_size(self, fontdesc):
        name, size = fontdesc.rsplit(' ', 1)
        size = int(size)
        return name, size

    def cb_modified(self, editor, *args):
        if self.service._current:
            self.service._sensitise_actions()
Пример #5
0
class ScintillaView(contentview.content_view):

    HAS_CONTROL_BOX = False
    HAS_TITLE = False

    def init(self):
        self.editor = Pscyntilla()
        self.widget.pack_start(self.editor._sc)
        self.optionize()
        self.editor._sc.connect('modified', self.cb_modified)
        self.editor._sc.connect('save-point-reached', self.cb_save_point_reached)
        self.editor._sc.connect('save-point-left', self.cb_save_point_left)

    def cb_save_point_reached(self, editor, *args):
        self.service._save_act.set_sensitive(False)
        self.service._revert_act.set_sensitive(False)
    
    def cb_save_point_left(self, editor, *args):
        self.service._save_act.set_sensitive(True)
        self.service._revert_act.set_sensitive(True)
        
    def optionize(self):
        opt = self.service.opt
        # font
        self.editor.set_font(
                *self._font_and_size(opt('font', 'font')))
        # indenting options
        use_tabs = opt('indenting', 'use_tabs')
        self.editor.set_use_tabs(use_tabs)
        self.editor.set_tab_width(opt('indenting', 'tab_width'))
        if not use_tabs:
            self.editor.set_spaceindent_width(
                opt('indenting', 'space_indent_width'))
        # folding options
        self.editor.use_folding(
            opt('folding', 'use_folding'), width=opt('folding', 'marker_size'))
        self.editor.set_foldmargin_colours(
            back=opt('folding', 'marker_background'),
            fore=opt('folding', 'marker_foreground'))
        # line numbers
        self.editor.set_linenumber_margin_colours(
            background=opt('line_numbers', 'background'),
            foreground=opt('line_numbers', 'foreground'))
        self.editor.set_linenumbers_visible(
            opt('line_numbers', 'show_line_numbers'))
        if opt('colors', 'use_dark_theme'):
            self.editor.use_dark_theme()
        else:
            self.editor.use_light_theme()
        # caret and selection
        car = 'caret'
        self.editor.set_caret_colour(opt(car, 'caret_colour'))
        self.editor.set_caret_line_visible(
            opt(car, 'highlight_current_line'),
            opt(car, 'current_line_color'))
        self.editor.set_selection_color(
            opt(car, 'selection_color'))
        # edge column
        el = 'edge_line'
        self.editor.set_edge_column_visible(
            opt(el, 'show_edge_line'),
            opt(el, 'position'),
            opt(el, 'color'))

    def _font_and_size(self, fontdesc):
        name, size = fontdesc.rsplit(' ', 1)
        size = int(size)
        return name, size
        
    def cb_modified(self, editor, *args):
        if self.service._current:
            self.service._sensitise_actions()
Пример #6
0
class ScintillaView(contentview.content_view):

    HAS_CONTROL_BOX = False
    HAS_TITLE = False

    def init(self):
        self.editor = Pscyntilla()
        self.marks = {}
        # TODO: need a better way to do this:
        self.editor.service = self.service
        self.widget.pack_start(self.editor._sc)
        self.optionize()
        self.editor._sc.connect('modified', self.cb_modified)
        self.editor._sc.connect('save-point-reached', self.cb_save_point_reached)
        self.editor._sc.connect('save-point-left', self.cb_save_point_left)
        self.editor.connect('mark-clicked', self.cb_mark_clicked)

    def cb_save_point_reached(self, editor, *args):
        self.service._save_act.set_sensitive(False)
        self.service._revert_act.set_sensitive(False)
    
    def cb_save_point_left(self, editor, *args):
        self.service._save_act.set_sensitive(True)
        self.service._revert_act.set_sensitive(True)
    
    def cb_mark_clicked(self, ed, line, hasmark):
        if self.editor.filename:
            if hasmark:
                cmd = 'del_breakpoint'
                self.service.boss.call_command('pythondebugger', cmd,
                    index=self.marks[line])
            else:
                cmd = 'set_breakpoint'
                # line + 1 debugger starts at line 1
                self.service.boss.call_command('pythondebugger', cmd,
                    filename=self.editor.filename, line=line + 1)
    
    def optionize(self):
        """Loads the user options"""
        opts = self.service.opts
        options = self.service.options
        editor = self.editor
        
        # font
        font = options.font
        print opts.font__size, opts.font__name, opts.font__font
        editor.set_font_size(opts.font__size)
        editor.set_font_name(opts.font__name)
        
        # indenting options
        indenting = options.indenting
        editor.set_use_tabs(indenting.use_tabs)
        editor.set_tab_width(indenting.tab_width)
        if not indenting.use_tabs:
            editor.set_spaceindent_width(indenting.space_indent_width)
            
        # folding options
        folding = options.folding
        width = folding.marker_size
        editor.use_folding(folding.use_folding, width=width)
        
        # line numbers
        line_numbers = options.line_numbers
        editor.set_linenumbers_visible(line_numbers.show_line_numbers)

        # caret and currentline
        caret = options.caret
        highlight = caret.highlight_current_line
        editor.set_currentline_visible(highlight)

        # edge column
        edge_line = options.edge_line
        editor.set_edge_column_visible(edge_line.show_edge_line,
                                       edge_line.position)
        
        # color options
        editor.set_color_schema(THEMES[options.colors.scheme])
            

    def _font_and_size(self, fontdesc):
        name, size = fontdesc.rsplit(' ', 1)
        size = int(size)
        return name, size
        
    def cb_modified(self, editor, *args):
        if self.service._current:
            self.service._sensitise_actions()