示例#1
0
 def load_font(self):
     fontdesc = pango.FontDescription(Prefs.current_font)
     context = self.textview0.get_pango_context()
     metrics = context.get_metrics(fontdesc, context.get_language())
     self.pixels_per_line = (metrics.get_ascent() +
                             metrics.get_descent()) / 1024
     self.pango_char_width = metrics.get_approximate_char_width()
     tabs = pango.TabArray(10, 0)
     tab_size = Prefs.tab_size
     for i in range(10):
         tabs.set_tab(i, pango.TAB_LEFT,
                      i * tab_size * self.pango_char_width)
     for i in range(2):
         self.textview[i].modify_font(fontdesc)
         self.textview[i].set_tabs(tabs)
     self.linkmap.queue_draw()
     self.pixbuf_apply0 = load_pixbuf("button_apply0.xpm",
                                      self.pixels_per_line)
     self.pixbuf_apply1 = load_pixbuf("button_apply1.xpm",
                                      self.pixels_per_line)
     self.pixbuf_delete = load_pixbuf("button_delete.xpm",
                                      self.pixels_per_line)
     self.pixbuf_copy0 = load_pixbuf("button_copy0.xpm",
                                     self.pixels_per_line)
     self.pixbuf_copy1 = load_pixbuf("button_copy1.xpm",
                                     self.pixels_per_line)
示例#2
0
 def __init__(self, scrolling='hv', **kwds):
     gtk_sw = gtk.ScrolledWindow()
     gtk_sw.show()
     gtk_tv = gtk.TextView()
     gtk_tv.show()
     gtk_sw.add(gtk_tv)
     gtk_tb = gtk.TextBuffer()
     self._gtk_textbuffer = gtk_tb
     gtk_tv.set_buffer(self._gtk_textbuffer)
     tag = gtk.TextTag()
     tabs = pango.TabArray(1, True)
     tabs.set_tab(0, pango.TAB_LEFT, 28)
     tag.set_property('tabs', tabs)
     tag.set_property('tabs-set', True)
     self._gtk_tag = tag
     gtk_tb.get_tag_table().add(tag)
     GTextEditor.__init__(self,
                          _gtk_outer=gtk_sw,
                          _gtk_inner=gtk_tv,
                          _gtk_focus=gtk_tv,
                          **kwds)
     self.set_hscrolling('h' in scrolling)
     self.set_vscrolling('v' in scrolling)
     if 'h' not in scrolling:
         gtk_tv.set_wrap_mode(gtk.WRAP_WORD)
     self._gtk_apply_tag()
示例#3
0
文件: mainwin.py 项目: pglen/pgpygtk
    def setfont(self, fam=None, size=None):
        self.pangolayout = self.window.create_pango_layout("a")

        if fam or size:
            fd = pango.FontDescription()
            if fam:
                fd.set_family(fam)
            if size:
                fd.set_size(size * pango.SCALE)
            self.pangolayout.set_font_description(fd)

        # Get Pango steps
        self.cxx, self.cyy = self.pangolayout.get_pixel_size()

        # Get Pango tabs
        self.tabarr = pango.TabArray(80, False)
        for aa in range(self.tabarr.get_size()):
            self.tabarr.set_tab(aa, pango.TAB_LEFT,
                                aa * TABSTOP * self.cxx * pango.SCALE)

        self.pangolayout.set_tabs(self.tabarr)
        ts = self.pangolayout.get_tabs()

        if ts != None:
            al, self.tabstop = ts.get_tab(1)
        self.tabstop /= self.cxx * pango.SCALE
示例#4
0
    def open(self, filename, container=None):
        self.type = "gtk"
        self.has_data = True
        self.tag_table = gtk.TextTagTable()

        sheet = self.get_style_sheet()

        for name in sheet.get_paragraph_style_names():
            tag = gtk.TextTag(name)

            style = sheet.get_paragraph_style(name)
            font = style.get_font()
            if font.get_type_face() == FONT_SERIF:
                tag.set_property("family", "Serif")
            elif font.get_type_face() == FONT_SANS_SERIF:
                tag.set_property("family", "Sans")
            elif font.get_type_face() == FONT_MONOSPACE:
                tag.set_property("family", "MonoSpace")

            tag.set_property("size-points", float(font.get_size()))
            if font.get_bold():
                tag.set_property("weight", pango.WEIGHT_BOLD)
            if style.get_alignment() == PARA_ALIGN_RIGHT:
                tag.set_property("justification", gtk.JUSTIFY_RIGHT)
            elif style.get_alignment() == PARA_ALIGN_LEFT:
                tag.set_property("justification", gtk.JUSTIFY_LEFT)
            elif style.get_alignment() == PARA_ALIGN_CENTER:
                tag.set_property("justification", gtk.JUSTIFY_CENTER)
            else:
                tag.set_property("justification", gtk.JUSTIFY_FILL)

            if font.get_italic():
                tag.set_property("style", pango.STYLE_ITALIC)

            if style.get_first_indent():
                tag.set_property("indent", pixels(style.get_first_indent()))
                #tag.set_property("tabs", [pixels(abs(style.get_first_indent()))])

            tag.set_property("left-margin", pixels(style.get_left_margin()))
            tag.set_property("right-margin", pixels(style.get_right_margin()))
            tag.set_property("pixels-above-lines", pixels(style.get_top_margin()))
            tag.set_property("pixels-below-lines", pixels(style.get_bottom_margin()))
            tag.set_property("wrap-mode", gtk.WRAP_WORD)

            new_tabs = style.get_tabs()

            tab_array = pango.TabArray(len(new_tabs)+1,True)
            index = 0
            for tab in map(pixels, new_tabs):
                tab_array.set_tab(index, pango.TAB_LEFT, tab)
                index += 1
            tag.set_property("tabs", tab_array)

            self.tag_table.add(tag)
        self.buffer = gtk.TextBuffer(self.tag_table)
        if container:
            return DocumentManager(_('Quick View'), self, container)
        else:
            DisplayBuf(_('Quick View'), self)
            return
示例#5
0
    def __init__(self):
        gtk.TextBuffer.__init__(self)
        tt = self.get_tag_table()
        self.refcount = 0
        self.filename = None
        self.untitled_serial = -1
        self.color_tags = []
        self.color_cycle_timeout_id = 0
        self.start_hue = 0.0

        for i in range(Buffer.N_COLORS):
            tag = self.create_tag()
            self.color_tags.append(tag)

        #self.invisible_tag = self.create_tag(None, invisible=True)
        self.not_editable_tag = self.create_tag(editable=False,
                                                foreground="purple")
        self.found_text_tag = self.create_tag(foreground="red")

        tabs = pango.TabArray(4, True)
        tabs.set_tab(0, pango.TAB_LEFT, 10)
        tabs.set_tab(1, pango.TAB_LEFT, 30)
        tabs.set_tab(2, pango.TAB_LEFT, 60)
        tabs.set_tab(3, pango.TAB_LEFT, 120)
        self.custom_tabs_tag = self.create_tag(tabs=tabs, foreground="green")
        TestText.buffers.push(self)
示例#6
0
文件: test2.py 项目: niavok/perroquet
    def __init__(self):
        gtk.TextBuffer.__init__(self)
        tabledesbalises = self.get_tag_table()
        self.comptref = 0
        self.nomfichier = None
        self.sanstitre_num = -1
        self.balises_couleurs = []
        self.marqueur_cycle_couleurs = 0
        self.teinte_depart = 0.0

        for i in range(Buffer.NBRE_COULEURS):
            balise = self.create_tag()
            self.balises_couleurs.append(balise)

        #self.balise_invisible = self.create_tag(None, invisible=True)
        self.balise_non_editable = self.create_tag(editable=False,
                                                   foreground="purple")
        self.balise_resultat = self.create_tag(foreground="red")

        tabulations = pango.TabArray(4, True)
        tabulations.set_tab(0, pango.TAB_LEFT, 10)
        tabulations.set_tab(1, pango.TAB_LEFT, 30)
        tabulations.set_tab(2, pango.TAB_LEFT, 60)
        tabulations.set_tab(3, pango.TAB_LEFT, 120)
        self.balise_tabs_perso = self.create_tag(tabs=tabulations,
                                                 foreground="green")
        TestTexte.buffers.empiler(self)
示例#7
0
	def setTabs(self,*args):
		n = len(args)
		t = pango.TabArray(n,True)
		i = 0
		for v in args:
			t.set_tab(i,pango.TAB_LEFT,v)
			i+=1;
		self.textview.set_tabs(t)
示例#8
0
 def set_up_log_view_columns(self):
     """Set up tab stops in the log view."""
     pango_context = self.log_view.get_pango_context()
     em = pango_context.get_font_description().get_size()
     tabs = pango.TabArray(2, False)
     tabs.set_tab(0, pango.TAB_LEFT, 9 * em)
     tabs.set_tab(1, pango.TAB_LEFT, 12 * em)
     self.log_view.set_tabs(tabs)
示例#9
0
 def set_tab_width(self, width, force=False):
     if width < 1:
         return
     if not force and width == self._tab_width:
         return
     tab_size = self._calculate_tab_size(width, ' ')
     if not tab_size:
         return
     tab_array = pango.TabArray(1, True)
     tab_array.set_tab(0, pango.TAB_LEFT, tab_size)
     self.widget.set_tabs(tab_array)
     self._tab_width = width
示例#10
0
    def __init__(self):        
        self.game = utils.get_game_ref()
        glade_dir = self.game.get_glade_dir()
        self.glade_file = os.path.join(glade_dir, "engine_output.glade")       
        Engine_Output.engine_output_ref = self       
       
        self.builder = gtk.Builder()
        self.builder.add_from_file(self.glade_file)
        self.builder.connect_signals(self)

        self.window = self.builder.get_object('engine_output_window')
        self.tv = [gtk.TextView(), gtk.TextView()]
        self.tv[0] = self.builder.get_object('engine_output_textview1')
        self.tv[1] = self.builder.get_object('engine_output_textview2')
        self.tv[0].set_editable(False)
        self.tv[1].set_editable(False)

        tabs =  pango.TabArray(4, True)
        tabs.set_tab(0, pango.TAB_LEFT, 40)
        tabs.set_tab(1, pango.TAB_LEFT, 160)
        tabs.set_tab(2, pango.TAB_LEFT, 230)
        tabs.set_tab(3, pango.TAB_LEFT, 280)

        self.tv[0].set_tabs(tabs)
        self.tv[1].set_tabs(tabs)

        self.tb = [gtk.TextBuffer(), gtk.TextBuffer()] 
        self.tb[0] = self.tv[0].get_buffer()
        self.tb[1] = self.tv[1].get_buffer() 
        #self.tb[0].set_text('')
        #self.tb[1].set_text('')               

        self.nps_lbl = [gtk.Label(), gtk.Label()]
        self.nps_lbl[0] = self.builder.get_object('engine_output_nodes_lbl1')
        self.nps_lbl[1] = self.builder.get_object('engine_output_nodes_lbl2')
        
        self.engine_name_lbl = [gtk.Label(), gtk.Label()]
        self.engine_name_lbl[0] = self.builder.get_object('engine_output_engine_name_lbl1')
        self.engine_name_lbl[1] = self.builder.get_object('engine_output_engine_name_lbl2')
       
        self.ponder_move_lbl = [gtk.Label(), gtk.Label()]
        self.ponder_move_lbl[0] = self.builder.get_object('engine_output_ponder_move_lbl1')
        self.ponder_move_lbl[1] = self.builder.get_object('engine_output_ponder_move_lbl2')       

        self.currmove_lbl = [gtk.Label(), gtk.Label()]
        self.currmove_lbl[0] = self.builder.get_object('engine_output_currmove_lbl1')
        self.currmove_lbl[1] = self.builder.get_object('engine_output_currmove_lbl2')
示例#11
0
文件: table.py 项目: DPMI/visualizer
    def tabstop(self, value):
        """Sets tabstops for columns.

        A semicolon separated list of tab positions (in pixels). If the position
        is prefixed with a '+' sign it is relative to the previous position.
        """
        v = value.split(';')
        t = pango.TabArray(len(v), True)
        c = 0
        for i, x in enumerate(v):
            if x[0] == '+':
                x = c + int(x[1:])
            else:
                x = int(x)
            c = x
            t.set_tab(i, pango.TAB_LEFT, x)
        self.area.set_tabs(t)
示例#12
0
    def __init__(self, controlState, xml):
        controlState.displayHeaderBar = True
        controlState.windowIcon = 'abouttoinstall.png'
        controlState.windowTitle = "Summary of installation settings"
        controlState.windowText = \
            "Review the summary of the installation settings"

        htmlTextView = HtmlTextView()
        htmlTextView.set_wrap_mode(gtk.WRAP_NONE)
        context = htmlTextView.get_pango_context()
        initialFont = context.get_font_description()
        # The review uses monospace, so get the font description for that at the
        # same size as the default font used by the text view.
        metrics = context.get_metrics(
            pango.FontDescription('monospace, %d' %
                                  (initialFont.get_size() / pango.SCALE)))

        # Generate the list of tab stops from the column widths specified in
        # the review module.
        tabPosition = 0
        ta = pango.TabArray(len(review.COLUMN_WIDTHS), True)
        for index, charWidth in enumerate(review.COLUMN_WIDTHS):
            tabPosition += pango.PIXELS(metrics.get_approximate_char_width() *
                                        charWidth)
            ta.set_tab(index, pango.TAB_LEFT, tabPosition)

        htmlTextView.set_tabs(ta)

        buf = review.produceText()
        htmlTextView.display_html(buf)

        viewPort = xml.get_widget('ReviewViewPort')
        assert (viewPort)
        for child in viewPort.get_children():
            viewPort.remove(child)
        viewPort.add(htmlTextView)

        htmlTextView.show()
示例#13
0
def set_package_details_text(labs, text, textview, installed_icon,
                             not_installed_icon, update_available_icon,
                             pkg_renamed):
    style = textview.get_style()
    font_size_in_pango_unit = style.font_desc.get_size()
    font_size_in_pixel = font_size_in_pango_unit / pango.SCALE
    tab_array = pango.TabArray(2, True)

    infobuffer = textview.get_buffer()
    infobuffer.set_text("")
    max_test_len = 0
    for lab in labs:
        __add_label_to_generalinfo(infobuffer, 0, labs[lab])
        test_len = get_textview_width(textview)
        if test_len > max_test_len:
            max_test_len = test_len
        infobuffer.set_text("")
    tab_array.set_tab(1, pango.TAB_LEFT, max_test_len + font_size_in_pixel)
    textview.set_tabs(tab_array)
    infobuffer.set_text("")
    i = 0
    __add_line_to_generalinfo(infobuffer, i, labs["name"], text["name"])
    i += 1
    if pkg_renamed:
        i = __add_renamed_line_to_generalinfo(infobuffer, i, labs, text)
    __add_line_to_generalinfo(infobuffer, i, labs["summ"], text["summ"])
    i += 1
    installed = False
    if text["ins"].startswith(_("No")):
        icon = not_installed_icon
    else:
        icon = installed_icon
        installed = True
    __add_line_to_generalinfo(infobuffer, i, labs["ins"], text["ins"], icon,
                              font_size_in_pixel)
    i += 1
    if installed:
        if text["available"] != "No":
            __add_line_to_generalinfo(infobuffer, i, labs["available"],
                                      text["available"], update_available_icon,
                                      font_size_in_pixel)
        i += 1
        if not pkg_renamed:
            i = __add_renamed_line_to_generalinfo(infobuffer, i, labs, text)
    else:
        __add_line_to_generalinfo(infobuffer, i, labs["available"],
                                  text["available"])
        i += 1
    if text["size"] != "0":
        __add_line_to_generalinfo(infobuffer, i, labs["size"], text["size"])
        i += 1
    __add_line_to_generalinfo(infobuffer, i, labs["cat"], text["cat"])
    i += 1
    __add_line_to_generalinfo(infobuffer, i, labs["repository"],
                              text["repository"])
    if len(text["desc"]) > 0:
        i += 1
        __add_label_to_generalinfo(infobuffer, i, labs["desc"] + '\n')
        i += 1
        itr = infobuffer.get_iter_at_line(i)
        infobuffer.insert(itr, text["desc"])
示例#14
0
    def __init__(self):
        #Set the Glade file
        self.builder = gtk.Builder()
        self.builder.add_from_file(GLADE_PATH)

        # get top window
        self.window = self.builder.get_object("top_window")

        # status bar stuff
        self.statusbar = self.builder.get_object("statusbar")
        self.statusbar_ctx = self.statusbar.get_context_id("default")

        # set buttons
        self.save_button = self.builder.get_object('save_file_toolbutton')
        self.connect_button = self.builder.get_object('connect_button')

        self.save_button.set_sensitive(False)
        self.connect_button.set_sensitive(True)

        # set control buttons
        self.controls = [
            self.builder.get_object('reset_button'),
            self.builder.get_object('bootloader_button'),
            self.builder.get_object('exec_button'),
            self.builder.get_object('stop_button'),
            self.builder.get_object('zoomin_button'),
            self.builder.get_object('zoomout_button'),
            self.builder.get_object('bestfit_button'),
            self.builder.get_object('refresh_button')
        ]

        self.connected = False
        map(lambda x: x.set_sensitive(False), self.controls)

        # workaround bug in gtkcodebuffer
        gtkcodebuffer.SYNTAX_PATH.append(
            os.path.join(sys.prefix, "local", "share", "pygtkcodebuffer",
                         "syntax"))

        # Configure source viewer
        self.buffer = CodeBuffer(lang=SyntaxLoader("python"))
        self.buffer.connect("changed", self.text_changed)
        tabs = pango.TabArray(1, True)
        tabs.set_tab(0, pango.TAB_LEFT, 8 * 4)  #seems right
        txtview = gtk.TextView(self.buffer)
        txtview.set_tabs(tabs)
        self.builder.get_object("src_scrolledwindow").add(txtview)

        # Configure terminal window
        self.terminal_scroll = self.builder.get_object('vte_scrolledwindow')
        self.terminal = self.builder.get_object('vte_textview')
        self.terminal.modify_base(gtk.STATE_NORMAL,
                                  gtk.gdk.color_parse('black'))
        self.terminal.modify_text(gtk.STATE_NORMAL,
                                  gtk.gdk.color_parse('green'))

        # get drawingarea
        self.pixbuf = None
        self.drawingarea = self.builder.get_object("drawingarea")
        self.da_menu = self.builder.get_object("da_menu")

        # selection coords
        self.sel_ended = False
        self.selection_started = False
        self.x1 = self.y1 = self.x2 = self.y2 = 0

        # set control scales attributes
        self.builder.get_object("contrast_adjust").attr = openmv.ATTR_CONTRAST
        self.builder.get_object(
            "brightness_adjust").attr = openmv.ATTR_BRIGHTNESS
        self.builder.get_object(
            "saturation_adjust").attr = openmv.ATTR_SATURATION
        self.builder.get_object(
            "gainceiling_adjust").attr = openmv.ATTR_GAINCEILING

        #connect signals
        signals = {
            "on_top_window_destroy": self.quit,
            "on_connect_clicked": self.connect_clicked,
            "on_reset_clicked": self.reset_clicked,
            "on_fwupdate_clicked": self.fwupdate_clicked,
            "on_fwpath_clicked": self.fwpath_clicked,
            "on_execute_clicked": self.execute_clicked,
            "on_stop_clicked": self.stop_clicked,
            "on_motion_notify": self.motion_notify,
            "on_button_press": self.button_pressed,
            "on_button_release": self.button_released,
            "on_open_file": self.open_file,
            "on_new_file": self.new_file,
            "on_save_file": self.save_file,
            "on_save_file_as": self.save_file_as,
            "on_save_template_activate": self.save_template,
            "on_save_descriptor_activate": self.save_descriptor,
            "on_ctrl_scale_value_changed": self.on_ctrl_scale_value_changed,
            "on_zoomin_clicked": self.zoomin_clicked,
            "on_zoomout_clicked": self.zoomout_clicked,
            "on_bestfit_clicked": self.bestfit_clicked,
            "on_preferences_clicked": self.preferences_clicked,
            "on_updatefb_clicked": self.updatefb_clicked,
            "on_vte_size_allocate": self.scroll_terminal,
        }
        self.builder.connect_signals(signals)

        # create data directory
        if not os.path.isdir(DATA_DIR):
            os.makedirs(DATA_DIR)

        # create user scripts directory
        if not os.path.isdir(SCRIPTS_DIR):
            os.makedirs(SCRIPTS_DIR)

        # create fresh config if needed
        if not os.path.isfile(CONFIG_PATH):
            try:
                with open(CONFIG_PATH, "w") as f:
                    f.write(DEFAULT_CONFIG)
            except Exception as e:
                print("Failed to create config file %s" % (e))
                sys.exit(1)

        # load config
        self.config = configparser.ConfigParser()
        try:
            self.config.read(CONFIG_PATH)
        except Exception as e:
            print("Failed to open config file %s" % (e))
            sys.exit(1)

        # current file path
        self.file_path = None
        self.fw_file_path = ""
        #        path = self.config.get("main", "last_opened_file")
        #        if os.path.isfile(path):
        #            self._load_file(path)

        # built-in examples menu
        submenu = gtk.Menu()
        menu = self.builder.get_object('example_menu')
        files = sorted(os.listdir(EXAMPLES_DIR))
        for f in files:
            if f.endswith(".py"):
                label = os.path.basename(f)
                mitem = gtk.MenuItem(label)
                mitem.connect("activate", self.open_example, EXAMPLES_DIR)
                submenu.append(mitem)

        menu.set_submenu(submenu)

        # recent files menu
        self.files = []
        files = self.config.get("main", "recent")
        if files:
            self.files = files.split(',')
            self.update_recent_files()
示例#15
0
 def setTabSpace(self, spaces, fontDesc=None):
     pangoTabSpc = self.getTabPixelWidth(spaces, fontDesc=fontDesc)
     tabArray = pango.TabArray(1, True)
     tabArray.set_tab(0, pango.TAB_LEFT, pangoTabSpc)
     self.set_tabs(tabArray)
     return pangoTabSpc
示例#16
0
    def apply_theme(self):
        """immediately apply the theme given in configuration

        this has changed from previous versions! Takes no arguments!
        Only uses configuration!"""

        # text cursor
        gtkrc_string = """\
        style "pyroom-colored-cursor" { 
        GtkTextView::cursor-color = '%s'
        bg_pixmap[NORMAL] = "<none>"
        }
        class "GtkWidget" style "pyroom-colored-cursor"
        """ % self.theme['foreground']
        gtk.rc_parse_string(gtkrc_string)

        padding = int(self.theme['padding'])
        self.textbox.set_border_width(padding)

        # Screen geometry
        screen = gtk.gdk.screen_get_default()
        root_window = screen.get_root_window()
        mouse_x, mouse_y, mouse_mods = root_window.get_pointer()
        current_monitor_number = screen.get_monitor_at_point(mouse_x, mouse_y)
        monitor_geometry = screen.get_monitor_geometry(current_monitor_number)
        (screen_width, screen_height) = (monitor_geometry.width,
                                         monitor_geometry.height)

        width_percentage = float(self.theme['width'])
        height_percentage = float(self.theme['height'])

        # Sizing
        self.vbox.set_size_request(int(width_percentage * screen_width),
                                   int(height_percentage * screen_height))

        parse_color = lambda x: gtk.gdk.color_parse(self.theme[x])
        # Colors
        self.window.modify_bg(gtk.STATE_NORMAL, parse_color('background'))
        self.boxout.modify_bg(gtk.STATE_NORMAL, parse_color('border'))
        self.status.active_color = self.theme['foreground']
        self.status.inactive_color = self.theme['background']
        self.textbox.modify_bg(gtk.STATE_NORMAL, parse_color('textboxbg'))
        self.textbox.modify_base(gtk.STATE_NORMAL, parse_color('textboxbg'))
        self.textbox.modify_base(gtk.STATE_SELECTED, parse_color('foreground'))
        self.textbox.modify_text(gtk.STATE_NORMAL, parse_color('foreground'))
        self.textbox.modify_text(gtk.STATE_SELECTED, parse_color('textboxbg'))
        self.textbox.modify_fg(gtk.STATE_NORMAL, parse_color('foreground'))

        # Border
        if not int(config.get('visual', 'showborder')):
            self.boxin.set_border_width(0)
            self.boxout.set_border_width(0)
        else:
            self.boxin.set_border_width(1)
            self.boxout.set_border_width(1)

        # Fonts
        if config.get('visual', 'use_font_type') == 'custom' or\
           not state['gnome_fonts']:
            new_font = config.get('visual', 'custom_font')
        else:
            font_type = config.get('visual', 'use_font_type')
            new_font = state['gnome_fonts'][font_type]
        self.textbox.modify_font(pango.FontDescription(new_font))
        tab_width = pango.TabArray(1, False)
        tab_width.set_tab(0, pango.TAB_LEFT,
                          calculate_real_tab_width(self.textbox, 4))
        self.textbox.set_tabs(tab_width)

        # Indent
        if config.get('visual', 'indent') == '1':
            pango_context = self.textbox.get_pango_context()
            current_font_size = pango_context.\
                    get_font_description().\
                    get_size() / 1024
            self.textbox.set_indent(current_font_size * 2)
        else:
            self.textbox.set_indent(0)

        # linespacing
        linespacing = config.getint('visual', 'linespacing')
        self.textbox.set_pixels_below_lines(linespacing)
        self.textbox.set_pixels_above_lines(linespacing)
        self.textbox.set_pixels_inside_wrap(linespacing)

        # alignment
        self.align.set(xalign=0.5,
                       yalign=ORIENTATION[config.get('visual', 'alignment')],
                       xscale=0,
                       yscale=0)
示例#17
0
 def set_tab_spacing(self, x):
     tabs = pango.TabArray(1, True)
     tabs.set_tab(0, pango.TAB_LEFT, x)
     self._gtk_tag.set_property('tabs', tabs)
示例#18
0
def set_dependencies_text(textview, info, dep_info, installed_dep_info,
                          installed_icon, not_installed_icon):
    names = []
    states = None
    installed_states = []
    if dep_info != None and len(dep_info.get(0)) >= 0:
        states = dep_info[0]
    if installed_dep_info != None and len(installed_dep_info.get(0)) >= 0:
        installed_states = installed_dep_info[0]
    version_fmt = get_version_fmt_string()
    for x in info.dependencies:
        if states != None and len(states) > 0:
            name = fmri.extract_pkg_name(x)
            found = False
            for state in states:
                if name == state.pkg_stem:
                    version = version_fmt % \
                        {"version": state.version,
                        "build": state.build_release,
                        "branch": state.branch}
                    found = True
                    break
            if not found:
                version = version_fmt % \
                    {"version": '0',
                     "build": '0',
                    "branch": '0'}
            found = False
            for state in installed_states:
                if name == state.fmri.get_name():
                    installed_version = version_fmt % \
                        {"version": state.version,
                        "build": state.build_release,
                        "branch": state.branch}
                    found = True
                    break
            if not found:
                installed_version = (_("(not installed)"))
            names.append((name, version, installed_version, found))
        else:
            build_rel = "0"
            pkg_fmri = fmri.PkgFmri(x, build_release=build_rel)
            branch = pkg_fmri.version.branch
            version_stripped = pkg_fmri.get_version().split("-%s" % branch)[0]
            version = version_fmt % \
                 {"version": version_stripped,
                 "build": build_rel,
                 "branch": branch}
            names.append(
                (pkg_fmri.pkg_name, version, _("(not installed)"), False))

    depbuffer = textview.get_buffer()
    depbuffer.set_text("")
    if states == None:
        if len(names) == 0:
            itr = depbuffer.get_iter_at_line(0)
            depbuffer.insert_with_tags_by_name(itr, _("None"), "bold")
        else:
            for i in range(0, len(names)):
                itr = depbuffer.get_iter_at_line(i)
                dep_str = "%s\n" % (names[i])
                depbuffer.insert(itr, dep_str)
        return
    style = textview.get_style()
    font_size_in_pango_unit = style.font_desc.get_size()
    font_size_in_pixel = font_size_in_pango_unit / pango.SCALE
    tab_array = pango.TabArray(3, True)
    header = [_("Name"), _("Dependency"), _("Installed Version")]
    max_len = [0, 0]
    for i in range(2):
        depbuffer.set_text("")
        itr = depbuffer.get_iter_at_line(0)
        depbuffer.insert_with_tags_by_name(itr, header[i], "bold")
        max_len[i] = get_textview_width(textview)

        depbuffer.set_text("")
        for one_names in names:
            itr = depbuffer.get_iter_at_line(0)
            depbuffer.insert(itr, one_names[i])
            test_len = get_textview_width(textview)

            if test_len > max_len[i]:
                max_len[i] = test_len
            depbuffer.set_text("")

    tab_array.set_tab(1, pango.TAB_LEFT, max_len[0] + font_size_in_pixel)
    tab_array.set_tab(2, pango.TAB_LEFT,
                      max_len[0] + max_len[1] + 2 * font_size_in_pixel)

    textview.set_tabs(tab_array)

    if len(names) == 0:
        depbuffer.set_text("")
        itr = depbuffer.get_iter_at_line(0)
        depbuffer.insert_with_tags_by_name(itr, _("No dependencies"), "bold")
        return

    itr = depbuffer.get_iter_at_line(0)
    header_text = "%s\t%s\t%s\n" % (header[0], header[1], header[2])
    depbuffer.insert_with_tags_by_name(itr, header_text, "bold")
    resized_installed_icon = None
    resized_not_installed_icon = None
    i += 0
    for (name, version, installed_version, is_installed) in names:
        if is_installed:
            if resized_installed_icon == None:
                resized_installed_icon = resize_icon(installed_icon,
                                                     font_size_in_pixel)
            icon = resized_installed_icon
        else:
            if resized_not_installed_icon == None:
                resized_not_installed_icon = resize_icon(
                    not_installed_icon, font_size_in_pixel)
            icon = resized_not_installed_icon
        itr = depbuffer.get_iter_at_line(i + 1)
        dep_str = "%s\t%s\t" % (name, version)
        depbuffer.insert(itr, dep_str)
        end_itr = depbuffer.get_end_iter()
        depbuffer.insert_pixbuf(end_itr, icon)
        depbuffer.insert(end_itr, " %s\n" % installed_version)
        i += 1
示例#19
0
 def setTabSpace(it, spaces, fontDesc=None):
     pangoTabSpc = getTxtPixelWidth(it, ' ' * spaces, fontDesc)
     tabArray = pango.TabArray(1, True)
     tabArray.set_tab(0, pango.TAB_LEFT, pangoTabSpc)
     it.set_tabs(tabArray)
     return pangoTabSpc
示例#20
0
def set_pub_cert_details_text(labs,
                              text,
                              textview,
                              added=False,
                              reinstated=False):
    style = textview.get_style()
    font_size_in_pango_unit = style.font_desc.get_size()
    font_size_in_pixel = font_size_in_pango_unit / pango.SCALE
    tab_array = pango.TabArray(3, True)

    infobuffer = textview.get_buffer()
    infobuffer.set_text("")

    labs_issuer = {}
    labs_issuer["common_name_to"] = PUBCERT_COMMON_NAME
    labs_issuer["org_to"] = PUBCERT_ORGANIZATION
    labs_issuer["org_unit_to"] = PUBCERT_ORGANIZATIONAL_UNIT
    max_issuer_len = 0
    for lab in labs_issuer:
        __add_label_to_generalinfo(infobuffer, 0, labs_issuer[lab])
        test_len = get_textview_width(textview)
        if test_len > max_issuer_len:
            max_issuer_len = test_len
        infobuffer.set_text("")

    max_finger_len = 0
    __add_label_to_generalinfo(infobuffer, 0, labs["fingerprints"])
    max_finger_len = get_textview_width(textview)
    infobuffer.set_text("")

    tab_array.set_tab(0, pango.TAB_LEFT, max_finger_len + font_size_in_pixel)
    tab_array.set_tab(1, pango.TAB_LEFT, max_issuer_len + font_size_in_pixel)
    textview.set_tabs(tab_array)
    infobuffer.set_text("")
    i = 0
    __add_label_to_generalinfo(infobuffer, i, labs["issued_to"] + '\n')
    i += 1
    __add_line_to_pub_cert_info(infobuffer, i, labs["common_name_to"],
                                text["common_name_to"])
    i += 1
    __add_line_to_pub_cert_info(infobuffer,
                                i,
                                labs["org_to"],
                                text["org_to"],
                                bold_label=False)
    i += 1
    __add_line_to_pub_cert_info(infobuffer, i, labs["org_unit_to"],
                                text["org_unit_to"])

    i += 1
    __add_label_to_generalinfo(infobuffer, i, labs["issued_by"] + '\n')
    i += 1
    __add_line_to_pub_cert_info(infobuffer, i, labs["common_name_by"],
                                text["common_name_by"])
    i += 1
    __add_line_to_pub_cert_info(infobuffer, i, labs["org_by"], text["org_by"])
    i += 1
    __add_line_to_pub_cert_info(infobuffer, i, labs["org_unit_by"],
                                text["org_unit_by"])

    i += 1
    __add_line_to_pub_cert_info(infobuffer,
                                i,
                                labs["validity"],
                                "",
                                bold_label=True)
    i += 1
    __add_line_to_pub_cert_info(infobuffer, i, labs["issued_on"],
                                text["issued_on"])

    i += 1
    __add_label_to_generalinfo(infobuffer, i, labs["fingerprints"] + '\n')

    i += 1
    __add_line_to_pub_cert_info(infobuffer, i, labs["sha1"], text["sha1"])
    i += 1
    __add_line_to_pub_cert_info(infobuffer, i, labs["md5"], text["md5"])
    i += 1
    if not added and not reinstated:
        __add_line_to_pub_cert_info(infobuffer,
                                    i,
                                    labs["ips"],
                                    text["ips"],
                                    add_return=False)
    elif added and not reinstated:
        __add_label_to_generalinfo(
            infobuffer, i, _("Note: \t Certificate is marked to be added"))
    elif not added and reinstated:
        __add_label_to_generalinfo(
            infobuffer, i,
            _("Note: \t Certificate is marked to be reinstated"))