zori_page.c 881 B

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