Package: gtk

Class gtk:color-chooser-dialog

Superclasses

Documented Subclasses

None

Direct Slots

show-editor
The show-editor property of type :boolean (Read / Write)
True when the color chooser dialog is showing the single-color editor. It can be set to switch the color chooser into single-color editing mode.
Default value: false

Details

The gtk:color-chooser-dialog widget is a dialog for choosing a color. It implements the gtk:color-chooser interface.

GtkColorChooser

Examples

Clicking on the drawing area opens a color chooser dialog to select a background color for the drawing area. The default palettes are replaced for this color chooser dialog.
(let ((message "Click to change the background color.")
      (bg-color (gdk:rgba-parse "White"))
      ;; Color palette with 9 Red RGBA colors
      (palette1 (list (gdk:rgba-parse "IndianRed")
                      (gdk:rgba-parse "LightCoral")
                      (gdk:rgba-parse "Salmon")
                      (gdk:rgba-parse "DarkSalmon")
                      (gdk:rgba-parse "LightSalmon")
                      (gdk:rgba-parse "Crimson")
                      (gdk:rgba-parse "Red")
                      (gdk:rgba-parse "FireBrick")
                      (gdk:rgba-parse "DarkRed")))
      ;; Gray palette with 9 gray RGBA colors
      (palette2 (list (gdk:rgba-parse "Gainsboro")
                      (gdk:rgba-parse "LightGray")
                      (gdk:rgba-parse "Silver")
                      (gdk:rgba-parse "DarkGray")
                      (gdk:rgba-parse "Gray")
                      (gdk:rgba-parse "DimGray")
                      (gdk:rgba-parse "LightSlateGray")
                      (gdk:rgba-parse "SlateGray")
                      (gdk:rgba-parse "DarkSlateGray"))))

(defun example-color-chooser-dialog (&optional application) (gtk:within-main-loop (let ((window (make-instance 'gtk:window :title "Example Color Chooser Dialog" :type :toplevel :application application :default-width 400)) (area (make-instance 'gtk:drawing-area))) (g:signal-connect window "destroy" (lambda (widget) (declare (ignore widget)) (gtk:leave-gtk-main))) ;; Draw the background color and a hint on the drawing area (g:signal-connect area "draw" (lambda (widget cr) (declare (ignore widget)) (let ((cr (glib:boxed-opaque-pointer cr)) (red (gdk:rgba-red bg-color)) (green (gdk:rgba-green bg-color)) (blue (gdk:rgba-blue bg-color))) ;; Paint the current color on the drawing area (cairo:set-source-rgb cr red green blue) (cairo:paint cr) ;; Print a hint on the drawing area (cairo:set-source-rgb cr (- 1 red) (- 1 green) (- 1 blue)) (cairo:select-font-face cr "Sans") (cairo:set-font-size cr 12) (cairo:move-to cr 12 24) (cairo:show-text cr message) (cairo:destroy cr)))) ;; Create and run a color chooser dialog to select a background color (g:signal-connect area "event" (lambda (widget event) (declare (ignore widget)) (when (eq (gdk:event-type event) :button-press) (let ((dialog (make-instance 'gtk:color-chooser-dialog :use-alpha nil))) ;; Add a custom palette to the dialog (gtk:color-chooser-add-palette dialog :vertical 1 palette1) ;; Add a second coustom palette to the dialog (gtk:color-chooser-add-palette dialog :vertical 1 palette2) ;; Set the actual background color for the color chooser (setf (gtk:color-chooser-rgba dialog) bg-color) ;; Run the color chooser dialog (let ((response (gtk:dialog-run dialog))) (when (eq response :ok) ;; Change the background color for the drawing area (setf bg-color (gtk:color-chooser-rgba dialog))) ;; Destroy the color chooser dialog (gtk:widget-destroy dialog)))))) ;; Set the event mask for the drawing area (setf (gtk:widget-events area) :button-press-mask) ;; Add the drawing area to the window (gtk:container-add window area) (gtk:widget-show-all window)))))
 

Returned by

Slot Access Functions

Inherited Slot Access Functions

gtk:dialog-use-header-bar
gtk:widget-app-paintable
gtk:widget-can-default
gtk:widget-can-focus
gtk:widget-composite-child
gtk:widget-double-buffered
gtk:widget-events
gtk:widget-expand
gtk:widget-focus-on-click
gtk:widget-halign
gtk:widget-has-default
gtk:widget-has-focus
gtk:widget-has-tooltip
gtk:widget-height-request
gtk:widget-hexpand
gtk:widget-hexpand-set
gtk:widget-is-focus
gtk:widget-margin
gtk:widget-margin-bottom
gtk:widget-margin-end
gtk:widget-margin-left
gtk:widget-margin-right
gtk:widget-margin-start
gtk:widget-margin-top
gtk:widget-name
gtk:widget-no-show-all
gtk:widget-opacity
gtk:widget-parent
gtk:widget-receives-default
gtk:widget-scale-factor
gtk:widget-sensitive
gtk:widget-style
gtk:widget-tooltip-markup
gtk:widget-tooltip-text
gtk:widget-valign
gtk:widget-vexpand
gtk:widget-vexpand-set
gtk:widget-visible
gtk:widget-width-request
gtk:widget-window
gtk:color-chooser-rgba
gtk:color-chooser-use-alpha
gtk:window-accept-focus
gtk:window-application
gtk:window-attached-to
gtk:window-decorated
gtk:window-default-height
gtk:window-default-width
gtk:window-deletable
gtk:window-destroy-with-parent
gtk:window-focus-on-map
gtk:window-focus-visible
gtk:window-gravity
gtk:window-has-resize-grip
gtk:window-has-toplevel-focus
gtk:window-hide-titlebar-when-maximized
gtk:window-icon
gtk:window-icon-name
gtk:window-is-active
gtk:window-mnemonics-visible
gtk:window-modal
gtk:window-opacity
gtk:window-resizable
gtk:window-resize-grip-visible
gtk:window-role
gtk:window-screen
gtk:window-skip-pager-hint
gtk:window-skip-taskbar-hint
gtk:window-startup-id
gtk:window-title
gtk:window-transient-for
gtk:window-type
gtk:window-type-hint
gtk:window-urgency-hint
gtk:window-window-position
gtk:container-border-width
gtk:container-child
gtk:container-resize-mode
g:object-has-reference
g:object-pointer

See also

2023-6-15