Beispiel #1
0
    def __init__(self):
        Gtk.Window.__init__(self)
        self.set_title('ColorChooserWidget')
        self.set_border_width(5)
        self.connect('destroy', Gtk.main_quit)

        colorchooserwidget = Gtk.ColorChooserWidget()
        colorchooserwidget.connect('color-activated', self.on_color_activated)
        self.add(colorchooserwidget)
Beispiel #2
0
    def __init__(self, parent, current_file, gcolor):
        Gtk.Dialog.__init__(self, "Pick a Color", parent, 0,
                            (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
                             Gtk.STOCK_OK, Gtk.ResponseType.OK))

        self.set_default_size(150, 100)
        box = self.get_content_area()
        box.set_border_width(10)
        box.set_spacing(10)

        sat_box = Gtk.Box(spacing=10, orientation=Gtk.Orientation.HORIZONTAL)
        light_box = Gtk.Box(spacing=10, orientation=Gtk.Orientation.HORIZONTAL)

        self.colorchooser = Gtk.ColorChooserWidget(show_editor=True)
        self.colorchooser.set_use_alpha(False)
        self.colorchooser.set_rgba(gcolor)

        r, g, b, _ = list(map(lambda x: round(x*100*2.55), gcolor))
        hue, light, sat = util.rgb_to_hls(r, g, b)

        self.random_color_btn = Gtk.Button('Random from Current Selection')
        self.random_color_btn.connect('clicked',
                                      self.get_random_color,
                                      current_file)

        self.sat_lbl = Gtk.Label('Saturation')
        self.light_lbl = Gtk.Label('Light    ')

        sat_range = Gtk.Adjustment(0, 0, 1, 0.1, 0.1, 0)
        self.sat_slider = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL,
                                    adjustment=sat_range)
        self.sat_slider.set_value(-sat)
        self.sat_slider.set_digits(2)
        self.sat_slider.connect('value-changed', self.slider_changed, 'sat')

        light_range = Gtk.Adjustment(5, 0, 255, 1, 10, 0)
        self.light_slider = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL,
                                      adjustment=light_range)
        self.light_slider.set_value(light)
        self.light_slider.connect('value-changed',
                                  self.slider_changed, 'light')

        box.add(self.colorchooser)
        box.add(self.random_color_btn)

        sat_box.pack_start(self.sat_lbl, True, True, 0)
        sat_box.pack_start(self.sat_slider, True, True, 0)

        light_box.pack_start(self.light_lbl, True, True, 0)
        light_box.pack_start(self.light_slider, True, True, 0)

        box.add(light_box)
        box.add(sat_box)

        self.show_all()
Beispiel #3
0
    def __init__(self, parent):
        Gtk.Dialog.__init__(self, "Pick a Color", parent, 0,
                            (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
                             Gtk.STOCK_OK, Gtk.ResponseType.OK))
        self.set_default_size(150, 100)

        box = self.get_content_area()
        box.set_border_width(10)
        self.colorchooser = Gtk.ColorChooserWidget(show_editor=True)
        self.colorchooser.set_use_alpha(False)
        box.add(self.colorchooser)
        self.show_all()
Beispiel #4
0
    def __init__(self):
        window = Gtk.Window()
        self.color = Gdk.RGBA(red=1, green=1, blue=1, alpha=1)
        window.connect("destroy", Gtk.main_quit)

        box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        window.add(box)
        self.window = window

        self.colorchooser = Gtk.ColorChooserWidget(show_editor=True)
        box.add(self.colorchooser)

        # self.entry = Gtk.Entry(text='0.5, 0.5, 0.5, 1.0')
        # box.add(self.entry)
        button = Gtk.Button(label="Select Color")
        button.connect("clicked", self.on_button_clicked)
        box.add(button)
Beispiel #5
0
def new_image_dialog(parent):
    dialog = Dialog(parent, 'Nouvelle image')

    spin_width = SpinButton(640, 1, 2048)
    spin_height = SpinButton(360, 1, 1080)

    color_chooser = Gtk.ColorChooserWidget()
    color_chooser.set_use_alpha(False)

    cancel_button = Gtk.Button.new_with_label("Annuler")
    cancel_button.connect("clicked", close_dialog, dialog)

    ok_button = Gtk.Button.new_with_label("Valider")
    ok_button.connect("clicked", ok_callback_new_image, spin_width,
                      spin_height, color_chooser, dialog)

    dialog_box = dialog.get_content_area()
    dialog_box.set_spacing(6)

    spins_box = Gtk.Box(spacing=6)
    spins_box.pack_start(Gtk.Label('Largeur :'), True, True, 0)
    spins_box.pack_start(spin_width, True, True, 0)
    spins_box.pack_start(Gtk.Label('Hauteur :'), True, True, 0)
    spins_box.pack_start(spin_height, True, True, 0)
    button_box = Gtk.Box(spacing=6)
    button_box.pack_start(cancel_button, True, True, 0)
    button_box.pack_start(ok_button, True, True, 0)

    dialog_box.pack_start(spins_box, False, False, 0)
    dialog_box.pack_start(color_chooser, False, False, 0)
    dialog_box.pack_start(button_box, False, False, 0)
    dialog.show_all()
    dialog.run()
    dialog.destroy()

    return dialog
Beispiel #6
0
    def __init__(self):

        Gtk.Window.__init__(self, title="James Donkey 325RS Config")

        grid = Gtk.Grid(row_spacing=10, column_spacing=5)

        box = Gtk.Box()
        box.add(grid)

        self.add(box)
        self.set_border_width(30)

        button1 = Gtk.Button(label="Reset Device")
        button1.connect("clicked", self.reset_device)

        label1 = Gtk.Label()
        label1.set_text("Light Mode ")

        radio1 = Gtk.RadioButton.new_with_label_from_widget(None, "Static")
        radio1.connect("toggled", self.toggle_light_mode, "1")

        radio2 = Gtk.RadioButton.new_from_widget(radio1)
        radio2.set_label("Pulsing")
        radio2.connect("toggled", self.toggle_light_mode, "2")

        radio3 = Gtk.RadioButton.new_from_widget(radio2)
        radio3.set_label("Multi-Colour")
        radio3.connect("toggled", self.toggle_light_mode, "3")

        label2 = Gtk.Label()
        label2.set_text("Brightness ")

        radio4 = Gtk.RadioButton.new_with_label_from_widget(None, "Dim")
        radio4.connect("toggled", self.toggle_light_lumi, "1")

        radio5 = Gtk.RadioButton.new_from_widget(radio4)
        radio5.set_label("Normal")
        radio5.connect("toggled", self.toggle_light_lumi, "2")

        radio6 = Gtk.RadioButton.new_from_widget(radio5)
        radio6.set_label("Bright")
        radio6.connect("toggled", self.toggle_light_lumi, "3")

        label3 = Gtk.Label()
        label3.set_text("Pulse Speed ")

        radio7 = Gtk.RadioButton.new_with_label_from_widget(None, "Slow")
        radio7.connect("toggled", self.toggle_light_speed, "1")

        radio8 = Gtk.RadioButton.new_from_widget(radio7)
        radio8.set_label("Normal")
        radio8.connect("toggled", self.toggle_light_speed, "2")

        radio9 = Gtk.RadioButton.new_from_widget(radio8)
        radio9.set_label("Fast")
        radio9.connect("toggled", self.toggle_light_speed, "3")

        label4 = Gtk.Label()
        label4.set_text("DPI Display  ")
        label4.set_justify(Gtk.Justification.LEFT)

        radio10 = Gtk.RadioButton.new_with_label_from_widget(None, "Standard")
        radio10.connect("toggled", self.toggle_light_dpi, "1")

        radio11 = Gtk.RadioButton.new_from_widget(radio10)
        radio11.set_label("Scan")
        radio11.connect("toggled", self.toggle_light_dpi, "2")

        radio12 = Gtk.RadioButton.new_from_widget(radio11)
        radio12.set_label("Thunberbolt")
        radio12.connect("toggled", self.toggle_light_dpi, "3")

        button_set_colour = Gtk.Button(label="Apply")

        grid.attach(button1, 0, 20, 1, 1)
        grid.attach(button_set_colour, 10, 10, 1, 1)

        grid.attach(label1, 0, 0, 1, 1)
        grid.attach(radio1, 1, 0, 1, 1)
        grid.attach(radio2, 2, 0, 1, 1)
        grid.attach(radio3, 3, 0, 1, 1)

        grid.attach(label2, 0, 1, 1, 1)
        grid.attach(radio4, 1, 1, 1, 1)
        grid.attach(radio5, 2, 1, 1, 1)
        grid.attach(radio6, 3, 1, 1, 1)

        grid.attach(label3, 0, 2, 1, 1)
        grid.attach(radio7, 1, 2, 1, 1)
        grid.attach(radio8, 2, 2, 1, 1)
        grid.attach(radio9, 3, 2, 1, 1)

        grid.attach(label4, 0, 3, 1, 1)
        grid.attach(radio10, 1, 3, 1, 1)
        grid.attach(radio11, 2, 3, 1, 1)
        grid.attach(radio12, 3, 3, 1, 1)

        self.colorchooser = Gtk.ColorChooserWidget(show_editor=True)
        Gtk.ColorChooser.set_use_alpha(self.colorchooser, False)
        box.add(self.colorchooser)

        self.colorchooser.connect('color-activated', self.set_colour)

        button_set_colour.connect("clicked", self.set_colour)

        dp1a = Gtk.Adjustment(1000, 50, 7200, 1, 10, 0)
        dp1 = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL, adjustment=dp1a)
        dp1.set_value(1000)
        Gtk.Scale.set_digits(dp1, 0)
        dp1.connect('button-release-event', self.set_dpi, "1")
        grid.attach(dp1, 1, 11, 3, 1)
        self.dp1 = dp1

        dp1a = Gtk.Adjustment(1000, 50, 7200, 1, 10, 0)
        dp1 = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL, adjustment=dp1a)
        dp1.set_value(2000)
        Gtk.Scale.set_digits(dp1, 0)
        dp1.connect('button-release-event', self.set_dpi, "2")
        grid.attach(dp1, 1, 12, 3, 1)
        self.dp2 = dp1

        dp1a = Gtk.Adjustment(1000, 50, 7200, 1, 10, 0)
        dp1 = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL, adjustment=dp1a)
        dp1.set_value(3600)
        Gtk.Scale.set_digits(dp1, 0)
        dp1.connect('button-release-event', self.set_dpi, "3")
        grid.attach(dp1, 1, 13, 3, 1)
        self.dp3 = dp1

        dp1a = Gtk.Adjustment(1000, 50, 7200, 1, 10, 0)
        dp1 = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL, adjustment=dp1a)
        dp1.set_value(7200)
        Gtk.Scale.set_digits(dp1, 0)
        dp1.connect('button-release-event', self.set_dpi, "4")
        grid.attach(dp1, 1, 14, 3, 1)
        self.dp4 = dp1

        self.radio11 = radio11
        self.radio3 = radio3
        self.radio6 = radio6
        self.radio8 = radio8

        self.set_defaults()
Beispiel #7
0
    def _render_config(self, *args):
        def _begin_config(*args):
            task = cmb_tasks.get_active_text()
            task = self._get_translation_for_desc(task)
            clr = clr_color.get_rgba().to_string()
            self._write_config(task, 'background', clr)
            #Get clr brightness (if is too dark the text will be white)
            #Extract red green and blue from clr
            clr_array = clr.split(',')
            red = int(clr_array[0].replace('rgb(', ''))
            green = int(clr_array[2].replace(')', ''))
            blue = int(clr_array[1])
            #Values extracted from different web sources and try-catch...
            red = red * red * 0.241
            green = green * green * 0.491
            blue = blue * blue * 0.384
            bright = sqrt(red + green + blue)
            if bright < 134:  #134 is a good value to distingish between dark and bright
                self._write_config(task, 'color', 'white')
            else:
                self._write_config(task, 'color', 'black')
            th = threading.Thread(target=self._refresh_grid_tasks, args=[])
            th.start()
            self._set_visible_stack(None, "tasks",
                                    Gtk.StackTransitionType.CROSSFADE, 1)

        def _load_cmb(*args):
            (tasks, names) = self._load_tasks()
            cmb_tasks.remove_all()
            for task in names:
                cmb_tasks.append_text(_(task))
            cmb_tasks.set_active(0)

        grid = Gtk.Box(homogeneous=True)
        grid.set_name("MAIN_COMMANDS_GRID")
        grid_cnf = Gtk.Grid(orientation=Gtk.Orientation.VERTICAL)
        grid_cnf.set_hexpand(False)
        grid_cnf.set_vexpand(False)
        grid_cnf.set_halign(Gtk.Align.CENTER)
        grid_cnf.set_valign(Gtk.Align.CENTER)
        grid_cnf.set_name("COMMANDS_GRID")
        lbl_tasks = Gtk.Label()
        lbl_tasks.set_text(_("Task group"))
        lbl_tasks.set_name("ENTRY_LABEL")
        lbl_tasks.set_halign(Gtk.Align.START)
        cmb_tasks = Gtk.ComboBoxText.new()
        cmb_tasks.set_name("GtkCombo")
        grid_cnf.add(lbl_tasks)
        grid_cnf.add(cmb_tasks)
        lbl_color = Gtk.Label()
        lbl_color.set_text(_("Pick color for group"))
        lbl_color.set_name("ENTRY_LABEL")
        clr_color = Gtk.ColorChooserWidget()
        for c in clr_color.get_children():
            for h in c.get_children():
                if "Box" in str(h):
                    h.set_visible(False)
                try:
                    h.get_children()
                except:
                    h.set_visible(False)

        grid_cnf.add(lbl_color)
        grid_cnf.add(clr_color)
        box_btn = Gtk.Box()
        box_btn.set_margin_top(MARGIN)
        box_btn.set_halign(Gtk.Align.END)
        btn_ok = Gtk.Button.new_from_icon_name("gtk-apply",
                                               Gtk.IconSize.BUTTON)
        btn_ok.connect("clicked", _begin_config)
        btn_ok.set_tooltip_text(_("Add command"))
        btn_cancel = Gtk.Button.new_from_icon_name("gtk-close",
                                                   Gtk.IconSize.BUTTON)
        btn_cancel.connect("clicked", self._set_visible_stack, "tasks",
                           Gtk.StackTransitionType.CROSSFADE, 1)
        btn_cancel.set_tooltip_text(_("Cancel"))

        box_btn.add(btn_cancel)
        box_btn.add(btn_ok)
        grid_cnf.add(box_btn)
        grid.add(grid_cnf)
        grid.connect("map", _load_cmb)
        return (grid)
Beispiel #8
0
    #
    # THE FOLLOWING CODE IS ONLY FOR TESTING.
    #

    # Create the GTK Interface
    #
    ROOT_WINDOW = Gtk.Window(title="Zone widget test")
    ROOT_WINDOW.set_size_request(width=900, height=600)
    BOX = Gtk.VBox()
    GRID = Gtk.Grid()
    VIEWPORT = Gtk.Viewport()
    VIEWPORT.add(GRID)
    SCROLLED_WINDOW = Gtk.ScrolledWindow()
    SCROLLED_WINDOW.add(VIEWPORT)

    COLOR_CHOOSER_WIDGET = Gtk.ColorChooserWidget()

    def on_button_click(widget):
        """
            Hide or un-hide the `COLOR_CHOOSER_WIDGET` in
            order to test the `COLOR_CHOOSER_DIALOG`.
        """
        if COLOR_CHOOSER_WIDGET.get_property('visible'):
            COLOR_CHOOSER_WIDGET.set_visible(False)
        else:
            COLOR_CHOOSER_WIDGET.set_visible(True)

    BUTTON = Gtk.Button(label="Toggle the ColorChooserWidget")
    BUTTON.connect('clicked', on_button_click)

    BOX.pack_start(child=BUTTON, expand=False, fill=True, padding=10)
Beispiel #9
0
#!/usr/bin/env python3

from gi.repository import Gtk

def color_activated(colorchooserwidget, color):
    red = (color.red * 255)
    green = (color.green * 255)
    blue = (color.blue * 255)

    print("Hex: #%02x%02x%02x" % (red, green, blue))

window = Gtk.Window()
window.connect("destroy", lambda q: Gtk.main_quit())

colorchooserwidget = Gtk.ColorChooserWidget()
colorchooserwidget.connect("color-activated", color_activated)
window.add(colorchooserwidget)

window.show_all()

Gtk.main()