def __init__(self, *a, **kw): gtksourceview.View.__init__(self, *a, **kw) self.filename = None self.mark = None self.offset = 0 self.program_length = 0 self.idle_line_reset = True self.buf = gtksourceview.Buffer() self.buf.set_max_undo_levels(20) self.buf.connect('changed', self.update_iter) self.set_buffer(self.buf) self.lm = gtksourceview.LanguageManager() self.sm = gtksourceview.StyleSchemeManager() if 'EMC2_HOME' in os.environ: path = os.path.join(os.environ['EMC2_HOME'], 'share/gtksourceview-2.0/language-specs/') self.lm.set_search_path(self.lm.get_search_path() + [path]) self.buf.set_language(self.lm.get_language('.ngc')) self.set_show_line_numbers(True) self.set_show_line_marks(True) self.set_highlight_current_line(True) self.set_mark_category_icon_from_icon_name('motion', 'gtk-forward') self.set_mark_category_background('motion', gtk.gdk.Color('#ff0')) self.found_text_tag = self.buf.create_tag(background="yellow") self.update_iter() self.connect('button-release-event', self.button_pressed)
def __init__(self, *a, **kw): gtksourceview.View.__init__(self, *a, **kw) self.filename = None self.mark = None self.offset = 0 self.program_length = 0 self.idle_line_reset = True self.buf = gtksourceview.Buffer() self.buf.set_max_undo_levels(20) self.buf.connect('changed', self.update_iter) self.set_buffer(self.buf) self.lm = gtksourceview.LanguageManager() self.sm = gtksourceview.StyleSchemeManager() if 'EMC2_HOME' in os.environ: path = os.path.join(os.environ['EMC2_HOME'], 'share/gtksourceview-2.0/language-specs/') self.lm.set_search_path(self.lm.get_search_path() + [path]) self.buf.set_language(self.lm.get_language('.ngc')) self.set_show_line_numbers(True) self.set_show_line_marks(True) self.set_highlight_current_line(True) # This gets the 'selected text' color # This is before the widget is realized so gives the system theme color style = self.get_style() selected_color = style.base[gtk.STATE_SELECTED].to_string() self.set_mark_category_icon_from_icon_name('motion', 'gtk-forward') self.set_mark_category_background('motion', gtk.gdk.Color(selected_color)) self.found_text_tag = self.buf.create_tag(background=selected_color) self.update_iter() self.connect('button-release-event', self.button_pressed)
def _make_style_scheme(spec): # Quite stupidly, there's no way to create a SourceStyleScheme without # reading a file from a search path. So this function creates a file in # a directory, to get you your style scheme. # # spec should be a dict of dicts, mapping style names to (attribute, value) # pairs. Color values will be converted using gdk.color_parse(). # Boolean values will be handled correctly. dir = tempfile.mkdtemp() filename = os.path.join(dir, 'scheme.xml') f = open(filename, 'w') f.write('<?xml version="1.0" encoding="UTF-8"?>\n') f.write('<style-scheme id="scheme" _name="Scheme" version="1.0">\n') for name, attributes in spec.iteritems(): f.write('<style name="%s" ' % name) for attname, attvalue in attributes.iteritems(): if attname in ('foreground', 'background'): attvalue = gdk.color_parse(attvalue).to_string() elif attname in ('italic', 'bold', 'underline', 'strikethrough', 'foreground-set', 'background-set'): attvalue = 'true' if attvalue else 'false' f.write('%s="%s" ' % (attname, attvalue)) f.write('/>\n') f.write('</style-scheme>\n') f.close() ssm = gtksourceview2.StyleSchemeManager() ssm.set_search_path([dir]) scheme = ssm.get_scheme('scheme') os.remove(filename) os.rmdir(dir) return scheme
def createsrcview(status, f=None): sbuffer = gtksourceview2.Buffer() if f: content = file(f).read() sbuffer.set_language(get_lang_for_content(content)) text = unicode(content, 'utf-8', 'ignore') sbuffer.set_text(text) else: manager = gtksourceview2.language_manager_get_default() sbuffer.set_language(manager.get_language("c")) sv = gtksourceview2.View(sbuffer) p = prefs.preferences() misc.set_widget_font(sv, config.cur_editor_font) manager = gtksourceview2.StyleSchemeManager() manager.append_search_path(misc.getArduinoUiPath()) manager.force_rescan() scheme = manager.get_scheme("arduino") sbuffer.set_style_scheme(scheme); sv.set_size_request(300, 100) sv.set_editable(True) sv.set_auto_indent(True) if config.show_numbers == 'true': sv.set_show_line_numbers(True) sv.set_cursor_visible(True) sv.set_wrap_mode(gtk.WRAP_CHAR) sv.set_right_margin_position(80) updatePos(sbuffer, status) sbuffer.connect("mark_set", markCb, status) sbuffer.connect("insert_text", instextCallback) sv.set_highlight_current_line(True) resetCursor(sbuffer) return sbuffer, sv
def get(): style_scheme_manager = globals()['style_scheme_manager'] if style_scheme_manager == None: import gtksourceview2 style_scheme_manager = gtksourceview2.StyleSchemeManager() add_gedit_styles_path(style_scheme_manager) return style_scheme_manager
def __init__(self, fullPath, activity): """ Do any initialization here. """ global mark_seq mark_seq = 0 self.fullPath = fullPath self._activity = activity self.breakpoints = {} self.embeds = {} gtk.ScrolledWindow.__init__(self) self.text_buffer = gtksourceview2.Buffer() self.text_buffer.create_tag(BREAKPOINT_CAT, background=BREAKPOINT_COLOR) self.text_buffer.create_tag(SHELL_CAT, background=EMBEDED_SHELL_COLOR) self.text_buffer.create_tag(TRACE_CAT, background=EMBEDED_BREAKPOINT_COLOR) self.text_view = gtksourceview2.View(self.text_buffer) self.text_view.connect('button_press_event', self._pd_button_press_cb) self.text_view.set_size_request(900, 350) self.text_view.set_editable(True) self.text_view.set_cursor_visible(True) self.text_view.set_highlight_current_line(True) self.text_view.set_show_line_numbers(True) self.text_view.set_insert_spaces_instead_of_tabs(True) if hasattr(self.text_view, 'set_tabs_width'): self.text_view.set_tabs_width(4) else: self.text_view.set_tab_width(4) self.text_view.set_auto_indent(True) self.text_view.set_wrap_mode(gtk.WRAP_CHAR) #self.text_view.modify_font(pango.FontDescription("Monospace 6.5")) self.set_font_size(self._activity.font_size) # We could change the color theme here, if we want to. """ folowing does not work on build 650 mgr = gtksourceview2.StyleSchemeManager() mgr.prepend_search_path(self._activity.pydebug_path) _logger.debug('search path for gtksourceview is %r'%mgr.get_search_path()) """ #build 650 doesn't seem to have the same means of specifying the search directory if self._activity.sugar_minor > 80: mgr = gtksourceview2.StyleSchemeManager() else: mgr = gtksourceview2.StyleManager() mgr.prepend_search_path(self._activity.pydebug_path) style_scheme = mgr.get_scheme('vibrant') if style_scheme: self.text_buffer.set_style_scheme(style_scheme) self.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.add(self.text_view) self.text_view.show() self.load_text() self.show()
def __init__(self, preview=False): gobject.GObject.__init__(self) self.is_preview = preview # Module init self.prefs = Preferences self.keyboard = Keyboard # create buffer self.buf = gtksourceview.Buffer() self.gtksourceview = gtksourceview.View(self.buf) # setup style and lang managers self.lm = gtksourceview.LanguageManager() self.sm = gtksourceview.StyleSchemeManager() self.lm.set_search_path([LANGDIR]) self.sm.set_search_path([STYLEDIR]) self.buf.set_style_scheme(self.sm.get_scheme('gcode')) self.buf.set_language(self.lm.get_language('gcode')) self.buf.set_max_undo_levels(20) self.gtksourceview.set_show_line_numbers(True) self.gtksourceview.set_show_line_marks(False) self.gtksourceview.set_highlight_current_line(False) # Only allow edit if gcode preview self.gtksourceview.set_editable(self.is_preview) self.holder_text = "\t\t\t****No file to preview****" # Only highlight motion line if not preview if not self.is_preview: self.gtksourceview.set_can_focus(False) self.holder_text = "" self.gtksourceview.connect('button-press-event', self.on_button_press) self.gtksourceview.connect('key-press-event', self.on_key_press) # Set line highlight styles self.gtksourceview.set_mark_category_background( 'none', gtk.gdk.Color('#ffffff')) self.gtksourceview.set_mark_category_background( 'motion', gtk.gdk.Color('#c5c5c5')) self.gtksourceview.set_mark_category_background( 'selected', gtk.gdk.Color('#96fef6')) self.gtksourceview.set_mark_category_background( 'error', gtk.gdk.Color('#ff7373')) self.mark = None self.current_file = None self.error_line = None self.gtksourceview.show()
def main(args): # create buffer lm = gtksourceview2.LanguageManager() sm = gtksourceview2.StyleSchemeManager() buffer = gtksourceview2.Buffer() buffer.set_data('languages-manager', lm) buffer.set_data('styles-scheme-manager', sm) # parse arguments if len(args) >= 2: open_file(buffer, args[1]) else: sys.exit("Aucun argument") open_file(buffer, args[0]) # create first window window = create_main_window(buffer) window.set_default_size(683, 700) # window.set_icon_from_file("/home/lilian/.mocaml/.mocamlViewFile.jpg") window.show() # main loop gtk.main()
def setup(self): self.sourcebuffer = gtksourceview2.Buffer() self.langmanager = gtksourceview2.LanguageManager() self.stylemanager = gtksourceview2.StyleSchemeManager() if 'tango' in self.stylemanager.get_scheme_ids(): self.sourcebuffer.set_style_scheme( self.stylemanager.get_scheme('tango')) self.sourceview = gtksourceview2.View(self.sourcebuffer) self.sourceview.set_editable(False) self.sourceview.set_show_line_numbers(True) self.sourceview.modify_font(pango.FontDescription('Monospace')) sidesplit = gtk.HPaned() box = gtk.VBox() scroll = gtk.ScrolledWindow() scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroll.add(self.sourceview) box.pack_start(scroll, expand=True, fill=True, padding=0) self.liststore = gtk.ListStore(str, str) treeview = gtk.TreeView(self.liststore) treeview.set_headers_visible(False) col = gtk.TreeViewColumn(None, gtk.CellRendererText(), text=0) treeview.append_column(col) col = gtk.TreeViewColumn(None, gtk.CellRendererText(), text=1) treeview.append_column(col) scroll = gtk.ScrolledWindow() scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroll.add(treeview) scroll.set_property('height-request', 120) box2 = gtk.HBox() box2.pack_start(scroll, expand=True, fill=True, padding=0) gravaimg = gtk.Button() self.image = gtk.Image() self.image.set_size_request(80, 80) self.image.set_from_stock(gtk.STOCK_MISSING_IMAGE, gtk.ICON_SIZE_LARGE_TOOLBAR) self.image.show() gravaimg.add(self.image) self.gravaloader = GravatarLoader() self.gravaloader.start() box2.pack_end(gravaimg, expand=False, fill=True, padding=0) box.pack_end(box2, expand=False, fill=True, padding=4) sidesplit.pack1(box, resize=True) self.sidelist = gtk.ListStore(str, str) sidetree = gtk.TreeView(self.sidelist) sidetree.connect("button-press-event", self.on_authors_clicked) #sidetree.set_headers_visible(False) renderer = gtk.CellRendererText() renderer.set_property("ellipsize", pango.ELLIPSIZE_END) col = gtk.TreeViewColumn("Authors", renderer, text=0) sidetree.append_column(col) sidetree.set_tooltip_column(0) sidetree.set_size_request(160, -1) sidesplit.pack2(sidetree, resize=False) sidesplit.set_position(-1) self.add(sidesplit)