//! The colour definitions used for items drawn in graf karto. use raylib::ffi::Color; /// Contains the default colours used throughout, if nothing else is set. pub const DEFAULT_COLOURS: Colours = Colours::default(); /// All the different colours that may be used for different elements of the program. Contains one /// entry for each colourable component. pub struct Colours { /// Colour the rectangle used for the deletion tool is filled with. pub deletion_rect: Color, /// The colour of the outline of the deletion tool rectangle. pub deletion_rect_outline: Color, /// The colour that is used for filling the selection tool's rectangle. pub selection_rect: Color, /// Colour of the selection tool rectangle outline. pub selection_rect_outline: Color, /// Colour of the rooms that are currently not selected. pub room_normal: Color, /// The Colour the rooms should be tinted in when they have been selected. pub room_selected: Color, /// Colour of the walls when they are not selected. pub wall_normal: Color, /// Colour of the walls when they have been selected. pub wall_selected: Color, /// Colour of the icons when they are not selected. pub icon_normal: Color, /// Colour of the icons when they are selected. pub icon_selected: Color, /// Colour used to draw the rulers (the ruling lines) of the dimension indicator. pub dimension_indicators: Color, /// Colour of the text used to display the size of the dimension indicators dimensions. pub dimension_text: Color, /// The colour used for drawing the lines of the grid which divides the map into chunks of evenly /// spaced cells. pub grid_lines: Color, } impl Colours { // NOTE: Unfortunately the default function cannot be made const, since Default is a trait. This // feature is, as far as I can tell, planned in Rust, but not yet implemented. Once it is, Colours // should implement Default instead. const fn default() -> Self { Self { deletion_rect: Color { r: 200, g: 150, b: 150, a: 50, }, deletion_rect_outline: Color { r: 200, g: 150, b: 150, a: 150, }, selection_rect: Color { r: 255, g: 129, b: 0, a: 50, }, selection_rect_outline: Color { r: 255, g: 129, b: 0, a: 150, }, room_normal: Color { r: 180, g: 180, b: 180, a: 255, }, room_selected: Color { r: 150, g: 200, b: 150, a: 255, }, wall_normal: Color { r: 200, g: 120, b: 120, a: 255, }, wall_selected: Color { r: 150, g: 200, b: 150, a: 255, }, icon_normal: Color { r: 255, g: 255, b: 255, a: 255, }, icon_selected: Color { r: 150, g: 200, b: 150, a: 255, }, dimension_indicators: Color { r: 200, g: 200, b: 200, a: 255, }, dimension_text: Color { r: 200, g: 200, b: 200, a: 255, }, grid_lines: Color { r: 255, g: 255, b: 255, a: 75, }, } } }