]> git.lizzy.rs Git - nothing.git/blobdiff - src/game/level/level_editor/color_picker.h
Remove TODO(#956)
[nothing.git] / src / game / level / level_editor / color_picker.h
index 9166eab5b13355a13741c103b60cd6815d1e9f9e..2d60a085fdb132ae9ca6141f7ef3f9a03d6ede30 100644 (file)
@@ -5,22 +5,43 @@
 #include "layer.h"
 #include "ui/slider.h"
 
+typedef enum {
+    COLOR_SLIDER_HUE = 0,
+    COLOR_SLIDER_SAT,
+    COLOR_SLIDER_LIT,
+    COLOR_SLIDER_N
+} ColorPickerSlider;
+
 typedef struct {
-    Color color;
-    Slider slider;
+    Slider sliders[COLOR_SLIDER_N];
 } ColorPicker;
 
 typedef struct LineStream LineStream;
 
+ColorPicker create_color_picker_from_rgba(Color color);
+
 int color_picker_read_from_line_stream(ColorPicker *color_picker,
                                        LineStream *line_stream);
 
-LayerPtr color_picker_as_layer(ColorPicker *color_picker);
-
 int color_picker_render(const ColorPicker *color_picker,
-                        Camera *camera);
-int color_picker_mouse_button(ColorPicker *color_picker,
-                              const SDL_MouseButtonEvent *event,
-                              bool *selected);
+                        const Camera *camera);
+int color_picker_event(ColorPicker *color_picker,
+                       const SDL_Event *event,
+                       const Camera *camera,
+                       int *selected);
+
+Color color_picker_rgba(const ColorPicker *color_picker);
+
+static inline
+int color_picker_drag(const ColorPicker *color_picker)
+{
+    int result = 0;
+
+    for (int i = 0; i < COLOR_SLIDER_N; ++i) {
+        result = result || color_picker->sliders[i].drag;
+    }
+
+    return result;
+}
 
 #endif  // COLOR_PICKER_H_