1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
// Copyright 2013-2015, The Gtk-rs Project Developers. // See the COPYRIGHT file at the top-level directory of this distribution. // Licensed under the MIT license, see the LICENSE file or <http://opensource.org/licenses/MIT> use gdk::RGBA; use gdk_sys; use glib::object::IsA; use glib::translate::*; use gtk_sys; use libc::c_int; use ColorChooser; use Orientation; pub trait ColorChooserExtManual: 'static { /// Adds a palette to the color chooser. If `orientation` is horizontal, /// the colors are grouped in rows, with `colors_per_line` colors /// in each row. If `horizontal` is `false`, the colors are grouped /// in columns instead. /// /// The default color palette of `ColorChooserWidget` has /// 27 colors, organized in columns of 3 colors. The default gray /// palette has 9 grays in a single row. /// /// The layout of the color chooser widget works best when the /// palettes have 9-10 columns. /// /// Calling this function for the first time has the /// side effect of removing the default color and gray palettes /// from the color chooser. /// /// If `colors` is `None`, removes all previously added palettes. /// ## `orientation` /// `Orientation::Horizontal` if the palette should /// be displayed in rows, `Orientation::Vertical` for columns /// ## `colors_per_line` /// the number of colors to show in each row/column /// ## `n_colors` /// the total number of elements in `colors` /// ## `colors` /// the colors of the palette, or `None` fn add_palette(&self, orientation: Orientation, colors_per_line: i32, colors: &[RGBA]); } impl<O: IsA<ColorChooser>> ColorChooserExtManual for O { fn add_palette(&self, orientation: Orientation, colors_per_line: i32, colors: &[RGBA]) { unsafe { gtk_sys::gtk_color_chooser_add_palette( self.as_ref().to_glib_none().0, orientation.to_glib(), colors_per_line, colors.len() as c_int, colors.as_ptr() as *mut gdk_sys::GdkRGBA, ) } } }