]> git.lizzy.rs Git - nothing.git/blob - src/game/level/level_editor/color_picker.h
2d60a085fdb132ae9ca6141f7ef3f9a03d6ede30
[nothing.git] / src / game / level / level_editor / color_picker.h
1 #ifndef COLOR_PICKER_H_
2 #define COLOR_PICKER_H_
3
4 #include <stdbool.h>
5 #include "layer.h"
6 #include "ui/slider.h"
7
8 typedef enum {
9     COLOR_SLIDER_HUE = 0,
10     COLOR_SLIDER_SAT,
11     COLOR_SLIDER_LIT,
12     COLOR_SLIDER_N
13 } ColorPickerSlider;
14
15 typedef struct {
16     Slider sliders[COLOR_SLIDER_N];
17 } ColorPicker;
18
19 typedef struct LineStream LineStream;
20
21 ColorPicker create_color_picker_from_rgba(Color color);
22
23 int color_picker_read_from_line_stream(ColorPicker *color_picker,
24                                        LineStream *line_stream);
25
26 int color_picker_render(const ColorPicker *color_picker,
27                         const Camera *camera);
28 int color_picker_event(ColorPicker *color_picker,
29                        const SDL_Event *event,
30                        const Camera *camera,
31                        int *selected);
32
33 Color color_picker_rgba(const ColorPicker *color_picker);
34
35 static inline
36 int color_picker_drag(const ColorPicker *color_picker)
37 {
38     int result = 0;
39
40     for (int i = 0; i < COLOR_SLIDER_N; ++i) {
41         result = result || color_picker->sliders[i].drag;
42     }
43
44     return result;
45 }
46
47 #endif  // COLOR_PICKER_H_