ui/common/object.c

changeset 886
6f5e02fcb7b9
parent 870
e167cf006213
child 932
28fc967f74ef
equal deleted inserted replaced
885:28ecfe5399ae 886:6f5e02fcb7b9
142 if(toplevel->container_end) { 142 if(toplevel->container_end) {
143 toplevel->container_end->next = NULL; 143 toplevel->container_end->next = NULL;
144 } else { 144 } else {
145 toplevel->container_begin = NULL; 145 toplevel->container_begin = NULL;
146 } 146 }
147
148 // TODO: free container?
147 } 149 }
150
151 /*
152 * This might look like a weird function, but in case a container creates a
153 * sub-container, 2 container objects are added to the list, however we want
154 * only one container, otherwise ui_container_finish() would not work
155 */
156 void uic_object_remove_second_last_container(UiObject *toplevel) {
157 if(toplevel->container_end && toplevel->container_end->prev) {
158 UiContainerX *end = toplevel->container_end;
159 UiContainerX *rm = toplevel->container_end->prev;
160
161 end->prev = rm->prev;
162 if(rm->prev) {
163 rm->prev->next = end;
164 } else {
165 toplevel->container_begin = end;
166 }
167
168 // TODO: free container?
169 } else {
170 fprintf(stderr, "Error: uic_object_remove_second_last_container expected at least 2 containers\n");
171 }
172 }

mercurial