4 #include "system/stacktrace.h"
5 #include "game/camera.h"
8 #include "background_layer.h"
9 #include "undo_history.h"
11 BackgroundLayer create_background_layer(Color color)
13 BackgroundLayer layer = {
14 .color_picker = create_color_picker_from_rgba(color),
20 BackgroundLayer chop_background_layer(String *input)
22 String line = trim(chop_by_delim(input, '\n'));
23 return create_background_layer(hexs(line));
26 int background_layer_render(BackgroundLayer *layer,
34 return color_picker_render(
43 BackgroundLayer *layer;
45 } BackgroundUndoContext;
48 void background_undo_color(void *context, size_t context_size)
50 trace_assert(context);
51 trace_assert(sizeof(BackgroundUndoContext) == context_size);
53 BackgroundUndoContext *undo_context = context;
54 BackgroundLayer *background_layer = undo_context->layer;
56 background_layer->color_picker = create_color_picker_from_rgba(undo_context->color);
59 int background_layer_event(BackgroundLayer *layer,
60 const SDL_Event *event,
62 UndoHistory *undo_history)
67 trace_assert(undo_history);
71 if (color_picker_event(
79 if (selected && !color_picker_drag(&layer->color_picker)) {
80 BackgroundUndoContext context = {
82 .color = layer->prev_color
87 background_undo_color,
88 &context, sizeof(context));
89 layer->prev_color = color_picker_rgba(&layer->color_picker);
95 int background_layer_dump_stream(BackgroundLayer *layer,
102 color_picker_rgba(&layer->color_picker),
105 return fprintf(stream, "\n");