mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2025-03-04 05:24:39 +01:00
Introduced some new text annotation functions
This commit is contained in:
parent
33ec398a0e
commit
5b1a07e36c
2 changed files with 180 additions and 1 deletions
|
@ -20,7 +20,13 @@ struct zathura_annotation_s {
|
||||||
char* label; /**< Label */
|
char* label; /**< Label */
|
||||||
char* subject; /**< Subject of the annotation */
|
char* subject; /**< Subject of the annotation */
|
||||||
zathura_annotation_popup_t* popup; /**< Optional popup */
|
zathura_annotation_popup_t* popup; /**< Optional popup */
|
||||||
|
time_t creation_date; /**< Creation date */
|
||||||
} markup;
|
} markup;
|
||||||
|
struct {
|
||||||
|
zathura_annotation_text_icon_t icon; /**< The icon of the text annotation */
|
||||||
|
zathura_annotation_text_state_t state; /**< The state of the text annotation */
|
||||||
|
bool opened; /**< Open status of the text annotation */
|
||||||
|
} text;
|
||||||
} data;
|
} data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -42,13 +48,18 @@ zathura_annotation_new(zathura_annotation_type_t type)
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case ZATHURA_ANNOTATION_MARKUP:
|
case ZATHURA_ANNOTATION_MARKUP:
|
||||||
|
annotation->data.markup.creation_date = (time_t) -1;
|
||||||
break;
|
break;
|
||||||
|
case ZATHURA_ANNOTATION_TEXT:
|
||||||
|
annotation->data.text.icon = ZATHURA_ANNOTATION_TEXT_ICON_UNKNOWN;
|
||||||
|
annotation->data.text.state = ZATHURA_ANNOTATION_TEXT_STATE_UNKNOWN;
|
||||||
default:
|
default:
|
||||||
free(annotation);
|
free(annotation);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
annotation->type = type;
|
annotation->type = type;
|
||||||
|
annotation->modification_date = (time_t) -1;
|
||||||
|
|
||||||
return annotation;
|
return annotation;
|
||||||
}
|
}
|
||||||
|
@ -331,6 +342,86 @@ zathura_annotation_markup_set_popup(zathura_annotation_t* annotation, zathura_an
|
||||||
annotation->data.markup.popup = popup;
|
annotation->data.markup.popup = popup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
time_t
|
||||||
|
zathura_annotation_markup_get_creation_date(zathura_annotation_t* annotation)
|
||||||
|
{
|
||||||
|
if (annotation == NULL || annotation->type != ZATHURA_ANNOTATION_MARKUP) {
|
||||||
|
return (time_t) -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return annotation->data.markup.creation_date;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
zathura_annotation_markup_set_creation_date(zathura_annotation_t* annotation, time_t creation_date)
|
||||||
|
{
|
||||||
|
if (annotation == NULL || annotation->type != ZATHURA_ANNOTATION_MARKUP) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
annotation->data.markup.creation_date = creation_date;
|
||||||
|
}
|
||||||
|
|
||||||
|
zathura_annotation_text_icon_t
|
||||||
|
zathura_annotation_text_get_icon(zathura_annotation_t* annotation)
|
||||||
|
{
|
||||||
|
if (annotation == NULL || annotation->type != ZATHURA_ANNOTATION_TEXT) {
|
||||||
|
return ZATHURA_ANNOTATION_TEXT_ICON_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
return annotation->data.text.icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
zathura_annotation_text_set_icon(zathura_annotation_t* annotation, zathura_annotation_text_icon_t icon)
|
||||||
|
{
|
||||||
|
if (annotation == NULL || annotation->type != ZATHURA_ANNOTATION_TEXT) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
annotation->data.text.icon = icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
zathura_annotation_text_state_t
|
||||||
|
zathura_annotation_text_get_state(zathura_annotation_t* annotation)
|
||||||
|
{
|
||||||
|
if (annotation == NULL || annotation->type != ZATHURA_ANNOTATION_TEXT) {
|
||||||
|
return ZATHURA_ANNOTATION_TEXT_STATE_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
return annotation->data.text.state;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
zathura_annotation_text_set_state(zathura_annotation_t* annotation, zathura_annotation_text_state_t state)
|
||||||
|
{
|
||||||
|
if (annotation == NULL || annotation->type != ZATHURA_ANNOTATION_TEXT) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
annotation->data.text.state = state;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
zathura_annotation_text_get_open_status(zathura_annotation_t* annotation)
|
||||||
|
{
|
||||||
|
if (annotation == NULL || annotation->type != ZATHURA_ANNOTATION_TEXT) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return annotation->data.text.opened;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
zathura_annotation_text_set_open_status(zathura_annotation_t* annotation, bool opened)
|
||||||
|
{
|
||||||
|
if (annotation == NULL || annotation->type != ZATHURA_ANNOTATION_TEXT) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
annotation->data.text.opened = opened;
|
||||||
|
}
|
||||||
|
|
||||||
zathura_annotation_popup_t*
|
zathura_annotation_popup_t*
|
||||||
zathura_annotation_popup_new()
|
zathura_annotation_popup_new()
|
||||||
{
|
{
|
||||||
|
|
|
@ -56,6 +56,30 @@ typedef enum zathura_annotation_flag_s {
|
||||||
ZATHURA_ANNOTATION_FLAG_LOCKED_CONTENTS = 1 << 9,
|
ZATHURA_ANNOTATION_FLAG_LOCKED_CONTENTS = 1 << 9,
|
||||||
} zathura_annotation_flag_t;
|
} zathura_annotation_flag_t;
|
||||||
|
|
||||||
|
typedef enum zathura_annotation_text_icon_s {
|
||||||
|
ZATHURA_ANNOTATION_TEXT_ICON_UNKNOWN,
|
||||||
|
ZATHURA_ANNOTATION_TEXT_ICON_NOTE,
|
||||||
|
ZATHURA_ANNOTATION_TEXT_ICON_COMMENT,
|
||||||
|
ZATHURA_ANNOTATION_TEXT_ICON_KEY,
|
||||||
|
ZATHURA_ANNOTATION_TEXT_ICON_HELP,
|
||||||
|
ZATHURA_ANNOTATION_TEXT_ICON_NEW_PARAGRAPH,
|
||||||
|
ZATHURA_ANNOTATION_TEXT_ICON_PARAGRAPH,
|
||||||
|
ZATHURA_ANNOTATION_TEXT_ICON_INSERT,
|
||||||
|
ZATHURA_ANNOTATION_TEXT_ICON_CROSS,
|
||||||
|
ZATHURA_ANNOTATION_TEXT_ICON_CIRCLE
|
||||||
|
} zathura_annotation_text_icon_t;
|
||||||
|
|
||||||
|
typedef enum zathura_annotation_text_state_s {
|
||||||
|
ZATHURA_ANNOTATION_TEXT_STATE_UNKNOWN,
|
||||||
|
ZATHURA_ANNOTATION_TEXT_STATE_NONE,
|
||||||
|
ZATHURA_ANNOTATION_TEXT_STATE_MARKED,
|
||||||
|
ZATHURA_ANNOTATION_TEXT_STATE_UNMARKED,
|
||||||
|
ZATHURA_ANNOTATION_TEXT_STATE_ACCEPTED,
|
||||||
|
ZATHURA_ANNOTATION_TEXT_STATE_REJECTED,
|
||||||
|
ZATHURA_ANNOTATION_TEXT_STATE_CANCELLED,
|
||||||
|
ZATHURA_ANNOTATION_TEXT_STATE_COMPLETED
|
||||||
|
} zathura_annotation_text_state_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new annotation
|
* Creates a new annotation
|
||||||
*
|
*
|
||||||
|
@ -240,6 +264,70 @@ zathura_annotation_popup_t* zathura_annotation_markup_get_popup(zathura_annotati
|
||||||
*/
|
*/
|
||||||
void zathura_annotation_markup_set_popup(zathura_annotation_t* annotation, zathura_annotation_popup_t* popup);
|
void zathura_annotation_markup_set_popup(zathura_annotation_t* annotation, zathura_annotation_popup_t* popup);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the creation date of the annotation
|
||||||
|
*
|
||||||
|
* @param annotation The annotation
|
||||||
|
* @retun The creation date
|
||||||
|
*/
|
||||||
|
time_t zathura_annotation_markup_get_creation_date(zathura_annotation_t* annotation);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the creation date of the annotation
|
||||||
|
*
|
||||||
|
* @param annotation The annotation
|
||||||
|
* @param creation_date The creation date
|
||||||
|
*/
|
||||||
|
void zathura_annotation_markup_set_creation_date(zathura_annotation_t* annotation, time_t creation_date);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the defined icon of the text annotation
|
||||||
|
*
|
||||||
|
* @param annotation The annotation
|
||||||
|
* @return The set icon of the text annotation
|
||||||
|
*/
|
||||||
|
zathura_annotation_text_icon_t zathura_annotation_text_get_icon(zathura_annotation_t* annotation);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the icon of the text annotation
|
||||||
|
*
|
||||||
|
* @param annotation The annotation
|
||||||
|
* @param icon The icon of the text annotation
|
||||||
|
*/
|
||||||
|
void zathura_annotation_text_set_icon(zathura_annotation_t* annotation, zathura_annotation_text_icon_t icon);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the state of the text annotation
|
||||||
|
*
|
||||||
|
* @param annotation The annotation
|
||||||
|
* @return The state of the text annotation
|
||||||
|
*/
|
||||||
|
zathura_annotation_text_state_t zathura_annotation_text_get_state(zathura_annotation_t* annotation);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the state of the text annotation
|
||||||
|
*
|
||||||
|
* @param annotation The annotation
|
||||||
|
* @param state The new state of the text annotation
|
||||||
|
*/
|
||||||
|
void zathura_annotation_text_set_state(zathura_annotation_t* annotation, zathura_annotation_text_state_t state);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether the text annotation is open or not
|
||||||
|
*
|
||||||
|
* @param annotation The annotation
|
||||||
|
* @return true if the annotation is open otherwise false
|
||||||
|
*/
|
||||||
|
bool zathura_annotation_text_get_open_status(zathura_annotation_t* annotation);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the text annotation open status
|
||||||
|
*
|
||||||
|
* @param annotation The annotation
|
||||||
|
* @param opened The new open status
|
||||||
|
*/
|
||||||
|
void zathura_annotation_text_set_open_status(zathura_annotation_t* annotation, bool opened);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new annotation popup
|
* Creates a new annotation popup
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue