4 #include "edit_field_ring.h"
5 #include "edit_field.h"
7 #include "system/error.h"
8 #include "game/sprite_font.h"
9 #include "game/edit_field.h"
11 /* TODO(#368): EditFieldRing is not implemented */
15 Edit_field *edit_field;
18 EditFieldRing *create_edit_field_ring(const Sprite_font *font,
31 EditFieldRing *edit_field_ring = PUSH_LT(
33 malloc(sizeof(EditFieldRing)),
35 if (edit_field_ring == NULL) {
36 throw_error(ERROR_TYPE_LIBC);
39 edit_field_ring->lt = lt;
41 edit_field_ring->edit_field = PUSH_LT(
43 create_edit_field(font, font_size, font_color),
45 if (edit_field_ring->edit_field == NULL) {
48 edit_field_focus(edit_field_ring->edit_field);
50 return edit_field_ring;
53 void destroy_edit_field_ring(EditFieldRing *edit_field_ring)
55 assert(edit_field_ring);
56 RETURN_LT0(edit_field_ring->lt);
59 void edit_field_ring_push(EditFieldRing *edit_field_ring)
61 assert(edit_field_ring);
62 edit_field_clean(edit_field_ring->edit_field);
65 size_t edit_field_ring_size(const EditFieldRing *edit_field_ring)
67 assert(edit_field_ring);
71 Edit_field *edit_field_ring_get(const EditFieldRing *edit_field_ring, size_t i)
73 assert(edit_field_ring);
75 return edit_field_ring->edit_field;