Exemplo n.º 1
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
Exemplo n.º 2
0
    def __init__(self):
        gtk.VBox.__init__(self)

        self._b = gtksourceview.Buffer()
        style_scheme = gtksourceview.style_scheme_manager_get_default(
        ).get_scheme('classic')
        if style_scheme:
            self._b.set_style_scheme(style_scheme)
        self._b.set_language(
            gtksourceview.language_manager_get_default().get_language("cpp"))
        self._b.set_highlight_syntax(True)

        #self._b.connect('mark-set', move_cursor_cb, view)
        #self._b.connect('changed', update_cursor_position, view)

        self._v = gtksourceview.View(self._b)
        self._v.set_show_line_numbers(True)
        #self._v.set_show_line_marks(action.get_active())
        #self._v.set_show_right_margin(action.get_active())
        #self._v.set_auto_indent(action.get_active())
        #self._v.set_insert_spaces_instead_of_tabs(action.get_active())
        #self._v.set_tab_width(action.get_current_value())
        #self._v.connect('button-press-event', button_press_cb)

        sw = gtk.ScrolledWindow()
        sw.set_shadow_type(gtk.SHADOW_IN)
        self.pack_start(sw, True, True, 0)
        sw.add(self._v)

        # setup view
        font_desc = pango.FontDescription('monospace')
        if font_desc:
            self._v.modify_font(font_desc)
Exemplo n.º 3
0
    def __init__(self, filename, mimetype=None):
        self.filename = filename
        if SV2:
            self.buffer = gtksourceview2.Buffer()
            self.buffer.set_highlight_syntax(True)
        else:
            self.buffer = gtksourceview.SourceBuffer()
            self.buffer.set_highlight(True)
        self.buffer.set_max_undo_levels(1000)
        if SV2:
            self.view = gtksourceview2.View(self.buffer)
        else:
            self.view = gtksourceview.SourceView(self.buffer)
        self.view.set_auto_indent(True)
        self.view.modify_font(pango.FontDescription('Ubuntu Mono 12'))

        self.view.connect('key_press_event', self.on_key_press_event)

        self.touch()
        language = self.get_language(mimetype)
        if language:
            self.buffer.set_language(language)

        self.file_signature = None
        self.file_text = ''
        self.sync_from_disk()
Exemplo n.º 4
0
    def add_text_view(self):
        scrolledWindow = self.add_scrolled_window()
        self.set_child_packing(self.frame, True, True, 0, gtk.PACK_START)

        try:
            import gtksourceview2
            buf = gtksourceview2.Buffer()
            lang_manager = gtksourceview2.LanguageManager()
            buf.set_highlight_matching_brackets(True)
            if self.node is not None and self.node.is_python_code():
                python = lang_manager.get_language("python")
                buf.set_language(python)
                buf.set_highlight_syntax(True)
            textview = gtksourceview2.View(buffer=buf)
            textview.set_auto_indent(True)
            textview.set_insert_spaces_instead_of_tabs(True)
            textview.set_tab_width(2)
            if self.node is not None and self.node.is_python_code():
                textview.set_show_line_numbers(True)
                font_desc = pango.FontDescription("monospace")
                if font_desc:
                    textview.modify_font(font_desc)
        except ImportError:
            textview = gtk.TextView()

        textview.set_pixels_above_lines(2)
        textview.set_pixels_below_lines(2)
        textview.set_wrap_mode(gtk.WRAP_WORD)
        textview.connect("focus-in-event", self.entry_focus_in)

        scrolledWindow.add(textview)
        textview.show()
        return textview
Exemplo n.º 5
0
 def _init_source_view(self):
     # Creating the buffer.
     self._source_buffer = gtksourceview.Buffer()
     self._source_buffer.connect('changed', self.on_source_buffer_changed)
     self._source_buffer.connect('modified-changed',
                                 self.on_source_buffer_modified_changed)
     self._source_buffer.set_highlight_matching_brackets(True)
     manager = gtksourceview.LanguageManager()
     manager.set_search_path(
         [os.path.join(self._data_dir, 'gtksourceview')])
     language = manager.get_language('tiger')
     self._source_buffer.set_language(language)
     self._source_buffer.set_highlight_syntax(True)
     self._update_undo_redo()
     # Creating the viewer.
     self._source_view = gtksourceview.View(self._source_buffer)
     self._source_view.modify_font(pango.FontDescription('monospace'))
     self._source_view.set_show_line_numbers(True)
     self._source_view.set_show_line_marks(False)
     self._source_view.set_show_right_margin(False)
     self._source_view.set_insert_spaces_instead_of_tabs(False)
     self._source_view.set_highlight_current_line(True)
     self._source_view.set_auto_indent(True)
     # Add the source view to the window.
     scrolledwindow = self._builder.get_object('source_scrolledwindow')
     scrolledwindow.add(self._source_view)
Exemplo n.º 6
0
Arquivo: cli.py Projeto: renyxa/re-lab
def create_tbtv(lang="python"):
	# rely on gtksourceview2
	if usegtksv2:
		tb = gtksourceview2.Buffer()
		tv = gtksourceview2.View(tb)
		if lang == "python":
			lm = gtksourceview2.LanguageManager()
			lp = lm.get_language(lang)
			tb.set_language(lp)
		tb.set_highlight_syntax(True)
		tb.set_max_undo_levels(16)
		tb.set_highlight_matching_brackets(False)
		tv.set_show_line_marks(True)
		tv.set_show_line_numbers(True)
		tv.set_draw_spaces(True)
		tv.set_tab_width(4)
		tv.set_smart_home_end(True)
		tv.set_auto_indent(True)
		tv.set_property("draw-spaces",51) # space, tab, leading, text
	else:
		tv = gtk.TextView()
		tb = tv.get_buffer()
	fontdesc = pango.FontDescription("Monospace")
	tv.modify_font(fontdesc)
	return tb,tv
Exemplo n.º 7
0
    def setup_bugview(self):
        self.bugbuf = gtksourceview2.Buffer()
        lm = gtksourceview2.LanguageManager()
        lang = lm.guess_language(None, "text/x-lua")
        self.bugbuf.set_highlight_syntax(True)
        self.bugbuf.set_language(lang)

        def set_bt_markers(blubb):
            begin, end = self.bugbuf.get_bounds()
            self.bugbuf.remove_source_marks(begin, end)

            for creature, line in self.conn.bt:
                if line:
                    self.bugbuf.create_source_mark(None, "bt", line)

        self.conn.connect("new_bt", set_bt_markers)

        self.bugview = gtksourceview2.View(self.bugbuf)
        self.bugview.props.show_line_numbers = True
        self.bugview.props.show_line_marks = True
        self.bugview.props.auto_indent = True
        #self.bugview.props.insert_spaces_instead_of_tabs = True

        icon = gtk.gdk.pixbuf_new_from_file(PREFIX + 'marker.png')
        self.bugview.set_mark_category_pixbuf("bt", icon)
Exemplo n.º 8
0
 def _create_view(self, buffer):
     view = gtksourceview.View(buffer)
     view.set_auto_indent(True)
     font_desc = pango.FontDescription("monospace 10")
     if font_desc:
         view.modify_font(font_desc)
     return view
Exemplo n.º 9
0
    def __init__(self, ventana, notebook, firmware_ruta, nombre_arch,
                 etiqueta):
        # create buffer
        lm = gtksourceview2.LanguageManager()
        self.buffer = gtksourceview2.Buffer()
        self.buffer.set_data('languages-manager', lm)
        self.firmware_ruta = firmware_ruta
        self.nombre_arch = nombre_arch
        view = gtksourceview2.View(self.buffer)
        view.set_show_line_numbers(True)
        self.ventana = ventana
        vbox = gtk.VBox(0, True)

        notebook.append_page(vbox, gtk.Label(etiqueta))
        tool1 = gtk.Toolbar()
        tool1.show()

        iconw = gtk.Image()
        iconw.set_from_stock(gtk.STOCK_EXECUTE, 15)
        vbox.pack_start(tool1, fill=False, expand=False)
        sw = gtk.ScrolledWindow()
        sw.set_shadow_type(gtk.SHADOW_IN)
        sw.add(view)
        vbox.pack_start(sw, fill=True, expand=True)

        vbox.show_all()
        # main loop
        self.dir_conf = os.path.expanduser(
            '~') + "/" + self.firmware_ruta + "/firmware/"
        self.cadena_user_c = self.dir_conf + self.nombre_arch
        self.buf = self.open_file(self.buffer, self.cadena_user_c)
        iconw = gtk.Image()
        iconw.set_from_stock(gtk.STOCK_NEW, 15)
        tool_button = tool1.append_item("recargar", "", "Private", iconw,
                                        self.recargar)
Exemplo n.º 10
0
def make_source_view(text_buffer):
    text_view = sourceview.View(text_buffer)
    text_view.set_editable(True)
    text_view.set_wrap_mode(gtk.WRAP_WORD)
    text_view.show()

    return text_view
Exemplo n.º 11
0
    def __init__(self, filename):
        self.filename = filename
        if SV2:
            self.buffer = gtksourceview2.Buffer()
            self.buffer.set_highlight_syntax(True)
        else:
            self.buffer = gtksourceview.SourceBuffer()
            self.buffer.set_highlight(True)
        self.buffer.set_max_undo_levels(1000)
        if SV2:
            self.view = gtksourceview2.View(self.buffer)
        else:
            self.view = gtksourceview.SourceView(self.buffer)
        self.view.set_auto_indent(True)
        self.view.modify_font(pango.FontDescription('monospace'))

        mimetype = mimetypes.guess_type(filename)[0]
        if mimetype:
            self.buffer.set_language(get_language_from_mime_type(mimetype))

        if not os.path.exists(filename):
            open(filename, 'wb').close()

        self.file_signature = None
        self.file_text = ''
        self.sync_from_disk()
Exemplo n.º 12
0
    def __init__(self, core, textviews):
        super(ReprTextView, self).__init__(False, 1)

        #################################################################
        # Right Textview
        #################################################################

        self.uicore = core
        self.textviews = textviews

        # Use GtkSourceView to add eye candy :P
        # create buffer
        lm = gtksourceview2.LanguageManager()
        # Add ui dir to language paths
        paths = lm.get_search_path()
        paths.append(os.path.dirname(__file__) + os.sep + 'data' + os.sep)
        lm.set_search_path(paths)
        self.buffer = gtksourceview2.Buffer()
        self.buffer.create_tag("green-background",
                               background="green",
                               foreground="black")
        self.buffer.set_data('languages-manager', lm)
        self.view = gtksourceview2.View(self.buffer)

        # FIXME options must be user selectable (statusbar)
        self.view.set_editable(False)
        self.view.set_highlight_current_line(True)
        # posible values: gtk.WRAP_NONE, gtk.WRAP_CHAR, gtk.WRAP_WORD...
        self.view.set_wrap_mode(gtk.WRAP_WORD)

        # setup view
        font_desc = pango.FontDescription('monospace 9')
        if font_desc:
            self.view.modify_font(font_desc)

        self.buffer.set_highlight_syntax(False)
        manager = self.buffer.get_data('languages-manager')
        language = manager.get_language('asm')
        self.buffer.set_language(language)

        self.mgr = gtksourceview2.style_scheme_manager_get_default()

        # Scrolled Window
        self.repr_scrolled_window = gtk.ScrolledWindow()
        self.repr_scrolled_window.set_shadow_type(gtk.SHADOW_ETCHED_IN)
        self.repr_scrolled_window.set_policy(gtk.POLICY_AUTOMATIC,
                                             gtk.POLICY_AUTOMATIC)
        self.repr_scrolled_window.show()
        # Add Textview to Scrolled Window
        self.repr_scrolled_window.add(self.view)
        self.pack_start(self.repr_scrolled_window, expand=True, fill=True)

        # Create the search widget
        Searchable.__init__(self, self.view, small=True)

        # Used for code navidation on _search function
        self.match_start = None
        self.match_end = None
        self.search_string = ''
Exemplo n.º 13
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()
Exemplo n.º 14
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()
Exemplo n.º 15
0
    def __init__(self,ventana):
        # create buffer
        lm = gtksourceview2.LanguageManager()
        buffer = gtksourceview2.Buffer()
        buffer.set_data('languages-manager', lm)
        view = gtksourceview2.View(buffer)
        self.ventana=ventana
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_border_width(0)
        self.window.set_title('codigo fuente generado por el sistema')
        #windows.append(window) # this list contains all view windows
        self.window.set_default_size(500, 500)
        self.window.show()
        
        vbox = gtk.VBox(0, True)
        self.window.add(vbox)
        tool1=gtk.Toolbar()
        tool1.show()

        iconw = gtk.Image()
        iconw.set_from_stock(gtk.STOCK_EXECUTE,15)
        tool_button = tool1.append_item(
                        _("Compile"),
                        "compila la version modificada en el editor.",
                        "Private",
                        iconw,
                        self.compilar)
                        
        iconw = gtk.Image()
        iconw.set_from_stock(gtk.STOCK_NEW,15)
        tool_button = tool1.append_item(
                        _("Exit"),
                        self.ventana.tooltip["salir"],
                        "Private",
                        iconw,
                        self.close)

        vbox.pack_start(tool1, fill=False, expand=False)
        sw = gtk.ScrolledWindow()
        sw.set_shadow_type(gtk.SHADOW_IN)
        sw.add(view)
        vbox.pack_start(sw, fill=True, expand=True)
#~ 
        #~ toolbar = gtk.HBox(spacing=0)
        #~ vbox.pack_start(toolbar,False,False)
        #~ button = gtk.Button('salir')
        #~ button.connect('clicked',self.close)
        #~ toolbar.pack_start(button,False,False,0)


        vbox.show_all()
        # main loop
        dir_conf=os.path.expanduser('~') + "/.icaro/np05/"
        cadena_user_c=dir_conf+"source/user.c"

        self.buf=self.open_file(buffer,cadena_user_c)
Exemplo n.º 16
0
def glade_custom_handler(glade, function_name, widget_name,
			str1, str2, int1, int2):
    if function_name == "create_sourceview":
        widget = gtksourceview2.View()
    else:
        debug("Unknown custom widget : %s/%s", function_name, widget_name )
        widget = None
    if widget:
        widget.show()
    return widget
Exemplo n.º 17
0
    def __init_gui(self, glade):
        scrolledwindow6 = glade.get_widget("scrolledwindow6")

        self.__gtksourceview = gtksourceview2.View()
        self.__sourcebuffer = gtksourceview2.Buffer()

        view = self.__gtksourceview
        buff = self.__sourcebuffer

        view.set_buffer(buff)
        scrolledwindow6.add(view)

        view.set_auto_indent(True)
        view.set_highlight_current_line(True)
        view.set_show_line_numbers(True)
        view.set_show_line_marks(True)
        view.set_show_right_margin(True)
        view.set_insert_spaces_instead_of_tabs(True)
        view.set_tab_width(4)
        view.set_indent_width(-1)
        view.set_right_margin_position(80)
        view.set_smart_home_end(True)
        view.set_indent_on_tab(True)
        view.set_left_margin(2)
        view.set_right_margin(2)
        view.modify_font(pango.FontDescription("mono 10"))
        view.set_wrap_mode(gtk.WRAP_NONE)
        # playhead text attributes
        tag = buff.create_tag("playhead")
        tag.props.background = "black"
        tag.props.background_set = True
        tag.props.foreground = "white"
        tag.props.foreground_set = True
        # error text attributes
        tag = buff.create_tag("error")
        tag.props.background = "red"
        tag.props.background_set = True
        # playhead marker
        self.LINE_MARKER = 'lineMarker'
        pixbuf = gtk.gdk.pixbuf_new_from_file(Glob.LINE_MARKER)
        view.set_mark_category_pixbuf(self.LINE_MARKER, pixbuf)
        # error marker
        self.ERROR_MARKER = 'errorMarker'
        pixbuf = gtk.gdk.pixbuf_new_from_file(Glob.ERROR_MARKER)
        view.set_mark_category_pixbuf(self.ERROR_MARKER, pixbuf)
        # buff parameters
        buff.set_highlight_syntax(True)
        buff.set_highlight_matching_brackets(True)
        buff.set_max_undo_levels(50)
        # when buff modified save needed
        buff.connect("modified-changed", self.__modified_changed)
        # and show it
        self.__gtksourceview.show()
Exemplo n.º 18
0
    def __init__(self, obj, buffer):
        CustomObjectWidget.__init__(self)
        self.set_has_cursor(True)
        self.buffer = buffer
        self.obj = obj

        self.view = gtksourceview2.View(self.buffer)
        self.view.modify_font(pango.FontDescription('monospace'))
        self.view.set_auto_indent(True)
        self.view.set_smart_home_end(True)
        self.view.set_highlight_current_line(True)
        self.view.set_right_margin_position(80)
        self.view.set_show_right_margin(True)
        self.view.set_tab_width(4)

        # simple toolbar
        #~ bar = gtk.HBox() # FIXME: use gtk.Toolbar stuff
        #~ lang_selector = gtk.combo_box_new_text()
        #~ lang_selector.append_text('(None)')
        #~ for l in lang_names: lang_selector.append_text(l)
        #~ try:
        #~ lang_selector.set_active(lang_ids.index(self._attrib['lang'])+1)
        #~ self.set_language(self._attrib['lang'] or None, False)
        #~ except (ValueError, KeyError):
        #~ lang_selector.set_active(0)
        #~ self.set_language(None, False)
        #~ lang_selector.connect('changed', self.on_lang_changed)
        #~ bar.pack_start(lang_selector, False, False)

        #~ line_numbers = gtk.ToggleButton('Line numbers')
        #~ try:
        #~ line_numbers.set_active(self._attrib['linenumbers']=='true')
        #~ self.show_line_numbers(self._attrib['linenumbers'], False)
        #~ except (ValueError, KeyError):
        #~ line_numbers.set_active(True)
        #~ self.show_line_numbers(True, False)
        #~ line_numbers.connect('toggled', self.on_line_numbers_toggled)
        #~ bar.pack_start(line_numbers, False, False)

        # TODO: other toolbar options
        # TODO: autohide toolbar if textbuffer is not active

        # Pack everything
        #~ self.vbox.pack_start(bar, False, False)
        win = ScrolledWindow(self.view, gtk.POLICY_AUTOMATIC, gtk.POLICY_NEVER,
                             gtk.SHADOW_NONE)
        # only horizontal scroll
        self.vbox.pack_start(win)

        # Hook up signals
        self.view.connect('populate-popup', self.on_populate_popup)
        self.view.connect('move-cursor', self.on_move_cursor)
Exemplo n.º 19
0
    def __init__(self, handle):
        '''We want to set up the buffer et al. early on
        sure there's early_setup, but that's not early enough
        '''

        self.buffer = gtksourceview.Buffer()
        self.refresh_buffer = False

        self.text_view = gtksourceview.View(self.buffer)
        self.scrollwindow = gtk.ScrolledWindow()

        self.scrollwindow.add(self.text_view)

        sugar_tools.GroupActivity.__init__(self, handle)
Exemplo n.º 20
0
    def __init__(self, token, uuid, **args):
        gtk.Window.__init__(self, **args)

        self.token = token
        self.uuid = uuid
        self.timer = -1

        self.set_title('Kobita')
        self.connect('show', self.on_show)
        self.set_default_size(800, 600)
        self.set_border_width(5)

        hbox = gtk.HBox(True, 5)

        vbox = gtk.VBox(False, 5)
        sw = gtk.ScrolledWindow()
        sw.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
        sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        self.buffer = gtksourceview2.Buffer()
        self.buffer.set_max_undo_levels(1000)
        self.buffer.connect('changed', self.on_changed)
        self.edit = gtksourceview2.View(self.buffer)
        sw.add(self.edit)
        vbox.pack_start(sw, True, True, 0)
        hhbox = gtk.HBox(False, 5)
        self.tags = []
        for n in range(5):
            tag = gtk.Entry()
            tag.set_usize(20, -1)
            hhbox.add(tag)
            self.tags.append(tag)
        vbox.pack_start(hhbox, False, False, 0)
        hhbox = gtk.HBox(True, 5)
        self.check = gtk.CheckButton('Private')
        hhbox.add(self.check)
        button = gtk.Button("Publish")
        button.connect('clicked', self.on_publish)
        hhbox.add(button)
        vbox.pack_end(hhbox, False, False, 0)
        hbox.pack_start(vbox, False, True, 0)

        sw = gtk.ScrolledWindow()
        sw.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
        sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        self.view = webkit.WebView()
        self.view.set_settings(settings)
        sw.add(self.view)
        hbox.pack_start(sw, False, True, 0)

        self.add(hbox)
Exemplo n.º 21
0
def new_apache_sourceview():
    bufferS = gtksourceview2.Buffer()
    manager = gtksourceview2.LanguageManager()

    #language = manager.get_language_from_mime_type("text/xml")
    manager.set_search_path([Configuration.GLADEPATH] +
                            manager.get_search_path())
    language = manager.get_language('apache')
    bufferS.set_language(language)
    bufferS.set_highlight_syntax(True)
    sourceview = gtksourceview2.View(bufferS)
    sourceview.set_show_line_numbers(True)
    #TODO sniff gnome default monospace font
    sourceview.modify_font(pango.FontDescription("monospace 10"))
    return sourceview
Exemplo n.º 22
0
    def setup_editor(self):
        self.lang = "js"
        self.content_pane = self.wTree.get_widget("text_scroll")
        self.buffer = JsBuffer()
        self.editor = gtksourceview.View(self.buffer)
        self.editor.set_show_line_numbers(True)

        self.content_pane.add(self.editor)
        self.editor.show()
        accel_group = gtk.AccelGroup()
        self.window.add_accel_group(accel_group)

        self.editor.add_accelerator("paste-clipboard", accel_group, ord('v'),
                                    gtk.gdk.CONTROL_MASK, 0)
        self.editor.add_accelerator("copy-clipboard", accel_group, ord('c'),
                                    gtk.gdk.CONTROL_MASK, 0)
        self.editor.add_accelerator("cut-clipboard", accel_group, ord('x'),
                                    gtk.gdk.CONTROL_MASK, 0)
Exemplo n.º 23
0
    def __init__(self):
        gtk.ScrolledWindow.__init__(self)

        self.props.hscrollbar_policy = gtk.POLICY_AUTOMATIC
        self.props.vscrollbar_policy = gtk.POLICY_AUTOMATIC

        self._buffer = gtksourceview2.Buffer()
        self._buffer.set_highlight_syntax(True)

        self._source_view = gtksourceview2.View(self._buffer)
        self._source_view.set_editable(False)
        self._source_view.set_cursor_visible(True)
        self._source_view.set_show_line_numbers(True)
        self._source_view.set_show_right_margin(True)
        self._source_view.set_right_margin_position(80)
        #self._source_view.set_highlight_current_line(True) #FIXME: Ugly color
        self._source_view.modify_font(_SOURCE_FONT)
        self.add(self._source_view)
        self._source_view.show()

        self._file_path = None
    def setup_source_view(self):
        self._buffer = gtksourceview2.Buffer()
        lang_manager = gtksourceview2.language_manager_get_default()
        if 'python' in lang_manager.get_language_ids():
            lang = lang_manager.get_language('python')
            self._buffer.set_language(lang)

        self._source_view = gtksourceview2.View(self._buffer)
        self._source_view.set_editable(True)
        self._source_view.set_cursor_visible(True)
        self._source_view.set_show_line_numbers(True)
        self._source_view.set_wrap_mode(gtk.WRAP_CHAR)
        self._source_view.modify_font(pango.FontDescription("Monospace 10"))

        self._source_win = gtk.ScrolledWindow()
        self._source_win.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        self._source_win.add(self._source_view)

        self._find_tag = self._buffer.create_tag('find')
        self._find_tag.props.background = 'gray'
        self._find_tag.props.foreground = 'yellow'
Exemplo n.º 25
0
    def __init__(self, application):
        GObject.GObject.__init__(self)

        self.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        adjustment = self.get_vadjustment()
        adjustment.need_scroll = True
        adjustment.connect("changed", self.update_adjustment)
        adjustment.connect("value-changed", self.update_value)
        self.buffer = gtksourceview.Buffer()
        entry = gtksourceview.View(self.buffer)
        entry.set_size_request(-1, 100)
        #self.disconnect_handler = buffer.connect("changed", self.changed)
        self.buffer.connect("insert-text", self.update_scroll, entry)
        #self.add_with_viewport(entry)
        self.add(entry)
        entry.set_wrap_mode(Gtk.WrapMode.WORD_CHAR)
        entry.set_wrap_mode(Gtk.WrapMode.CHAR)

        font = Pango.FontDescription('monospace')
        entry.modify_font(font)
        entry.set_show_line_numbers(True)
        entry.set_show_line_marks(True)
        entry.set_tab_width(8)
        entry.set_auto_indent(True)
        entry.set_insert_spaces_instead_of_tabs(False)
        entry.set_show_right_margin(True)
        entry.set_right_margin(30)
        #entry.set_marker_pixbuf(marker_type, pixbuf)
        entry.set_smart_home_end(True)
        entry.connect("focus-in-event", self.focus_in)
        entry.connect("focus-out-event", self.focus_out)

        self.buffer.set_highlight_syntax(True)
        self.buffer.set_max_undo_levels(10)
        self.buffer.set_highlight_matching_brackets(True)
        self.set_language("python")  # default

        #from application import Application
        #self.application = Application()
        self.application = application
Exemplo n.º 26
0
    def __init__(self, w3af):
        gtk.VBox.__init__(self)
        self.is_request = True
        self.w3af = w3af
        # Create the textview where the text is going to be shown
        self.textView = gtksourceview.View(gtksourceview.Buffer())
        # User controlled options
        self.textView.set_highlight_current_line(False)
        self.textView.set_show_line_numbers(False)
        # Other options
        # Font
        self.set_wrap(True)
        self.textView.set_border_width(5)
        fontDesc = pango.FontDescription('monospace')
        if fontDesc:
            self.textView.modify_font(fontDesc)
        
        # Syntax highlight
        self._lang_man = gtksourceview.LanguageManager()
        spath = self._lang_man.get_search_path()
        spath.append('core' + os.path.sep + 'ui' + os.path.sep + 'gui')
        self._lang_man.set_search_path(spath)
        self.set_language('http')
        #b.set_highlight_syntax(True)

        self.reset_bg_color()
        for sev in SEVERITY_TO_COLOR:
            self.textView.get_buffer(
            ).create_tag(sev, background=SEVERITY_TO_COLOR[sev])
        self.textView.show()
        # Scroll where the textView goes
        sw1 = gtk.ScrolledWindow()
        sw1.set_shadow_type(gtk.SHADOW_ETCHED_IN)
        sw1.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        sw1.add(self.textView)
        sw1.show()
        self.pack_start(sw1, expand=True, fill=True)
        # Create the search widget
        Searchable.__init__(self, self.textView, small=True)
Exemplo n.º 27
0
    def __create_text(self, is_source=False):
        scrolled_window = gtk.ScrolledWindow()
        scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        scrolled_window.set_shadow_type(gtk.SHADOW_IN)

        buffer = gtksourceview2.Buffer(None)
        text_view = gtksourceview2.View(buffer)
        text_view.set_wrap_mode(gtk.WRAP_WORD)
        scrolled_window.add(text_view)
        if not is_source:
            # context = text_view.get_pango_context()
            # fonts = context.list_families()
            # for font in fonts:
            #     print font.get_name()
            font = pango.FontDescription('Indie Flower 16')
            text_view.modify_font(font)
            text_view.connect("key-press-event", self.key_press_event)
            text_view.connect("event-after", self.event_after)
            text_view.connect("motion-notify-event", self.motion_notify_event)
            text_view.connect("visibility-notify-event",
                              self.visibility_notify_event)
        return scrolled_window, buffer
Exemplo n.º 28
0
 def _init_code_view(self):
     # Creating the buffer.
     code_buffer = gtksourceview.Buffer()
     code_buffer.set_highlight_matching_brackets(True)
     manager = gtksourceview.LanguageManager()
     manager.set_search_path([os.path.join(self._data_dir, 'gtksourceview')])
     language = manager.get_language('c')
     code_buffer.set_language(language)
     code_buffer.set_highlight_syntax(True)
     # Creating the viewer.
     code_view = gtksourceview.View(code_buffer)
     code_view.modify_font(pango.FontDescription('monospace'))
     code_view.set_show_line_numbers(True)
     code_view.set_show_line_marks(False)
     code_view.set_show_right_margin(False)
     code_view.set_editable(False)
     code_view.set_highlight_current_line(True)
     # Add the source view to the window.
     scrolledwindow = self._builder.get_object('scrolledwindow')
     scrolledwindow.add(code_view)
     # Setting the text of the buffer.
     with open(self._c_filename) as fd:
         code_buffer.set_text(fd.read())
Exemplo n.º 29
0
 def codebox_insert(self,
                    iter_insert,
                    codebox_dict,
                    codebox_justification=None,
                    text_buffer=None,
                    cursor_pos=0):
     """Insert Code Box"""
     if not text_buffer: text_buffer = self.dad.curr_buffer
     anchor = text_buffer.create_child_anchor(iter_insert)
     self.curr_codebox_anchor = anchor
     anchor.frame_width = codebox_dict['frame_width']
     anchor.frame_height = codebox_dict['frame_height']
     anchor.width_in_pixels = codebox_dict['width_in_pixels']
     anchor.syntax_highlighting = codebox_dict['syntax_highlighting']
     anchor.highlight_brackets = codebox_dict['highlight_brackets']
     anchor.show_line_numbers = codebox_dict['show_line_numbers']
     anchor.sourcebuffer = gtksourceview2.Buffer()
     anchor.sourcebuffer.set_style_scheme(
         self.dad.sourcestyleschememanager.get_scheme(
             self.dad.style_scheme))
     if anchor.syntax_highlighting != cons.PLAIN_TEXT_ID:
         self.dad.set_sourcebuffer_syntax_highlight(
             anchor.sourcebuffer, anchor.syntax_highlighting)
     anchor.sourcebuffer.set_highlight_matching_brackets(
         anchor.highlight_brackets)
     anchor.sourcebuffer.connect('insert-text', self.dad.on_text_insertion)
     anchor.sourcebuffer.connect('delete-range', self.dad.on_text_removal)
     anchor.sourcebuffer.connect('modified-changed',
                                 self.dad.on_modified_changed)
     if codebox_dict['fill_text']:
         anchor.sourcebuffer.set_text(codebox_dict['fill_text'])
         anchor.sourcebuffer.place_cursor(
             anchor.sourcebuffer.get_iter_at_offset(cursor_pos))
         anchor.sourcebuffer.set_modified(False)
     anchor.sourceview = gtksourceview2.View(anchor.sourcebuffer)
     anchor.sourceview.set_smart_home_end(
         gtksourceview2.SMART_HOME_END_BEFORE)
     if self.dad.highl_curr_line:
         anchor.sourceview.set_highlight_current_line(True)
     if self.dad.show_white_spaces:
         anchor.sourceview.set_draw_spaces(DRAW_SPACES_FLAGS)
     if anchor.syntax_highlighting == cons.PLAIN_TEXT_ID:
         anchor.sourceview.modify_font(
             pango.FontDescription(self.dad.text_font))
     else:
         anchor.sourceview.modify_font(
             pango.FontDescription(self.dad.code_font))
     anchor.sourceview.set_show_line_numbers(anchor.show_line_numbers)
     anchor.sourceview.set_insert_spaces_instead_of_tabs(
         self.dad.spaces_instead_tabs)
     anchor.sourceview.set_tab_width(self.dad.tabs_width)
     anchor.sourceview.set_auto_indent(self.dad.auto_indent)
     anchor.sourceview.connect('populate-popup',
                               self.on_sourceview_populate_popup_codebox,
                               anchor)
     anchor.sourceview.connect('key_press_event',
                               self.on_key_press_sourceview_codebox, anchor)
     anchor.sourceview.connect('button-press-event',
                               self.on_mouse_button_clicked_codebox, anchor)
     anchor.sourceview.connect("event-after",
                               self.on_sourceview_event_after_codebox,
                               anchor)
     anchor.sourceview.connect(
         "motion-notify-event",
         self.on_sourceview_motion_notify_event_codebox)
     anchor.sourceview.connect("copy-clipboard",
                               self.dad.clipboard_handler.copy, True)
     anchor.sourceview.connect("cut-clipboard",
                               self.dad.clipboard_handler.cut, True)
     if self.dad.line_wrapping:
         anchor.sourceview.set_wrap_mode(gtk.WRAP_WORD)
     else:
         anchor.sourceview.set_wrap_mode(gtk.WRAP_NONE)
     anchor.scrolledwindow = gtk.ScrolledWindow()
     anchor.scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC,
                                      gtk.POLICY_AUTOMATIC)
     anchor.scrolledwindow.add(anchor.sourceview)
     anchor.scrolledwindow.get_vscrollbar().connect(
         'event-after', self.on_vscrollbar_event_after, anchor)
     anchor.scrolledwindow.get_hscrollbar().connect(
         'event-after', self.on_hscrollbar_event_after, anchor)
     anchor.frame = gtk.Frame()
     self.codebox_apply_width_height(anchor)
     anchor.frame.add(anchor.scrolledwindow)
     anchor.frame.set_shadow_type(gtk.SHADOW_NONE)
     anchor.eventbox = gtk.EventBox()
     anchor.eventbox.add(anchor.frame)
     self.dad.sourceview.add_child_at_anchor(anchor.eventbox, anchor)
     anchor.eventbox.show_all()
     self.dad.widget_set_colors(anchor.sourceview, self.dad.rt_def_fg,
                                self.dad.rt_def_bg, True)
     for win in [
             gtk.TEXT_WINDOW_LEFT, gtk.TEXT_WINDOW_RIGHT,
             gtk.TEXT_WINDOW_TOP, gtk.TEXT_WINDOW_BOTTOM
     ]:
         anchor.sourceview.set_border_window_size(win, 1)
     if codebox_justification:
         text_iter = text_buffer.get_iter_at_child_anchor(anchor)
         self.dad.state_machine.apply_object_justification(
             text_iter, codebox_justification, text_buffer)
     elif self.dad.user_active:
         # if I apply a justification, the state is already updated
         self.dad.state_machine.update_state(
             self.dad.treestore[self.dad.curr_tree_iter][3])
Exemplo n.º 30
0
    def __init__(self, config, gladefile, parent):
        self.is_initializing = True
        SimpleGladeApp.__init__(self, gladefile, 'config_dialog')

        self.config_dialog.set_transient_for(parent)

        self.config = config

        self.fontsel.props.font_name = config.get('font')
        self.cur_font = self.fontsel.props.font_name

        self.pprint_chk.props.active = config.get_bool('pprint')

        self.reshist_chk.props.active = config.get_bool('use-reshist')
        self.on_reshist_chk_toggled(self.reshist_chk)
        self.reshist_spin.props.value = config.get_int('reshist-size')

        self.autofold_chk.props.active = config.get_bool('autofold')
        self.on_autofold_chk_toggled(self.autofold_chk)
        self.autofold_spin.props.value = config.get_int('autofold-numlines')

        self.viewer_entry.props.text = eval(config.get('viewer'))

        self.autoparen_chk.props.active = config.get_bool('autoparen')
        self.expects_str_entry.props.text = config.get('expects-str-2')

        self.vertical_layout_rad.props.active = config.get_bool(
            'vertical-layout')
        self.horizontal_layout_rad.props.active = not config.get_bool(
            'vertical-layout')

        self.leave_code_chk.props.active = config.get_bool('leave-code')

        self.swap_panes_chk.props.active = config.get_bool('swap-panes')

        self.hide_defs_chk.props.active = config.get_bool('hide-defs')

        switch = config.get_bool('matplotlib-ia-switch')
        warn = config.get_bool('matplotlib-ia-warn')
        if switch:
            self.matplotlib_ia_switch_rad.props.active = True
        elif warn:
            self.matplotlib_ia_warn_rad.props.active = True
        else:
            self.matplotlib_ia_ignore_rad.props.active = True

        self.ask_on_quit_chk.props.active = config.get_bool('ask-on-quit')

        self.themes = dict((name, tags.get_theme(config, name))
                           for name in tags.get_theme_names(config))
        self.cur_theme = self.themes[config.get('current-theme')]

        self.fg_default_rad.set_group(self.fg_special_rad)
        self.bg_default_rad.set_group(self.bg_special_rad)

        TYPE_STRING = gobject.TYPE_STRING
        self.themes_list = gtk.ListStore(TYPE_STRING)
        self.themes_trv.set_model(self.themes_list)
        self.init_themes_list()

        # tag, desc, fg, bg
        self.elements_list = gtk.ListStore(TYPE_STRING, TYPE_STRING,
                                           TYPE_STRING, TYPE_STRING)
        self.elements_trv.set_model(self.elements_list)
        # cur_tag is the currently selected tag. It is set to None when props
        # are changed, to mark that they weren't changed as a result of a user
        # action.
        self.cur_tag = None
        self.init_elements_list()

        self.textbuffer = self.textview.get_buffer()
        self.init_textview()

        self.sourcebuffer = gtksourceview2.Buffer()
        self.sourceview = gtksourceview2.View(self.sourcebuffer)
        self.sourcebuffer.set_text(eval(config.get('init-code')))
        self.init_sourceview()

        self.font_changed()
        self.theme_changed()

        self.is_initializing = False