diff --git a/annotations.c b/annotations.c index 93b31d4..2061e0f 100644 --- a/annotations.c +++ b/annotations.c @@ -12,6 +12,7 @@ struct zathura_annotation_s { char* content; /**< Content of the annotation */ time_t modification_date; /**< Modification date */ zathura_page_t* page; /**< Zathura page */ + zathura_rectangle_t position; /**< Position of the annotation */ void* data; /**< Custom data */ }; @@ -194,6 +195,39 @@ zathura_annotation_set_page(zathura_annotation_t* annotation, zathura_page_t* pa annotation->page = page; } +bool +zathura_annotation_get_position(zathura_annotation_t* annotation, + zathura_rectangle_t* rectangle) +{ + if (annotation == NULL || rectangle == NULL) { + return false; + } + + if (annotation->type == ZATHURA_ANNOTATION_MARKUP) { // TODO: Position of other annotation types + rectangle->x1 = annotation->position.x1; + rectangle->x2 = annotation->position.x2; + rectangle->y1 = annotation->position.y1; + rectangle->y2 = annotation->position.y2; + return true; + } + + return false; +} + +void +zathura_annotation_set_position(zathura_annotation_t* annotation, + zathura_rectangle_t rectangle) +{ + if (annotation == NULL) { + return; + } + + annotation->position.x1 = rectangle.x1; + annotation->position.x2 = rectangle.x2; + annotation->position.y1 = rectangle.y1; + annotation->position.y2 = rectangle.y2; +} + static char* __strdup(const char* string) { diff --git a/annotations.h b/annotations.h index 28cf2fe..52cc561 100644 --- a/annotations.h +++ b/annotations.h @@ -6,6 +6,7 @@ #include #include "page.h" +#include "types.h" typedef struct zathura_annotation_s zathura_annotation_t; @@ -172,4 +173,22 @@ zathura_page_t* zathura_annotation_get_page(zathura_annotation_t* annotation); */ void zathura_annotation_set_page_index(zathura_annotation_t* annotation, zathura_page_t* page); +/** + * Retrieves the position of the annotation and saves it into the given + * rectangle + * + * @param annotation The annotation + * @param rectangle The coordinates of the annotation + * @return true if the position could be retrieved otherwise false + */ +bool zathura_annotation_get_position(zathura_annotation_t* annotation, zathura_rectangle_t* rectangle); + +/** + * Sets the new position of the annotation + * + * @param annotation The annotation + * @param rectangle The rectangle containing the new position information + */ +void zathura_annotation_set_position(zathura_annotation_t* annotation, zathura_rectangle_t rectangle); + #endif // ANNOTATION_H