]> www.fi.muni.cz Git - evince.git/blobdiff - libdocument/ev-document-annotations.c
[dualscreen] fix crash on ctrl+w and fix control window closing
[evince.git] / libdocument / ev-document-annotations.c
index f42ae7d5de6144b1ca400d9483c89aabaf0e0715..620d117e2102231ed4c98b9fd70aa9b7ac4c0cdf 100644 (file)
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 #include "ev-document-annotations.h"
 
-EV_DEFINE_INTERFACE (EvDocumentAnnotations, ev_document_annotations, 0)
+G_DEFINE_INTERFACE (EvDocumentAnnotations, ev_document_annotations, 0)
 
 static void
-ev_document_annotations_class_init (EvDocumentAnnotationsIface *klass)
+ev_document_annotations_default_init (EvDocumentAnnotationsInterface *klass)
 {
 }
 
-GList *
+EvMappingList *
 ev_document_annotations_get_annotations (EvDocumentAnnotations *document_annots,
                                         EvPage                *page)
 {
-       EvDocumentAnnotationsIface *iface = EV_DOCUMENT_ANNOTATIONS_GET_IFACE (document_annots);
+       EvDocumentAnnotationsInterface *iface = EV_DOCUMENT_ANNOTATIONS_GET_IFACE (document_annots);
 
        return iface->get_annotations (document_annots, page);
 }
 
+gboolean
+ev_document_annotations_document_is_modified (EvDocumentAnnotations *document_annots)
+{
+       EvDocumentAnnotationsInterface *iface = EV_DOCUMENT_ANNOTATIONS_GET_IFACE (document_annots);
+
+       return (iface->document_is_modified) ? iface->document_is_modified (document_annots) : FALSE;
+}
+
 void
-ev_document_annotations_annotation_set_contents (EvDocumentAnnotations *document_annots,
-                                                EvAnnotation          *annot,
-                                                const gchar           *contents)
+ev_document_annotations_save_annotation (EvDocumentAnnotations *document_annots,
+                                        EvAnnotation          *annot,
+                                        EvAnnotationsSaveMask  mask)
+{
+       EvDocumentAnnotationsInterface *iface = EV_DOCUMENT_ANNOTATIONS_GET_IFACE (document_annots);
+
+       iface->save_annotation (document_annots, annot, mask);
+}
+
+void
+ev_document_annotations_add_annotation (EvDocumentAnnotations *document_annots,
+                                       EvAnnotation          *annot,
+                                       EvRectangle           *rect)
+{
+       EvDocumentAnnotationsInterface *iface = EV_DOCUMENT_ANNOTATIONS_GET_IFACE (document_annots);
+
+       if (iface->add_annotation)
+               iface->add_annotation (document_annots, annot, rect);
+}
+
+gboolean
+ev_document_annotations_can_add_annotation (EvDocumentAnnotations *document_annots)
 {
-       EvDocumentAnnotationsIface *iface = EV_DOCUMENT_ANNOTATIONS_GET_IFACE (document_annots);
+       EvDocumentAnnotationsInterface *iface = EV_DOCUMENT_ANNOTATIONS_GET_IFACE (document_annots);
 
-       iface->annotation_set_contents (document_annots, annot, contents);
+       return iface->add_annotation != NULL;
 }