zori_page.c 849 B

123456789101112131415161718192021222324252627282930313233
  1. #include "zori_page.h"
  2. struct zori_page * zori_widget_to_page(struct zori_widget * widget) {
  3. return ZORI_CONTAINER_OF(widget, struct zori_page, widget);
  4. }
  5. struct zori_page * zori_page_new(zori_id id, struct zori_widget * parent);
  6. zori_id zori_new_page(zori_id id, zori_id parent_id);
  7. struct zori_page * zori_page_new(zori_id id, struct zori_widget * parent) {
  8. struct zori_page * page = NULL;
  9. if (!parent) return NULL;
  10. page = calloc(1, sizeof(*page));
  11. if (!page) return NULL;
  12. zori_widget_initall(&page->widget, id, parent,
  13. NULL, NULL, 0, NULL);
  14. return page;
  15. }
  16. zori_id zori_new_page(zori_id id, zori_id parent_id) {
  17. struct zori_widget * parent = zori_get_widget(parent_id);
  18. struct zori_page * page = zori_page_new(id, parent);
  19. if (!page) return ZORI_ID_ENOMEM;
  20. return page->widget.id;
  21. }