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 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)
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()
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()
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()