aboutsummaryrefslogtreecommitdiff
path: root/src/client/colours.rs
diff options
context:
space:
mode:
authorArne Dußin2021-01-27 14:01:50 +0100
committerArne Dußin2021-02-02 22:16:15 +0100
commitf92e9f6f07b1e3834c2ca58ce3510734819d08e4 (patch)
tree20e3d3afce342a56ae98f6c20491482ccd2b5c6b /src/client/colours.rs
parentc60a6d07efb120724b308e29e8e70f27c87c952d (diff)
downloadgraf_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.rs158
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,
+ },
+ }
+ }
+}