Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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
Пример #6
0
    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()
Пример #7
0
    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()
Пример #8
0
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()
Пример #9
0
    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)