diff options
| author | Arne Dußin | 2021-01-27 14:01:50 +0100 |
|---|---|---|
| committer | Arne Dußin | 2021-02-02 22:16:15 +0100 |
| commit | f92e9f6f07b1e3834c2ca58ce3510734819d08e4 (patch) | |
| tree | 20e3d3afce342a56ae98f6c20491482ccd2b5c6b /src/client/colours.rs | |
| parent | c60a6d07efb120724b308e29e8e70f27c87c952d (diff) | |
| download | graf_karto-f92e9f6f07b1e3834c2ca58ce3510734819d08e4.tar.gz graf_karto-f92e9f6f07b1e3834c2ca58ce3510734819d08e4.zip | |
Rework graf karto to fit the client/server structure
Diffstat (limited to 'src/client/colours.rs')
| -rw-r--r-- | src/client/colours.rs | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/src/client/colours.rs b/src/client/colours.rs new file mode 100644 index 0000000..d7c728c --- /dev/null +++ b/src/client/colours.rs @@ -0,0 +1,158 @@ +//! 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, + /// Colour the point to show where something is will be drawn in. + pub position_indicator: Color, + /// Colour that is used for the text stating the position of the position indicator in meters. + pub position_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, + /// Color used to draw the background of the Command Line Interface + pub cli_background: Color, + /// Color used to draw the normal text of the Command Line Interface + pub cli_foreground: 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, + }, + position_indicator: Color { + r: 200, + g: 200, + b: 200, + a: 255, + }, + position_text: Color { + r: 200, + g: 200, + b: 200, + a: 255, + }, + grid_lines: Color { + r: 255, + g: 255, + b: 255, + a: 75, + }, + cli_background: Color { + r: 100, + g: 100, + b: 100, + a: 150, + }, + cli_foreground: Color { + r: 255, + g: 255, + b: 255, + a: 200, + }, + } + } +} |
