+static
+int label_layer_edit_id_event(LabelLayer *label_layer,
+ const SDL_Event *event,
+ const Camera *camera)
+{
+ trace_assert(label_layer);
+ trace_assert(event);
+ trace_assert(camera);
+ trace_assert(label_layer->selected >= 0);
+
+
+ switch (event->type) {
+ case SDL_KEYDOWN: {
+ if (event->key.keysym.sym == SDLK_RETURN) {
+ char *id =
+ (char*)dynarray_data(label_layer->ids) + label_layer->selected * LABEL_LAYER_ID_MAX_SIZE;
+ memset(id, 0, LABEL_LAYER_ID_MAX_SIZE);
+ memcpy(id, edit_field_as_text(label_layer->edit_field), LABEL_LAYER_ID_MAX_SIZE - 1);
+ label_layer->state = LABEL_LAYER_IDLE;
+ return 0;
+ }
+ } break;
+ }
+
+
+ return edit_field_event(label_layer->edit_field, event);
+}
+