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.

Example

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 () (within-main-loop (let ((window (make-instance 'gtk-window :title "Example Color Chooser Dialog" :default-width 400)) (area (make-instance 'gtk-drawing-area))) (g-signal-connect window "destroy" (lambda (widget) (declare (ignore widget)) (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 (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)))))
 

Slot Access Functions

Inherited Slot Access Functions

gtk-container-border-width
gtk-container-child
gtk-container-resize-mode
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-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
g-object-has-reference
g-object-pointer
g-object-signal-handlers

See also

*2021-2-4