PROP_0,
PROP_LABEL,
PROP_OPACITY,
+ PROP_HAS_POPUP,
PROP_RECTANGLE,
PROP_IS_OPEN
};
typedef struct {
gchar *label;
gdouble opacity;
+ gboolean has_popup;
gboolean is_open;
EvRectangle *rectangle;
} EvAnnotationMarkupProps;
G_MAXDOUBLE,
0,
G_PARAM_READWRITE));
+ g_object_interface_install_property (iface,
+ g_param_spec_boolean ("has_popup",
+ "Has popup",
+ "Whether the markup annotation has "
+ "a popup window associated",
+ TRUE,
+ G_PARAM_READWRITE));
g_object_interface_install_property (iface,
g_param_spec_boxed ("rectangle",
"Rectangle",
case PROP_OPACITY:
props->opacity = g_value_get_double (value);
break;
+ case PROP_HAS_POPUP:
+ props->has_popup = g_value_get_boolean (value);
+ break;
case PROP_RECTANGLE:
ev_rectangle_free (props->rectangle);
props->rectangle = g_value_dup_boxed (value);
case PROP_OPACITY:
g_value_set_double (value, props->opacity);
break;
+ case PROP_HAS_POPUP:
+ g_value_set_boolean (value, props->has_popup);
+ break;
case PROP_RECTANGLE:
g_value_set_boxed (value, props->rectangle);
break;
g_object_class_override_property (klass, PROP_LABEL, "label");
g_object_class_override_property (klass, PROP_OPACITY, "opacity");
+ g_object_class_override_property (klass, PROP_HAS_POPUP, "has_popup");
g_object_class_override_property (klass, PROP_RECTANGLE, "rectangle");
g_object_class_override_property (klass, PROP_IS_OPEN, "is_open");
}
g_object_set (G_OBJECT (markup), "opacity", opacity, NULL);
}
+gboolean
+ev_annotation_markup_has_popup (EvAnnotationMarkup *markup)
+{
+ gboolean retval;
+
+ g_return_val_if_fail (EV_IS_ANNOTATION_MARKUP (markup), FALSE);
+
+ g_object_get (G_OBJECT (markup), "has_popup", &retval, NULL);
+
+ return retval;
+}
+
void
ev_annotation_markup_get_rectangle (EvAnnotationMarkup *markup,
EvRectangle *ev_rect)
{
}
-/* Annotation Mapping stuff */
-static void
-ev_annotation_mapping_free_foreach (EvAnnotationMapping *mapping)
-{
- g_object_unref (mapping->annotation);
- g_free (mapping);
-}
-
-void
-ev_annotation_mapping_free (GList *annotation_mapping)
-{
- if (!annotation_mapping)
- return;
-
- g_list_foreach (annotation_mapping, (GFunc) ev_annotation_mapping_free_foreach, NULL);
- g_list_free (annotation_mapping);
-}
-
-EvAnnotation *
-ev_annotation_mapping_find (GList *annotation_mapping,
- gdouble x,
- gdouble y)
-{
- GList *list;
-
- for (list = annotation_mapping; list; list = list->next) {
- EvAnnotationMapping *mapping = list->data;
-
- if ((x >= mapping->x1) &&
- (y >= mapping->y1) &&
- (x <= mapping->x2) &&
- (y <= mapping->y2)) {
- return mapping->annotation;
- }
- }
-
- return NULL;
-}
-
-void
-ev_annotation_mapping_get_area (GList *annotation_mapping,
- EvAnnotation *annotation,
- EvRectangle *area)
-{
- GList *list;
-
- for (list = annotation_mapping; list; list = list->next) {
- EvAnnotationMapping *mapping = list->data;
-
- if (mapping->annotation == annotation) {
- area->x1 = mapping->x1;
- area->y1 = mapping->y1;
- area->x2 = mapping->x2;
- area->y2 = mapping->y2;
-
- break;
- }
- }
-}