Esempio n. 1
0
    def select_color(cls, color, callback):
        '''select color, receives a e3.Message.Color with the current
        color the callback receives a new color object woth the new selection
        '''
        def select_color_cb(button, window, callback, response, color_sel):
            '''callback called on button selection'''

            if response == stock.ACCEPT:
                window.hide()
                gtk_color = color_sel.get_current_color()
                color = e3.Color(gtk_color.red, gtk_color.green,
                                 gtk_color.blue)
                callback(color)

            window.hide()

        window = cls.new_window('Select color')

        color_sel = gtk.ColorSelection()

        window.hbox.pack_start(color_sel, True, True)
        color_sel.set_current_color(gtk.gdk.color_parse('#' + color.to_hex()))

        cls.add_button(window, gtk.STOCK_CANCEL, stock.CANCEL, callback,
                       select_color_cb, color_sel)
        cls.add_button(window, gtk.STOCK_OK, stock.ACCEPT, callback,
                       select_color_cb, color_sel)
        window.show_all()
Esempio n. 2
0
    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.connect("delete_event", self.destroy)
        self.window.set_border_width(10)

        self.devlist = gtk.combo_box_new_text()
        self.devlist.padding = 8
        self.devlist.connect("changed", self.selectDev)
        self.devlist.set_title("Select device here.")
        self.devlist.show()

        self.colorpick = gtk.ColorSelection()
        self.colorpick.connect("color-changed", self.colorUpdate)
        self.colorpick.show()

        self.mainbox = gtk.VBox()
        self.mainbox.items = 2
        self.mainbox.add(self.devlist)
        self.mainbox.add(self.colorpick)
        self.mainbox.show()

        self.window.add(self.mainbox)
        self.window.show()

        self.devlist.append_text("Disconnected")
        devs.append(["none", ""])
        self.devlist.set_active(0)
        for addr, name in bs.scan():
            self.devlist.append_text("Bluetooth: %(addr)s (%(name)s)" % {
                "addr": addr,
                "name": name
            })
            devs.append(["b", addr])
Esempio n. 3
0
    def __init__(self, loop):
        window = gtk.Window()
        vbox1 = gtk.VBox()
        hbox1 = gtk.HBox()
        window.add(vbox1)
        window.connect("delete_event", gtk.main_quit)
        window.set_border_width(5)
        window.set_icon_from_file(icon)
        color = gtk.ColorSelection()
        color.connect("color_changed",self.new_color)
        self.combobox = gtk.combo_box_new_text()
        self.combobox.set_border_width(5)
        label = gtk.Label("Selected Lamp:")
        separator = gtk.HSeparator()
        vbox1.pack_start(hbox1)
        hbox1.pack_start(label, False, False, 1)
        hbox1.pack_start(self.combobox, True, True, 2)
        vbox1.pack_start(separator)
        vbox1.pack_start(color,True,True,2)
        hbox1.set_border_width(5)
        window.show_all()

        bus = dbus.SystemBus(mainloop=loop)
        self.server = dbus.Interface(bus.get_object(avahi.DBUS_NAME, '/'), 'org.freedesktop.Avahi.Server')
        sbrowser = dbus.Interface(bus.get_object(avahi.DBUS_NAME,
            self.server.ServiceBrowserNew(avahi.IF_UNSPEC,
                avahi.PROTO_UNSPEC, TYPE, 'local', dbus.UInt32(0))),
            avahi.DBUS_INTERFACE_SERVICE_BROWSER)
        sbrowser.connect_to_signal("ItemNew", self.mlfound)
Esempio n. 4
0
    def add_connector(self, widget):
        self.newConnector = [(0, 0, 0), [], 0, 10]

        dialog = gtk.Dialog("Add a connector", None,
                            gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
                            (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,
                             gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
        dialog.vbox.set_spacing(10)

        b_connectorSpec = gtk.Button("Connect The Nodes")
        b_connectorSpec.connect("clicked", self.get_connector_spec)
        dialog.vbox.pack_start(b_connectorSpec)

        l_vehicle_nb = gtk.Label("Vehicle number:")
        dialog.vbox.pack_start(l_vehicle_nb)

        e_vehicle_nb = gtk.Entry()
        self.numbify(e_vehicle_nb)
        dialog.vbox.pack_start(e_vehicle_nb)

        l_vehicle_sp = gtk.Label("Vehicle speed:")
        dialog.vbox.pack_start(l_vehicle_sp)

        e_vehicle_sp = gtk.Entry()
        self.numbify(e_vehicle_sp)
        dialog.vbox.pack_start(e_vehicle_sp)

        l_pick_color = gtk.Label("Pick a connector color")
        dialog.vbox.pack_start(l_pick_color)

        colorselwidget = gtk.ColorSelection()
        dialog.vbox.pack_start(colorselwidget)

        dialog.show_all()
        response = dialog.run()
        if response == gtk.RESPONSE_ACCEPT:
            # L'utilisateur valide
            if self.is_connector_ok(self.newConnector) is True:
                self.newConnector[0] = self.hex_to_rgb(
                    str(colorselwidget.get_current_color()))
                self.newConnector[2] = int(e_vehicle_nb.get_text())
                self.newConnector[3] = int(e_vehicle_sp.get_text())
                self.Connectors.append(self.newConnector)
                self.Nodes = utils.count_connectors_per_node(
                    self.Nodes, self.Connectors)
                self.info.set_text("Connector has been added successfully!")
                print "connector created"
            else:
                self.info.set_text("Error creating connector")
                dialog.destroy()
                return -1
        else:
            # L'utilisateur annule (soit gtk.RESPONSE_CANCEL, soit gtk.RESPONSE_NONE)
            print "Cancel"

            #message d'erreur AFAIRE
        del self.newConnector
        dialog.destroy()
        return 0
Esempio n. 5
0
    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_title("ThunderBorg LED control")
        self.window.connect("destroy", self.destroy)

        self.vbxGrid = gtk.VBox(False, 0)
        self.window.add(self.vbxGrid)

        self.lblThunderBorgColour = gtk.Label("ThunderBorg LED colour")
        self.lblThunderBorgColour.set_use_markup(gtk.TRUE)
        self.lblThunderBorgColour.set_markup(
            "\n<b><big><big>ThunderBorg LED colour\n</big></big></b>")
        self.vbxGrid.pack_start(self.lblThunderBorgColour, True, True, 0)
        self.lblThunderBorgColour.show()

        self.clrThunderBorg = gtk.ColorSelection()
        self.clrThunderBorg.set_has_palette(False)
        self.clrThunderBorg.connect("color_changed",
                                    self.ThunderBorgColourChanged)
        self.vbxGrid.pack_start(self.clrThunderBorg, True, True, 0)
        self.clrThunderBorg.show()

        self.lblThunderBorgLidColour = gtk.Label("Lid LED colour")
        self.lblThunderBorgLidColour.set_use_markup(gtk.TRUE)
        self.lblThunderBorgLidColour.set_markup(
            "<b><big><big>\nLid LED colour\n</big></big></b>")
        self.vbxGrid.pack_start(self.lblThunderBorgLidColour, True, True, 0)
        self.lblThunderBorgLidColour.show()

        self.clrThunderBorgLid = gtk.ColorSelection()
        self.clrThunderBorgLid.set_has_palette(False)
        self.clrThunderBorgLid.connect("color_changed",
                                       self.ThunderBorgLidColourChanged)
        self.vbxGrid.pack_start(self.clrThunderBorgLid, True, True, 0)
        self.clrThunderBorgLid.show()

        self.vbxGrid.show()
        self.window.show()
Esempio n. 6
0
    def __init__(self):
        import application
        app = application.get_app()
        assert app is not None

        flags = gtk.DIALOG_DESTROY_WITH_PARENT
        buttons = (_('Save as Default'), RESPONSE_SAVE_AS_DEFAULT,
                   gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)
        windowing.Dialog.__init__(self,
                                  app=app,
                                  title=_('Background'),
                                  parent=app.drawWindow,
                                  flags=flags,
                                  buttons=buttons)

        #set up window
        self.connect('response', self.on_response)

        notebook = self.nb = gtk.Notebook()
        self.vbox.pack_start(notebook)

        #set up patterns tab
        patterns_scroll = gtk.ScrolledWindow()
        patterns_scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
        notebook.append_page(patterns_scroll, gtk.Label(_('Pattern')))

        self.bgl = BackgroundList(self)
        patterns_scroll.add_with_viewport(self.bgl)

        def lazy_init(*ignored):
            if not self.bgl.initialized:
                self.bgl.initialize()

        self.connect("realize", lazy_init)

        #set up colors tab
        color_vbox = gtk.VBox()
        notebook.append_page(color_vbox, gtk.Label(_('Color')))

        self.cs = gtk.ColorSelection()
        self.cs.connect('color-changed', self.color_changed_cb)
        color_vbox.pack_start(self.cs, expand=True)

        b = gtk.Button(_('Add color to Patterns'))
        b.connect('clicked', self.add_color_to_patterns_cb)
        color_vbox.pack_start(b, expand=False)
    def __init__(self, handle):
        activity.Activity.__init__(self, handle)
        self.client = gconf.client_get_default()
        self.current_nick = self.client.get_string("/desktop/sugar/user/nick")
        self.current_colour = self.client.get_string(
            "/desktop/sugar/user/color")
        self.current_colours = _parse_string(self.current_colour)
        self.toolbox = activity.ActivityToolbox(self)
        activity_toolbar = self.toolbox.get_activity_toolbar()
        activity_toolbar.share.props.visible = False
        activity_toolbar.keep.props.visible = False
        self.ok_button = ToolButton(icon)
        self.ok_button.props.tooltip = "Aplicar"
        self.ok_button.connect("clicked", self.apply)
        self.ok_button.show()
        activity_toolbar.insert(self.ok_button, 2)
        self.set_toolbox(self.toolbox)
        self.toolbox.show()

        self.canvas = gtk.VBox()
        name_box = gtk.HBox()
        self.canvas.pack_start(name_box, True, True, 5)
        name_label = gtk.Label("Nombre:")
        self.name_entry = gtk.Entry()
        self.name_entry.set_text(self.current_nick)
        name_label.show()
        self.name_entry.show()
        name_box.pack_start(name_label, False, True, 0)
        name_box.pack_start(self.name_entry, True, True, 0)
        name_box.show()

        self.colour_picker = gtk.HBox()

        selectors = gtk.VBox()
        self.out_colour_selector = gtk.ColorSelection()
        self.out_colour_selector.set_current_color(
            gtk.gdk.color_parse(self.current_colours[0]))
        self.out_colour_selector.connect("color-changed",
                                         self.colour_changed_callback, "out")
        self.out_colour_selector.show()
        selectors.pack_start(self.out_colour_selector, True, True, 0)

        self.in_colour_selector = gtk.ColorSelection()
        self.in_colour_selector.set_current_color(
            gtk.gdk.color_parse(self.current_colours[1]))
        self.in_colour_selector.connect("color-changed",
                                        self.colour_changed_callback, "in")
        self.in_colour_selector.show()
        selectors.pack_start(self.in_colour_selector, True, True, 0)

        selectors.show()
        self.colour_picker.pack_start(selectors, True, True, 0)

        self.xo_icon = gtk.EventBox()
        self.icon = Icon(pixel_size=style.XLARGE_ICON_SIZE)
        self.icon.props.xo_color = XoColor(self.current_colour)
        self.icon.props.icon_name = 'computer-xo'
        self.icon.props.pixel_size = style.XLARGE_ICON_SIZE
        self.icon.show()
        self.xo_icon.add(self.icon)
        self.xo_icon.show()
        self.colour_picker.pack_start(self.xo_icon)
        self.canvas.pack_start(self.colour_picker, True, True, 5)
        self.colour_picker.show()

        self.canvas.show()
        self.set_canvas(self.canvas)

        self.show()
Esempio n. 8
0
#!/usr/bin/env python

import gtk

window = gtk.Window()
window.add(gtk.ColorSelection())
window.show_all()

gtk.main()
Esempio n. 9
0
def initColorDrag(
):  # mainly for IcePref2, IcePref-TD, and IceWMCPWallpaper - 'color buttons'
    # added 5.16.2003, a hidden color dialog for handling drag-n-drop color support on 'color buttons'
    global COLOR_HOLDER

    # using a 'popup' (frameless) window type, so it wont map to the taskbar and make the screen 'flicker'
    COLOR_HOLDER = gtk.Window(gtk.WINDOW_POPUP)
    COLOR_HOLDER.colorsel = gtk.ColorSelection()
    COLOR_HOLDER.add(COLOR_HOLDER.colorsel)
    COLOR_HOLDER.set_position(gtk.WIN_POS_CENTER)
    COLOR_HOLDER.set_size_request(1, 1)
    COLOR_HOLDER.show_all(
    )  # must be called now, before use, to avoid 'gtk.Critical' whining on stdout
    COLOR_HOLDER.hide()
    #DJM!    COLOR_HOLDER.colorsel.set_update_policy(gtk.UPDATE_CONTINUOUS)

    global setDrag2

    def setDrag2(
        *args
    ):  # drag-n-drop callback, added 5.16.2003, drag-n-drop support for 'color buttons'
        drago = args
        if len(drago) < 7:
            args[0].drag_highlight()
            args[0].grab_focus()
        else:
            try:
                global COLOR_HOLDER
                COLOR_HOLDER.show()
                COLOR_HOLDER.set_position(gtk.WIN_POS_MOUSE)
                COLOR_HOLDER.hide()
                """ 5.16.2003 - Erica Andrews
                 send the same drag-n-drop signal we just received to the hidden COLOR_HOLDER's 
                 'preview' (gtk.Preview) box, to set the color - I don't know a work-around
                 for this yet, since the 'application/x-color' returned by the drag-n-drop
                 gtk.SelectionData.data object is some type of unparseable 'native' unicode 
                 junk that Python doesn't appear to be able to turn into a string, int or 
                 anything useful - so, we will let the built-in drag-n-drop of the 
                 gtk.ColorSelectionDialog handle it the way it knows how since it has direct 
                 access to the 'secret' C code underneath Pygtk. """

                wprev = COLOR_HOLDER.colorsel.get_children()[0].get_children(
                )[0].get_children()[1].get_children()[0]
                wprev.emit("drag_data_received", drago[1], drago[2], drago[3],
                           drago[4], drago[5], drago[6])
                col = COLOR_HOLDER.colorsel.get_color()

                # update the color on the 'color button' can called this drag-n-drop
                drago[0].get_data("colorbutton").updateColorProperties(
                    col[0], col[1], col[2])
            except:
                pass
            args[0].drag_unhighlight()

    global addDragSupportColor

    def addDragSupportColor(
            widget
    ):  # drag-n-drop support, added 5.15.2003 , for color buttons
        widget.drag_dest_set(gtk.DEST_DEFAULT_ALL,
                             [('application/x-icewmcp-color', 0, 0),
                              ("application/x-color", 0, 0)],
                             gtk.gdk.ACTION_COPY | gtk.gdk.ACTION_MOVE)
        widget.connect("drag_drop", setDrag2)
        widget.connect("drag_begin", setDrag2)
        widget.connect("drag_data_received", setDrag2)
Esempio n. 10
0
def tohex(val):
    h = hex(val)[2:]
    if val < 0x10:
        h = '0' + h
    return h.upper()


if len(sys.argv) > 1:
    lamp = tohex(int(sys.argv[1]))
else:
    lamp = tohex(0)


def new_color(color):
    c = color.get_current_color()
    r = c.red / 256
    g = c.green / 256
    b = c.blue / 256
    cmd = "acC#%s#%s%s%sab" % (lamp, tohex(r), tohex(g), tohex(b))
    s.sendto(cmd, addr)


window = gtk.Window()
window.connect("delete_event", gtk.main_quit)
window.set_border_width(10)
color = gtk.ColorSelection()
color.connect("color_changed", new_color)
window.add(color)
window.show_all()
gtk.main()
Esempio n. 11
0
#!/usr/bin/env python

import gtk
import gtk.gdk


def color_change(widget):
    color = widget.get_current_color()
    #print sorted(dir(color))
    #print color.to_string()
    print "#%02x%02x%02x" % (color.red >> 8, color.green >> 8, color.blue >> 8)


win = gtk.Window(gtk.WINDOW_TOPLEVEL)
csel = gtk.ColorSelection()
win.add(csel)
csel.show()
win.show()

csel.connect("color-changed", color_change)
win.connect("destroy", lambda *args: exit(0))
gtk.main()
    def __init__(self):

        self.window = gtk.Window()
        self.colorsel = gtk.ColorSelection()
        self.window.connect('destroy', lambda w: gtk.main_quit())
        self.window.set_size_request(400, 300)
        self.window.set_title("Bluetooth RGB Controller")
        icon = self.window.render_icon(gtk.STOCK_CONVERT, gtk.ICON_SIZE_BUTTON)
        self.window.set_icon(icon)
        self.vbox = gtk.VBox()
        self.window.add(self.vbox)
        # self.window.add(self.colorsel)
        self.uimanager = gtk.UIManager()
        accelgroup = self.uimanager.get_accel_group()
        self.window.add_accel_group(accelgroup)

        genericactions = gtk.ActionGroup('GenericActions')
        self.genericactions = genericactions
        self.uimanager.insert_action_group(genericactions, 0)

        serialactions = gtk.ActionGroup('SerialActions')
        self.serialactions = serialactions
        serialactions.add_actions([
            ('mnuHelp', None, '_Help'),
            # ('funAbout', gtk.STOCK_ABOUT, '_About', None, 'About', self.aboutButton),
            ('funQuit', gtk.STOCK_QUIT, '_Quit', None, 'Quit the Program',
             self.quit),
            ('mnuFile', None, '_File'),
            ('funConnect', gtk.STOCK_REFRESH, 'Serial _Connect', None,
             'Serial Connect', self.setup_serial)
        ])
        self.uimanager.insert_action_group(serialactions, 0)

        self.uimanager.add_ui_from_string(self.ui)
        self.menubar = self.uimanager.get_widget('/MenuBar')
        self.vbox.pack_start(self.menubar, False)
        self.toolbar = self.uimanager.get_widget('/Toolbar')
        self.vbox.pack_start(self.toolbar, False)

        self.content = gtk.VBox()

        headerVbox = gtk.VBox(True, 0)
        headerLabel1 = gtk.Label("Select RGB Color")
        headerVbox.pack_start(headerLabel1)
        mainHbox = gtk.HBox(True, 0)

        loopVbox = gtk.VBox(True, 0)
        fadeLabel = gtk.Label("Fade Delay (variable on arduino (ms): ")
        self.fadeScale = gtk.HScale()
        self.fadeScale.set_name("fade")
        self.fadeScale.set_range(5, 60)
        self.fadeScale.set_digits(0)
        self.fadeScale.set_size_request(160, 35)
        self.fadeScale.set_value(35)

        loopVbox = gtk.VBox(False, 0)

        # the radio buttons
        global button
        button = gtk.RadioButton(None, "Color Changer")
        button.connect("toggled", self.callback, "Color Changer")
        loopVbox.pack_start(button, gtk.TRUE, gtk.TRUE, 10)
        button.show()

        global button1
        button1 = gtk.RadioButton(button, "Breathe")
        button1.connect("toggled", self.callback, "Breathe")
        loopVbox.pack_start(button1, gtk.TRUE, gtk.TRUE, 10)
        button1.show()

        global button2
        button2 = gtk.RadioButton(button, "Color Select")
        button2.set_active(False)
        button2.connect("toggled", self.callback, "Color Select")
        loopVbox.pack_start(button2, gtk.TRUE, gtk.TRUE, 10)
        button2.show()

        rHbox = gtk.HBox(True, 0)
        rLabel = gtk.Label("Red: ")
        rHbox.pack_start(rLabel, expand=False, fill=False)

        self.rScale = gtk.HScale()
        self.rScale.set_name("red")
        self.rScale.set_range(0, 255)
        self.rScale.set_increments(1, 10)
        self.rScale.set_digits(0)
        self.rScale.set_size_request(160, 35)
        self.rScale.connect("value-changed", self.slider_changed)
        rHbox.pack_end(self.rScale)

        gHbox = gtk.HBox(True, 0)
        gLabel = gtk.Label("Green: ")
        gHbox.pack_start(gLabel, expand=False, fill=False)

        self.gScale = gtk.HScale()
        self.gScale.set_name("green")
        self.gScale.set_range(0, 255)
        self.gScale.set_increments(1, 10)
        self.gScale.set_digits(0)
        self.gScale.set_size_request(160, 35)
        self.gScale.connect("value-changed", self.slider_changed)
        gHbox.pack_end(self.gScale)

        bHbox = gtk.HBox(True, 0)
        bLabel = gtk.Label("Blue: ")
        bHbox.pack_start(bLabel, expand=False, fill=False)

        self.bScale = gtk.HScale()
        self.bScale.set_name("blue")
        self.bScale.set_range(0, 255)
        self.bScale.set_increments(1, 10)
        self.bScale.set_digits(0)
        self.bScale.set_size_request(160, 35)
        self.bScale.connect("value-changed", self.slider_changed)
        bHbox.pack_end(self.bScale)

        #make a new hbox
        delayHbox = gtk.HBox(True, 0)
        delayLabel = gtk.Label("Delay :")

        #pack the delay slider into the hbox
        delayHbox.pack_start(delayLabel, expand=True, fill=False)

        #define the various stuff for the slider itself
        self.delayScale = gtk.HScale()
        self.delayScale.set_name("delay")
        self.delayScale.set_range(0, 100)
        self.delayScale.set_increments(1, 10)
        self.delayScale.set_digits(0)
        # self.delayScale.set_size_request(160, 35)
        self.delayScale.connect("value-changed", self.slider_changed)
        delayHbox.pack_end(self.delayScale)

        cHbox = gtk.HBox(True, 0)
        cLabel = gtk.Label("RGB")
        cHbox.pack_start(cLabel, expand=False, fill=False)
        cHbox.pack_end(self.colorsel)

        rgbVbox = gtk.VBox(True, 0)

        rgbVbox.pack_start(headerVbox)
        rgbVbox.pack_start(rHbox)
        rgbVbox.pack_start(gHbox)
        rgbVbox.pack_end(bHbox)
        # rgbVbox.pack_end(dHbox)

        self.colorsel.connect('color-changed', self.color_picker_callback)
        self.window.connect('destroy', sys.exit)

        # mainHbox.pack_start(radio_vbox)
        mainHbox.pack_start(loopVbox)
        mainHbox.pack_end(rgbVbox)
        # mainHbox.pack_end(delayHbox)

        self.content.pack_start(mainHbox)
        self.content.pack_end(delayHbox)
        if (mode == 2):
            self.enableAll()
        else:
            self.disableAll()
            # button.set_sensitive(False);
            # button1.set_sensitive(False);
            # button2.set_sensitive(False);
        self.vbox.pack_start(self.content)
        self.window.show_all()
        return
Esempio n. 13
0
    def __init__(self):
        # color systems
        self.__colorSystems = ["YIQ", "RGB", "HSV"]
        self.__activeColorSystem = self.__colorSystems[0]

        ## main window

        spacing = 5
        self.window = gtk.Window()
        self.window.set_position(gtk.WIN_POS_CENTER_ON_PARENT)

        self.window.set_default_size(*windowSize)

        self.window.set_title("colorname")
        self.window.connect("delete_event", self.delete_event)
        self.window.connect("destroy", self.destroy)
        self.window.set_border_width(1)

        pixbuf = self.window.render_icon(gtk.STOCK_SELECT_COLOR,
                                         gtk.ICON_SIZE_DIALOG)
        self.window.set_icon(pixbuf)

        ## main boxes

        mainBox = gtk.VBox(spacing=spacing)
        self.window.add(mainBox)

        ## misc

        self.colorSelect = gtk.ColorSelection()
        mainBox.pack_start(self.colorSelect, expand=False)

        listsBox = gtk.VPaned()
        listsBox.set_position(150)
        mainBox.pack_start(listsBox, expand=True)

        ## colors

        colorFrame = gtk.Frame(label="Colors")
        listsBox.pack1(colorFrame, shrink=False)

        colorBox = gtk.VBox(spacing=spacing)
        colorFrame.add(colorBox)

        self.colorModel = gtk.ListStore(gobject.TYPE_BOOLEAN,
                                        gobject.TYPE_STRING,
                                        gobject.TYPE_PYOBJECT)
        colorView = gtk.TreeView(self.colorModel)

        # columns
        toggleRend = gtk.CellRendererToggle()
        toggleRend.set_property('activatable', True)
        toggleRend.connect("toggled", self.__colorlistCheckboxHandler,
                           self.colorModel)

        toggleCol = gtk.TreeViewColumn("", toggleRend)
        toggleCol.add_attribute(toggleRend, "active", 0)
        colorView.append_column(toggleCol)
        colorView.append_column(
            gtk.TreeViewColumn("Colorlist", gtk.CellRendererText(), text=1))

        # create scrollbars around the view.
        colorScrolledListView = gtk.ScrolledWindow()
        colorScrolledListView.set_property("hscrollbar_policy",
                                           gtk.POLICY_NEVER)
        colorScrolledListView.add(colorView)

        colorBox.pack_start(colorScrolledListView)

        ## results

        resultFrame = gtk.Frame(label="Results")
        listsBox.pack2(resultFrame, shrink=0)

        self.resultModel = gtk.ListStore(gobject.TYPE_FLOAT,
                                         gobject.TYPE_STRING,
                                         gobject.TYPE_STRING,
                                         gobject.TYPE_UINT)
        self.__resultView = gtk.TreeView(self.resultModel)
        self.__resultView.set_search_column(1)
        resultRend = gtk.CellRendererText()

        # color
        colNr = 1
        colorCell = gtk.CellRendererPixbuf()
        colorNameCol = gtk.TreeViewColumn("Color")
        colorNameCol.pack_start(colorCell, False)
        colorNameCol.pack_start(resultRend, True)
        colorNameCol.set_sort_column_id(colNr)
        colorNameCol.set_cell_data_func(colorCell, self.__renderColorPixbuf)
        colorNameCol.set_attributes(resultRend, text=colNr)
        self.__resultView.append_column(colorNameCol)

        # source
        colNr = 2
        sourceCol = gtk.TreeViewColumn("Source", resultRend, text=colNr)
        sourceCol.set_sort_column_id(colNr)
        sourceCol.set_min_width(-1)
        self.__resultView.append_column(sourceCol)

        # distance
        colNr = 0
        distCol = gtk.TreeViewColumn("Distance", resultRend, text=colNr)
        distCol.set_sort_column_id(colNr)
        distCol.set_sort_order(gtk.SORT_ASCENDING)
        self.__resultView.append_column(distCol)

        self.__resultView.connect("button_press_event", self.__resultsPopup)

        # create scrollbars around the view.
        resultScrolledListView = gtk.ScrolledWindow()
        resultScrolledListView.set_property("hscrollbar_policy",
                                            gtk.POLICY_NEVER)
        resultScrolledListView.add(self.__resultView)

        resultFrame.add(resultScrolledListView)

        ## button box

        buttonBox = gtk.HBox(spacing=spacing)

        execButton = gtk.Button(stock=gtk.STOCK_EXECUTE)
        execButton.connect("clicked", self.execute)
        buttonBox.pack_start(execButton, fill=False, expand=False)

        selCombobox = gtk.combo_box_new_text()
        map(selCombobox.append_text, self.__colorSystems)
        selCombobox.set_active(0)
        buttonBox.pack_start(selCombobox, fill=False, expand=False)

        selCombobox.connect("changed", self.__comboboxChangedHandler)

        closeButton = gtk.Button(stock=gtk.STOCK_CLOSE)
        closeButton.connect_object("clicked", gtk.Widget.destroy, self.window)
        buttonBox.pack_end(closeButton, fill=False, expand=False)

        aboutButton = gtk.Button("A_bout")
        aboutButton.connect("clicked", self.__showAbout)
        buttonBox.pack_end(aboutButton, fill=False, expand=False)

        mainBox.pack_start(buttonBox, fill=False, expand=False)

        ##
        self.window.show_all()