]> git.lizzy.rs Git - nothing.git/commitdiff
(#976) Impelent Label deletion
authorrexim <reximkut@gmail.com>
Sun, 21 Jul 2019 19:27:00 +0000 (02:27 +0700)
committerrexim <reximkut@gmail.com>
Sun, 21 Jul 2019 19:28:08 +0000 (02:28 +0700)
src/game/level/level_editor/label_layer.c

index 88080b3c8b995eddb528cdf8044fad0fef64b518..791f70f2325cb26333aaebbb86a7062329004e52 100644 (file)
@@ -288,6 +288,17 @@ int label_layer_element_at(LabelLayer *label_layer,
     return -1;
 }
 
+static
+void label_layer_delete_nth_label(LabelLayer *label_layer,
+                                  size_t i)
+{
+    trace_assert(label_layer);
+    dynarray_delete_at(label_layer->ids, i);
+    dynarray_delete_at(label_layer->positions, i);
+    dynarray_delete_at(label_layer->colors, i);
+    dynarray_delete_at(label_layer->texts, i);
+}
+
 static
 int label_layer_idle_event(LabelLayer *label_layer,
                            const SDL_Event *event,
@@ -357,6 +368,14 @@ int label_layer_idle_event(LabelLayer *label_layer,
                 SDL_StartTextInput();
             }
         } break;
+
+        case SDLK_DELETE: {
+            if (label_layer->selected >= 0) {
+                label_layer_delete_nth_label(
+                    label_layer,
+                    (size_t) label_layer->selected);
+            }
+        } break;
         }
     } break;
     }