All pastes #412558 Raw Edit

Untitled

public python v1 · immutable
#412558 ·published 2007-03-27 19:42 UTC
rendered paste body
import gtkimport gtksourceviewimport pangodef Window(title=""):    window = gtk.Window()    window.set_title(title)    return windowdef Entry():    return gtk.Entry()def Notebook():    return gtk.Notebook()def Textbuffer():    return gtk.TextBuffer()def Textview(textbuffer=None, scroll_window=False, scroll_policy=(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC), editable=True, textview=gtk.TextView):    if textbuffer != None:        textview = textview(textbuffer)    else:        textview = textview()    textview.set_editable(editable)    if scroll_window:        scroll_window = gtk.ScrolledWindow()        scroll_window.add(textview)        scroll_window.set_policy(*scroll_policy)        return textview, scroll_window    return textviewdef GtkSourceTextBuffer(highlight=True):    textbuffer = gtksourceview.SourceBuffer()    textbuffer.set_highlight(highlight)    return textbufferdef GtkSourceTextView(textbuffer, scrolled_window=True, scrolled_policy=(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC), scrolled_placement=gtk.CORNER_TOP_LEFT, font=pango.FontDescription('monospace 9'), autoident=True, spaces_instead_of_tabs=True, tabs_width=4, show_line_numbers=True, grab_focus=True):    textview = gtksourceview.SourceView(textbuffer)    textview.set_auto_indent(autoident)    textview.set_insert_spaces_instead_of_tabs(spaces_instead_of_tabs)    textview.set_tabs_width(tabs_width)    textview.modify_font(font)    textview.set_show_line_numbers(show_line_numbers)    if grab_focus:        textview.grab_focus()    if scrolled_window:        scrolled_window = gtk.ScrolledWindow()        scrolled_window.set_policy(scrolled_policy)        scrolled_window.set_placement(scrolled_placement)        scrolled_window.add(textview)        scrolled_window.show_all()        return textview, scrolled_window    return textviewdef Table(rows=1, columns=1, homogeneous=False, tables=None):    """    tables : tuple with books            e.g. Table(tables=((self.toolbar, 0, 10, 0, 1), (self.tabs, 0, 10, 1, 201)))    """    table = gtk.Table(rows, columns, homogeneous)    if tables != None:        #if len(tables) > 1:        for tab in tables:            table.attach(*tab)        #else:        #    print tables        #    table.attach(*tables)    return tabledef Label(label="", markup=False):    label = gtk.Label(label)    label.set_use_markup(markup)    return labeldef Button(label=None, stock=None, use_underline=False, on_clicked=None, on_clicked_action=None, stock_image=None):    button = gtk.Button(label, stock, use_underline)    if on_clicked != None:        button.connect('clicked', on_clicked, on_clicked_action)    if stock_image != None:        image = gtk.Image()        image.set_from_stock(stock_image, gtk.ICON_SIZE_MENU)                gtk.Button.set_relief(button, gtk.RELIEF_NONE)        settings = gtk.Widget.get_settings(button)        w, h = gtk.icon_size_lookup_for_settings(settings, gtk.ICON_SIZE_MENU)        gtk.Widget.set_size_request(button, w + 4, h + 4)                image_box = HBox(( (image, True, False, 0),))        button.add(image_box)        image_box.show()    return buttondef VBox(pack_start=None, pack_end=None):    return HBox(pack_start, pack_end, True)def HBox(pack_start=None, pack_end=None, vbox_def=False):    def pack_it(pack_data, _pack):        if pack_data != None:            if len(pack_data) > 1:                for pack in pack_data:                    _pack(*pack)            else:                _pack(*pack_data[0])    if vbox_def:        hbox = gtk.VBox()    else:        hbox = gtk.HBox()    if pack_start != None:        pack_it(pack_start, hbox.pack_start)    if pack_end != None:        pack_it(pack_end, hbox.pack_end)    return hboxdef TabLabel(label, closetab, main_win):    label = Label(label)    close_button = Button(stock_image=gtk.STOCK_CLOSE,     on_clicked=closetab, on_clicked_action=main_win)    label_box = HBox(( (label,), (close_button,) ))    label_box.show_all()    return label_box