# ColorButton (Javascript)

Meg Ford
megford@gnome.org 2013
En knapp för att starta en färgvalsdialog
Sebastian Rasmussen
sebras@gmail.com 2019
Anders Jonsson
anders.jonsson@norsjovallen.se 2021

# ColorButton

Denna ColorButton startar en färgvalsdialog och skriver i terminalen RGB-värdena på färgen som väljs.

# Kod som använts för att generera detta exempel

#!/usr/bin/gjs

imports.gi.versions.Gdk = '3.0'; imports.gi.versions.Gtk = '3.0';

const Gdk = imports.gi.Gdk; const GObject = imports.gi.GObject; const Gtk = imports.gi.Gtk;

class ColorbuttonExample {

// Skapa programmet i sig constructor() { this.application = new Gtk.Application ({ application_id: 'org.example.jscolorbutton' });

// Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna this.application.connect('activate', this._onActivate.bind(this)); this.application.connect('startup', this._onStartup.bind(this)); }

// Återanropsfunktion för ”activate”-signal visar fönster när den aktiveras _onActivate() { this.window.present(); }

// Återanropsfunktion för ”startup”-signal bygger användargränssnittet _onStartup() { this._buildUI(); }

// Bygg programmets användargränssnitt _buildUI() {

// Skapa programfönstret this.window = new Gtk.ApplicationWindow ({ application: this.application, window_position: Gtk.WindowPosition.CENTER, title: "ColorButton", default_width: 150, default_height: 50, border_width: 10 });

this.button = new Gtk.ColorButton(); this.color = new Gdk.RGBA(); this.color.red = 0.0; this.color.green = 0.0; this.color.blue = 1.0; this.color.alpha = 0.5; this.button.set_rgba(this.color); this.button.connect("color-set", this.onColorChosen.bind(this)); this.label = new Gtk.Label(); this.label.set_text("Klicka för att välja en färg");

let grid = new Gtk.Grid(); grid.attach(this.button, 0, 0, 2, 1); grid.attach(this.label, 0, 1, 2, 1); this.window.add(grid); this.window.show_all(); }

onColorChosen() { let colorName = this.color.to_string(); this.label.set_text("Du valde färgen " + colorName); } };

// Kör programmet let app = new ColorbuttonExample (); app.application.run (ARGV);

# API-referenser

I detta exempel använde vi följande:

GtkColorButton

RGBA-färger