コード例 #1
0
ファイル: document.py プロジェクト: stephanlachnit/Setzer
    def init_buffer(self):
        self.source_buffer = GtkSource.Buffer()

        resources_path = ServiceLocator.get_resources_path()

        # set source language for syntax highlighting
        self.source_language_manager = GtkSource.LanguageManager()
        self.source_language_manager.set_search_path(
            (os.path.join(resources_path, 'gtksourceview',
                          'language-specs'), ))
        self.source_language = self.source_language_manager.get_language(
            self.get_gsv_language_name())
        self.source_buffer.set_language(self.source_language)

        self.source_style_scheme_manager = GtkSource.StyleSchemeManager()
        self.source_style_scheme_manager.set_search_path(
            (os.path.join(resources_path, 'gtksourceview', 'styles'), ))
        self.source_style_scheme_light = self.source_style_scheme_manager.get_scheme(
            'setzer')
        self.source_style_scheme_dark = self.source_style_scheme_manager.get_scheme(
            'setzer-dark')

        self.search_settings = GtkSource.SearchSettings()
        self.search_context = GtkSource.SearchContext.new(
            self.source_buffer, self.search_settings)
        self.search_context.set_highlight(True)

        self.source_buffer.connect('changed', self.on_buffer_changed)
        self.source_buffer.connect('insert-text', self.on_insert_text)

        self.add_change_code('buffer_ready')
コード例 #2
0
ファイル: mail.py プロジェクト: l1k3m/king-phisher
	def __init__(self, *args, **kwargs):
		self.label = Gtk.Label(label='Edit')
		"""The :py:class:`Gtk.Label` representing this tabs name."""
		super(MailSenderEditTab, self).__init__(*args, **kwargs)
		self.textview = self.gobjects['view_html_file']
		"""The :py:class:`Gtk.TextView` object of the editor."""
		self.textbuffer = GtkSource.Buffer()
		"""The :py:class:`Gtk.TextBuffer` used by the :py:attr:textview` attribute."""
		self.textview.set_buffer(self.textbuffer)
		self.textview.modify_font(Pango.FontDescription(self.config['text_font']))
		self.language_manager = GtkSource.LanguageManager()
		self.textbuffer.set_language(self.language_manager.get_language('html'))
		self.textbuffer.set_highlight_syntax(True)
		self.toolbutton_save_html_file = self.gobjects['toolbutton_save_html_file']
		self.textview.connect('populate-popup', self.signal_textview_populate_popup)
		self.textview.connect('key-press-event', self.signal_textview_key_pressed)

		scheme_manager = GtkSource.StyleSchemeManager()
		style_scheme_name = self.config['text_source_theme']
		style_scheme = scheme_manager.get_scheme(style_scheme_name)
		if style_scheme:
			self.textbuffer.set_style_scheme(style_scheme)
		else:
			self.logger.error("invalid GTK source theme: '{0}'".format(style_scheme_name))
		self.file_monitor = None

		source_completion = self.textview.get_completion()
		source_completion.set_property('accelerators', 0)
		source_completion.set_property('auto-complete-delay', 250)
		source_completion.set_property('show-icons', False)
		source_completion.add_provider(completion_providers.HTMLComletionProvider())
		source_completion.add_provider(completion_providers.JinjaEmailCompletionProvider())
コード例 #3
0
ファイル: editor.py プロジェクト: DLR-RM/RAFCON
    def new_buffer(self):
        style_scheme_manager = GtkSource.StyleSchemeManager()
        b = GtkSource.Buffer()
        b.set_language(self.language_manager.get_language(self.language))
        b.set_highlight_syntax(True)

        user_editor_style = global_gui_config.get_config_value(
            self.editor_style, "classic")
        if user_editor_style.startswith("rafcon"):
            user_editor_style = "rafcon"
            dark_theme = global_gui_config.get_config_value(
                'THEME_DARK_VARIANT', True)
            if dark_theme:
                user_editor_style = "rafcon-dark"
        if is_custom_design_enabled():
            user_editor_style = global_design_config.get_config_value(
                "SOURCE_VIEW_THEME")
        scheme = style_scheme_manager.get_scheme(user_editor_style)
        if scheme:
            self.style_scheme = scheme
        else:
            logger.debug(
                "The editor style '{}' is not supported. Using the default 'classic'"
                .format(user_editor_style))
            self.style_scheme = style_scheme_manager.get_scheme('classic')
        b.set_style_scheme(self.style_scheme)
        return b
コード例 #4
0
ファイル: hal_sourceview.py プロジェクト: tyxtc/linuxcnc
    def __init__(self, *a, **kw):
        GtkSource.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 = self.get_buffer()
        self.buf.set_max_undo_levels(20)
        self.buf.connect('changed', self.update_iter)
        self.lm = GtkSource.LanguageManager()
        self.sm = GtkSource.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.add_mark_category('error', '#ff7373')
        self.add_mark_category('motion', '#c5c5c5')
        self.add_mark_category('selected', '#96fef6')

        #TODO: how to set property background? but seems to work ok regardless.
        self.found_text_tag = Gtk.TextTag()

        self.connect('button-release-event', self.button_pressed)
コード例 #5
0
ファイル: gladerrad.py プロジェクト: Xoristzatziki/GladerRAD
 def load_and_show_themes(self):
     # Set theme.
     self.themeManager = GtkSource.StyleSchemeManager()
     # Map from theme id to StyleScheme.
     self.themes = {
         tid: self.themeManager.get_scheme(tid)
         for tid in self.themeManager.get_scheme_ids()
     }
     # Holds the currently selected theme info.
     self.theme = None
     celltheme = Gtk.CellRendererText()
     self.comboTheme.pack_start(celltheme, True)
     self.comboTheme.add_attribute(celltheme, 'text', 0)
     self.bufferOutput = GtkSource.Buffer()
     self.langManager = GtkSource.LanguageManager()
     self.bufferLang = self.langManager.get_language('python3')
     self.bufferOutput.set_language(self.bufferLang)
     self.bufferOutput.set_highlight_syntax(True)
     self.bufferOutput.set_highlight_matching_brackets(True)
     if not self.set_theme_config():
         # Use first preferred theme if available.
         themeprefs = ('oblivion', 'tomorrownighteighties', 'twilight',
                       'kate')
         for themeid in themeprefs:
             theme = self.themes.get(themeid, None)
             if theme:
                 self.set_theme(theme)
                 break
     self.build_theme_list()
コード例 #6
0
    def __init__(self, *args, **kwargs):
        self.label = Gtk.Label(label='Edit')
        """The :py:class:`Gtk.Label` representing this tabs name."""
        super(MailSenderEditTab, self).__init__(*args, **kwargs)
        self.textview = self.gobjects['view_html_file']
        """The :py:class:`Gtk.TextView` object of the editor."""
        self.textbuffer = GtkSource.Buffer()
        """The :py:class:`Gtk.TextBuffer` used by the :py:attr:textview` attribute."""
        self.textview.set_buffer(self.textbuffer)
        self.textview.modify_font(
            Pango.FontDescription(self.config['text_font']))
        self.language_manager = GtkSource.LanguageManager()
        self.textbuffer.set_language(
            self.language_manager.get_language('html'))
        self.textbuffer.set_highlight_syntax(True)
        self.toolbutton_save_html_file = self.gobjects[
            'toolbutton_save_html_file']
        self.textview.connect('populate-popup',
                              self.signal_textview_populate_popup)

        scheme_manager = GtkSource.StyleSchemeManager()
        style_scheme_name = self.config['text_source_theme']
        style_scheme = scheme_manager.get_scheme(style_scheme_name)
        if style_scheme:
            self.textbuffer.set_style_scheme(style_scheme)
        else:
            self.logger.error(
                "invalid GTK source theme: '{0}'".format(style_scheme_name))
        self.file_monitor = None
コード例 #7
0
    def __init__(self, pathname):
        Observable.__init__(self)

        self.pathname = pathname
        self.kernelname = None
        self.cells = []
        self.active_cell = None
        self.busy_cells = set()
        self.modified_cells = set()
        self.kernel_state = None
        self.result_factory = ServiceLocator.get_result_factory()

        self.save_state = 'saved'
        try: self.last_saved = datetime.datetime.fromtimestamp(os.path.getmtime(pathname))
        except FileNotFoundError:
            self.last_saved = datetime.datetime.fromtimestamp(0)
        
        # set source language for syntax highlighting
        self.source_language_manager = GtkSource.LanguageManager()
        self.source_language_manager.set_search_path((os.path.dirname(__file__) + '/../resources/gtksourceview/language-specs',))
        self.source_language_code = self.source_language_manager.get_language('sage')
        self.source_language_markdown = self.source_language_manager.get_language('markdown')
        
        self.source_style_scheme_manager = GtkSource.StyleSchemeManager()
        self.source_style_scheme_manager.set_search_path((os.path.dirname(__file__) + '/../resources/gtksourceview/styles',))
        self.source_style_scheme = self.source_style_scheme_manager.get_scheme('sage')

        self.cursor_position = {'cell': None, 'cell_position': None, 'cell_size': None, 'position': None}

        self.list_item = list_item_model.NotebookListItem(self)
        self.view = notebook_viewgtk.NotebookView()
        self.presenter = notebook_presenter.NotebookPresenter(self, self.view)
        self.controller = notebook_controller.NotebookController(self, self.view)
        self.evaluator = notebook_evaluator.NotebookEvaluator(self)
        self.headerbar_controls = headerbar_controls.HeaderbarControls(self)
コード例 #8
0
ファイル: editor.py プロジェクト: kleopatra999/runsqlrun
    def __init__(self, worksheet):
        super(Editor, self).__init__()
        self.buffer = GtkSource.Buffer()
        self.worksheet = worksheet
        self._parsed = None

        sm = GtkSource.StyleSchemeManager()
        sm.append_search_path(paths.theme_dir)
        self.buffer.set_style_scheme(sm.get_scheme('monokai-extended'))

        lang_manager = GtkSource.LanguageManager()
        self.buffer.set_language(lang_manager.get_language('sql'))
        self.set_buffer(self.buffer)
        # TODO: Move to configuration
        font_desc = Pango.FontDescription.from_string('Ubuntu Mono 16')
        self.modify_font(font_desc)

        self.set_show_line_numbers(True)
        self.set_highlight_current_line(True)
        # attrs = GtkSource.MarkAttributes()
        # attrs.set_icon_name('document-new-symbolic')
        # self.set_mark_attributes('statement', attrs, 10)
        # self.set_show_line_marks(True)

        renderer = StatementGutter(self.buffer)
        gutter = self.get_gutter(Gtk.TextWindowType.LEFT)
        gutter.insert(renderer, 1)

        # Completions
        self._setup_completions()

        self.buffer.connect('changed', self.on_buffer_changed)
コード例 #9
0
ファイル: source_buffer.py プロジェクト: pri-k/Setzer
    def __init__(self, document):
        GtkSource.Buffer.__init__(self)

        self.document = document
        self.view = GtkSource.View.new_with_buffer(self)
        self.view.set_monospace(True)
        self.view.set_smart_home_end(True)
        self.view.set_auto_indent(True)
        self.view.set_left_margin(6)
        self.settings = ServiceLocator.get_settings()

        resources_path = ServiceLocator.get_resources_path()

        self.mover_mark = self.create_mark('mover', self.get_start_iter(),
                                           True)

        # set source language for syntax highlighting
        self.source_language_manager = GtkSource.LanguageManager()
        self.source_language_manager.set_search_path(
            (os.path.join(resources_path, 'gtksourceview',
                          'language-specs'), ))
        self.source_language = self.source_language_manager.get_language(
            self.document.get_gsv_language_name())
        self.set_language(self.source_language)

        self.source_style_scheme_manager = GtkSource.StyleSchemeManager()
        self.source_style_scheme_manager.set_search_path(
            (os.path.join(resources_path, 'gtksourceview', 'styles'), ))
        self.source_style_scheme_light = self.source_style_scheme_manager.get_scheme(
            'setzer')
        self.source_style_scheme_dark = self.source_style_scheme_manager.get_scheme(
            'setzer-dark')

        self.search_settings = GtkSource.SearchSettings()
        self.search_context = GtkSource.SearchContext.new(
            self, self.search_settings)
        self.search_context.set_highlight(True)

        self.insert_position = 0

        self.synctex_tag_count = 0
        self.synctex_highlight_tags = dict()

        self.indentation_update = None
        self.indentation_tags = dict()
        self.tab_width = self.settings.get_value('preferences', 'tab_width')
        self.settings.register_observer(self)

        self.placeholder_tag = self.create_tag('placeholder')
        self.placeholder_tag.set_property('background', '#fce94f')
        self.placeholder_tag.set_property('foreground', '#000')

        self.view.connect('key-press-event', self.on_keypress)

        self.connect('mark-set', self.on_mark_set)
        self.connect('mark-deleted', self.on_mark_deleted)
        self.connect('insert-text', self.on_insert_text)
        self.connect('delete-range', self.on_delete_range)

        self.document.add_change_code('buffer_ready')
コード例 #10
0
ファイル: php_console.py プロジェクト: VxMxPx/php_console
    def make_source(self):
        scheme = GtkSource.StyleSchemeManager()
        scheme.set_search_path()

        language = GtkSource.LanguageManager()

        buffer = GtkSource.Buffer()
        buffer.set_language(language.get_language('php'))
        buffer.set_style_scheme(scheme.get_scheme('tango'))
        buffer.set_highlight_syntax(True)

        font = Pango.FontDescription()
        font.set_family(
            'Droid Sans Mono, DejaVu Sans Mono, Ubuntu Mono, Monospace')
        font.set_absolute_size(11 * Pango.SCALE)

        self.source = GtkSource.View.new_with_buffer(buffer)
        self.source.override_font(font)
        self.source.set_show_line_numbers(True)
        self.source.set_insert_spaces_instead_of_tabs(False)
        self.source.set_auto_indent(True)
        self.source.set_tab_width(4)
        self.source.set_indent_width(4)
        self.source.set_smart_home_end(True)
        self.source.set_highlight_current_line(True)
コード例 #11
0
    def _setup_style_scheme(self):
        sm = GtkSource.StyleSchemeManager()

        def set_theme(*args):
            self.buffer.set_style_scheme(
                sm.get_scheme(self._config.ui_style_scheme))

        set_theme()
        self._config.connect('notify::ui-style-scheme', set_theme)
コード例 #12
0
 def __init__(self, **kwargs):
     super().__init__(**kwargs)
     buffer = self.get_buffer()
     lm = GtkSource.LanguageManager()
     lang = lm.get_language('yaml')
     buffer.set_language(lang)
     manager = GtkSource.StyleSchemeManager().get_default()
     scheme = manager.get_scheme("oblivion")
     buffer.set_style_scheme(scheme)
コード例 #13
0
ファイル: service_locator.py プロジェクト: apandada1/Setzer
 def get_source_style_scheme_manager():
     if ServiceLocator.source_style_scheme_manager == None:
         ServiceLocator.source_style_scheme_manager = GtkSource.StyleSchemeManager()
         path1 = os.path.join(ServiceLocator.get_resources_path(), 'gtksourceview', 'styles')
         if not os.path.isdir(os.path.join(ServiceLocator.get_config_folder(), 'syntax_schemes')):
             os.mkdir(os.path.join(ServiceLocator.get_config_folder(), 'syntax_schemes'))
         path2 = os.path.join(ServiceLocator.get_config_folder(), 'syntax_schemes')
         ServiceLocator.source_style_scheme_manager.set_search_path((path1, path2))
     return ServiceLocator.source_style_scheme_manager
コード例 #14
0
ファイル: preferences.py プロジェクト: wroldwiedbwe/runsqlrun
    def _setup_color_schemes(self):
        chooser = GtkSource.StyleSchemeChooserWidget()
        sw = self.builder.get_object('sw_color_schemes')
        sw.add(chooser)

        sm = GtkSource.StyleSchemeManager()
        chooser.set_style_scheme(sm.get_scheme(self.config.ui_style_scheme))
        chooser.connect(
            'notify::style-scheme',
            lambda *a: self._sp('ui-style-scheme',
                                chooser.get_style_scheme().get_id()))
        self._chooser_color_scheme = chooser
コード例 #15
0
    def __init__(self, fullPath, activity):
        """
        Do any initialization here.
        """
        Gtk.ScrolledWindow.__init__(self)

        self.breakpoints = {}
        self.embeds = {}

        self.fullPath = fullPath
        self.activity = activity
        #self.interactive_close = False

        self.text_buffer = GtkSource.Buffer()
        self.text_buffer.create_tag('breakpoint',background="#ffeeee")
        self.text_buffer.create_tag('embed_shell',background="#eeffee")
        self.text_view = GtkSource.View.new_with_buffer(self.text_buffer)
        self.text_view.connect('button_press_event',self._pd_button_press_cb)
        self.brk_cat = 'BREAKPOINT'
        self.embed_cat = 'EMBEDED_SHELL'
       
        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.Warp.CHAR)
        self.set_font_size(self.activity.font_size)

        #build 650 doesn't seem to have the same means of specifying the search directory

        mgr = GtkSource.StyleSchemeManager()
        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.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        self.add(self.text_view)
        self.text_view.show()
        self.load_text()
        self.show()
コード例 #16
0
ファイル: editor_view.py プロジェクト: cckuok/Norka
    def set_style_scheme(self, scheme_id: str) -> None:
        scheme = GtkSource.StyleSchemeManager().get_scheme(scheme_id)
        self.buffer.set_style_scheme(scheme)

        try:
            bgcolor = scheme.get_style('text').props.background
        except AttributeError:
            bgcolor = '#fff'

        css_provider = Gtk.CssProvider()
        css_provider.load_from_data(
            f'.scrolled-editor {{background: {bgcolor}}}'.encode('ascii'))
        self.scrolled.get_style_context().add_provider(
            css_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER)
コード例 #17
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 = GtkSource.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 = GtkSource.View.new_with_buffer(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.WrapMode.CHAR)
        #self.text_view.modify_font(pango.FontDescription("Monospace 6.5"))
        self.set_font_size(self._activity.font_size)

        mgr = GtkSource.StyleSchemeManager()
        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.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        self.add(self.text_view)
        self.text_view.show()
        self.load_text()
        self.show()
コード例 #18
0
    def __init__(self, request_editor):
        super(ResponseContainer, self).__init__()

        self.last_response: Optional[requests.Response] = None
        self.lang_manager = GtkSource.LanguageManager()

        style_manager = GtkSource.StyleSchemeManager()
        # scheme: GtkSource.StyleScheme = mgr.get_scheme('classic')
        scheme: GtkSource.StyleScheme = style_manager.get_scheme('kate')
        self.response_text.get_buffer().set_style_scheme(scheme)

        # TODO: Lazy load the web view
        self.response_webview: WebKit2.WebView = WebKit2.WebView() \
            .new_with_context(WebKit2.WebContext().new_ephemeral())
        self.response_webview_scroll_window.add(self.response_webview)
コード例 #19
0
    def __init__(self, selected_style='classic'):
        Gtk.ToolItem.__init__(self)

        style_manager = GtkSource.StyleSchemeManager()
        self.styles = style_manager.get_scheme_ids()
        self.combo = Gtk.ComboBoxText()

        for style in self.styles:
            self.combo.append_text(style)

        self.combo.set_active(self.styles.index(selected_style))
        self.combo.connect('changed', self.__theme_changed)

        self.add(self.combo)
        self.show_all()
コード例 #20
0
    def __init__(self, request_editor):
        self.request_editor = request_editor
        builder = Gtk.Builder().new_from_file('ui/RequestContainer.glade')

        self.request_notebook: Gtk.Notebook = builder.get_object(
            'requestNotebook')
        self.lang_manager = GtkSource.LanguageManager()
        self.request_text: GtkSource.View = builder.get_object('requestText')

        style_manager = GtkSource.StyleSchemeManager()
        scheme: GtkSource.StyleScheme = style_manager.get_scheme('kate')
        self.request_text.get_buffer().set_style_scheme(scheme)

        # Set based on type of request
        lang = self.lang_manager.get_language('text')
        self.request_text.get_buffer().set_language(lang)

        self.request_type_notebook: Gtk.Notebook = builder.get_object(
            'requestTypeNotebook')
        self.request_form_data = ParamTable()
        self.request_type_notebook.insert_page(self.request_form_data,
                                               Gtk.Label('Form Data'), 2)
        self.request_form_urlencoded = ParamTable()
        self.request_type_notebook.insert_page(self.request_form_urlencoded,
                                               Gtk.Label('Form Url-Encoded'),
                                               3)

        self.request_type_popover: Gtk.Popover = builder.get_object(
            'requestTypePopover')
        self.request_type_popover_tree_view: Gtk.TreeView = builder.get_object(
            'requestTypePopoverTreeView')
        self.request_type_popover_tree_view_store: Gtk.ListStore = builder.get_object(
            'requestTypePopoverStore')

        self.param_table = ParamTable()
        self.request_header_table = ParamTable()
        self.request_notebook.insert_page(self.param_table,
                                          Gtk.Label(label='Params'), 0)
        self.request_notebook.insert_page(self.request_header_table,
                                          Gtk.Label(label='Headers'), 1)
        self.request_notebook.set_current_page(0)

        # Connections

        self.request_type_popover_tree_view.connect(
            'row-activated', self._on_popover_row_activated)
        self.request_type_notebook.connect(
            'switch-page', self._on_request_type_notebook_page_switched)
コード例 #21
0
def setup():  # call this only once in this file

    window.set_title('Wisualia editor')

    language_manager = GtkSource.LanguageManager()
    input_buffer.set_language(language_manager.get_language('python3'))

    style_manager = GtkSource.StyleSchemeManager()
    output_buffer.set_style_scheme(style_manager.get_scheme('cobalt'))

    # Larger font
    context = input_view.get_style_context()
    css = (b"textview {" b" font: 12pt monospace;" b"}")
    provider = Gtk.CssProvider()
    provider.load_from_data(css)
    context.add_provider(provider, Gtk.STYLE_PROVIDER_PRIORITY_USER)
コード例 #22
0
ファイル: xml.py プロジェクト: bertsky/browse-ocrd
    def build(self) -> None:
        super().build()
        self.add_configurator('file_group', FileGroupSelector(FileGroupFilter.XML))
        button = Gtk.Button.new_with_label('PageViewer')
        button.connect('clicked', self.open_jpageviewer)
        button.set_visible(True)
        self.action_bar.pack_start(button)

        lang_manager = GtkSource.LanguageManager()
        style_manager = GtkSource.StyleSchemeManager()

        self.text_view = GtkSource.View(visible=True, vexpand=False, editable=False, monospace=True,
                                        show_line_numbers=True, width_request=400)
        self.buffer = self.text_view.get_buffer()
        self.buffer.set_language(lang_manager.get_language('xml'))
        self.buffer.set_style_scheme(style_manager.get_scheme('tango'))
        self.text_view.connect('scroll-event', self.on_scroll)
        self.scroller.add(self.text_view)
コード例 #23
0
    def __init__(self, notebook):
        Observable.__init__(self)

        self.notebook = notebook
        self.pathname = ''
        self.save_state = 'saved'
        self.meta = {
            'name': 'Untitled',
            'tags': {},
            'id_number': 0,
            'backend': 'sage',
            'last_change': ('admin', time.time()),
            'last_accessed': datetime.datetime.fromtimestamp(0)
        }
        self.last_saved = datetime.datetime.fromtimestamp(0)
        self.cells = []
        self.active_cell = None
        self.busy_cells = set()
        self.modified_cells = set()
        self.kernel_state = None

        # set source language for syntax highlighting
        self.source_language_manager = GtkSource.LanguageManager()
        self.source_language_manager.set_search_path(
            ('./resources/gtksourceview/language-specs', ))
        self.source_language_code = self.source_language_manager.get_language(
            'sage')
        self.source_language_markdown = self.source_language_manager.get_language(
            'markdown')

        self.source_style_scheme_manager = GtkSource.StyleSchemeManager()
        self.source_style_scheme_manager.set_search_path(
            ('./resources/gtksourceview/styles', ))
        self.source_style_scheme = self.source_style_scheme_manager.get_scheme(
            'sage')

        self.cursor_position = {
            'cell': None,
            'cell_position': None,
            'cell_size': None,
            'position': None
        }
コード例 #24
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.set_show_line_numbers(True)
        self.set_monospace(True)

        self.buffer = self.get_buffer()
        self.buffer.set_highlight_syntax(True)

        # Set language
        self.lm = GtkSource.LanguageManager()
        language = self.lm.get_language('fountain')
        self.buffer.set_language(language)

        # Set style
        self.ssm = GtkSource.StyleSchemeManager()
        style = self.ssm.get_scheme('storiestyper-light')
        self.buffer.set_style_scheme(style)

        self.show_all()
コード例 #25
0
    def set_conf(self, conf):
        self.conf = conf
        style_manager = GtkSource.StyleSchemeManager()
        font = '%s %d' % (conf['font'], conf['font-size'])

        if conf['wrap-mode'] == 'none':
            wrap_mode = Gtk.WrapMode.NONE

        elif conf['wrap-mode'] == 'char':
            wrap_mode = Gtk.WrapMode.CHAR

        elif conf['wrap-mode'] == 'word':
            wrap_mode = Gtk.WrapMode.WORD

        self.modify_font(Pango.FontDescription(font))
        self.set_tab_width(conf['tab-width'])
        self.set_insert_spaces_instead_of_tabs(conf['use-spaces'])
        self.buffer.set_style_scheme(style_manager.get_scheme(conf['theme']))
        self.set_show_line_numbers(conf['show-line-numbers'])
        self.set_show_right_margin(conf['show-right-line'])
        self.set_right_margin_position(conf['right-line-pos'])
        self.set_wrap_mode(wrap_mode)
コード例 #26
0
    def __init__(self, full_path):
        '''
        Do any initialization here.
        '''
        GtkSource.View.__init__(self)

        self.full_path = full_path

        self.set_size_request(900, 350)
        self.set_editable(True)
        self.set_cursor_visible(True)
        self.set_show_line_numbers(True)
        self.set_insert_spaces_instead_of_tabs(True)
        self.set_highlight_current_line(True)

        self.text_buffer = GtkSource.Buffer()

        stylemanager = GtkSource.StyleSchemeManager()
        self.light_theme = stylemanager.get_scheme('classic')
        self.dark_theme = stylemanager.get_scheme('oblivion')
        self.text_buffer.set_style_scheme(self.light_theme)

        # Tags for search
        tagtable = self.text_buffer.get_tag_table()
        hilite_tag = Gtk.TextTag.new('search-hilite')
        hilite_tag.props.background = '#FFFFB0'
        tagtable.add(hilite_tag)
        select_tag = Gtk.TextTag.new('search-select')
        select_tag.props.background = '#B0B0FF'
        tagtable.add(select_tag)

        self.set_buffer(self.text_buffer)

        self.set_tab_width(4)
        self.set_auto_indent(True)

        self.load_text()
        self.show()
コード例 #27
0
ファイル: cell_widget.py プロジェクト: vbraun/notebook
 def _make_input(self):
     self.in_label = label = CellLabelWidget()
     self.in_view = view = GtkSource.View()
     view.connect("key-press-event", self.on_key_press_event)
     view.connect("focus-in-event", self._focus_in_event_callback)
     view.connect("focus-out-event", self._focus_out_event_callback)
     buffer = self.in_buffer = GtkSource.Buffer()
     style = GtkSource.StyleSchemeManager().get_scheme('tango')
     buffer.set_style_scheme(style)
     view.set_buffer(buffer)
     fontdesc = Pango.FontDescription("Consolas 13")
     view.modify_font(fontdesc)
     self.set_language()
     view.set_hexpand(True)
     view.set_vexpand(False)
     self.completion_provider = provider = SageCompletionProvider(self)
     self.completion = completion = view.get_completion()
     completion.add_provider(provider)
     #completion.set_property('auto-complete-delay', 2000)
     self._completion_is_visible = False
     completion.connect('show', self.on_completion_show_event)
     completion.connect('hide', self.on_completion_hide_event)
     return label, view
コード例 #28
0
ファイル: gcode_view.py プロジェクト: yrsiddhapura/hazzy
    def __init__(self):
        GtkSource.View.__init__(self)

        self.set_hexpand(True)
        self.set_vexpand(True)

        # create buffer
        self.buf = self.get_buffer()

        # setup style and lang managers
        self.lm = GtkSource.LanguageManager()
        self.sm = GtkSource.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.set_show_line_numbers(True)
        self.set_show_line_marks(False)
        self.set_highlight_current_line(False)

        self.connect('key-press-event', self.on_key_press)

        # Set line highlight styles
        self.add_mark_category('error', '#ff7373')
        self.add_mark_category('motion', '#c5c5c5')
        self.add_mark_category('selected', '#96fef6')

        self.mark = None
        self.current_file = None
        self.error_line = None

        self.show()
コード例 #29
0
ファイル: source_buffer.py プロジェクト: sfeuga/Setzer
    def __init__(self, document):
        GtkSource.Buffer.__init__(self)

        self.document = document
        self.view = GtkSource.View.new_with_buffer(self)
        self.view.set_monospace(True)
        self.view.set_smart_home_end(True)
        self.view.set_auto_indent(True)
        self.view.set_left_margin(6)
        self.settings = ServiceLocator.get_settings()

        resources_path = ServiceLocator.get_resources_path()

        # set source language for syntax highlighting
        self.source_language_manager = GtkSource.LanguageManager()
        self.source_language = self.source_language_manager.get_language(
            self.document.get_gsv_language_name())
        self.set_language(self.source_language)

        self.source_style_scheme_manager = GtkSource.StyleSchemeManager()
        self.source_style_scheme_manager.set_search_path(
            (os.path.join(resources_path, 'gtksourceview', 'styles'), ))
        self.source_style_scheme_light = self.source_style_scheme_manager.get_scheme(
            'setzer')
        self.source_style_scheme_dark = self.source_style_scheme_manager.get_scheme(
            'setzer-dark')

        self.search_settings = GtkSource.SearchSettings()
        self.search_context = GtkSource.SearchContext.new(
            self, self.search_settings)
        self.search_context.set_highlight(True)

        self.synctex_tag_count = 0
        self.synctex_highlight_tags = dict()

        self.document.add_change_code('buffer_ready')
コード例 #30
0
    'folder': FOLDER,
    'text-x-generic': TEXT,
    'text-x-python': PYTHON,
    'application-x-python-bytecode': PYTHON,
    'application-x-executable': EXECUTABLE,
    'application-x-shellscript': EXECUTABLE,
    'application-x-m4': EXECUTABLE,
    'text-x-script': EXECUTABLE,
    'package-x-generic': COMPRESSED,
    'inode-symlink': FOLDER_LINK,
    'application-pdf': PDF
}

LANGUAGE_MANAGER = GtkSource.LanguageManager()
LANGUAGES = LANGUAGE_MANAGER.get_language_ids()
STYLE_MANAGER = GtkSource.StyleSchemeManager()
STYLES = STYLE_MANAGER.get_scheme_ids()

STYLES_PATH = os.path.join(os.path.dirname(__file__), 'styles/')
STYLE_MANAGER = GtkSource.StyleSchemeManager()
STYLE_MANAGER.append_search_path(STYLES_PATH)
STYLES = STYLE_MANAGER.get_scheme_ids()

# FIXME: There must be many more exceptions.
BAD_LANGUAGES = {'c++': 'cpp', '.desktop': 'desktop', 'marcar': 'markdown'}


def get_pixbuf_from_path(path, size=62):
    icon_theme = Gtk.IconTheme()
    pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(UNKNOWN, size, size)