[go: up one dir, main page]

gtk4/
color_chooser.rs

1// Take a look at the license at the top of the repository in the LICENSE file.
2
3use gdk::RGBA;
4use glib::translate::*;
5use libc::c_int;
6
7use crate::{ffi, prelude::*, ColorChooser, Orientation};
8
9// rustdoc-stripper-ignore-next
10/// Trait containing manually implemented methods of
11/// [`ColorChooser`](crate::ColorChooser).
12#[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
13#[allow(deprecated)]
14pub trait ColorChooserExtManual: IsA<ColorChooser> + 'static {
15    #[doc(alias = "gtk_color_chooser_add_palette")]
16    fn add_palette(&self, orientation: Orientation, colors_per_line: i32, colors: &[RGBA]) {
17        unsafe {
18            ffi::gtk_color_chooser_add_palette(
19                self.as_ref().to_glib_none().0,
20                orientation.into_glib(),
21                colors_per_line,
22                colors.len() as c_int,
23                if colors.is_empty() {
24                    std::ptr::null_mut()
25                } else {
26                    colors.as_ptr() as *mut gdk::ffi::GdkRGBA
27                },
28            )
29        }
30    }
31}
32
33impl<O: IsA<ColorChooser>> ColorChooserExtManual for O {}