Enlightenment CVS committal

Author  : doursse
Project : e17
Module  : proto

Dir     : e17/proto/epdf/src/lib


Modified Files:
        esmart_pdf.h esmart_pdf.c etk_pdf.h etk_pdf.c ewl_pdf.h 
        ewl_pdf.c 


Log Message:
add next and previous page functions to widgets

===================================================================
RCS file: /cvs/e/e17/proto/epdf/src/lib/esmart_pdf.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- esmart_pdf.h        17 Apr 2006 18:06:10 -0000      1.5
+++ esmart_pdf.h        3 Jun 2006 10:11:38 -0000       1.6
@@ -11,6 +11,7 @@
   Evas_Object          *obj;
   char                 *filename;
   int                   page;
+  int                   page_length;
 
   Epdf_Document        *pdf_document;
   Epdf_Page            *pdf_page;
@@ -34,5 +35,11 @@
 
 void                  esmart_pdf_scale_set (Evas_Object *obj, double hscale, 
double vscale);
 void                  esmart_pdf_scale_get (Evas_Object *obj, double *hscale, 
double *vscale);
+void                  esmart_pdf_page_next (Evas_Object *obj);
+void                  esmart_pdf_page_previous (Evas_Object *obj);
+void                  esmart_pdf_page_page_length_set (Evas_Object *obj, int 
page_length);
+int                   esmart_pdf_page_page_length_get (Evas_Object *obj);
+void                  esmart_pdf_page_page_next (Evas_Object *obj);
+void                  esmart_pdf_page_page_previous (Evas_Object *obj);
 
 #endif /* __ESMART_PDF_H__ */
===================================================================
RCS file: /cvs/e/e17/proto/epdf/src/lib/esmart_pdf.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- esmart_pdf.c        17 Apr 2006 18:06:10 -0000      1.4
+++ esmart_pdf.c        3 Jun 2006 10:11:38 -0000       1.5
@@ -104,6 +104,7 @@
   if (sp->filename) free (sp->filename);
   sp->filename = NULL;
   sp->page = 0;
+  sp->page_length = 10;
 
   sp->pdf_document = NULL;
   sp->pdf_page = NULL;
@@ -190,8 +191,8 @@
       (page == sp->page))
     return;
 
-    sp->page = page;
-    _smart_page_render (obj);
+  sp->page = page;
+  _smart_page_render (obj);
 }
 
 /**
@@ -364,6 +365,84 @@
       if (vscale)
          *vscale = sp->vscale;
   }
+}
+
+void
+esmart_pdf_page_next (Evas_Object *obj)
+{
+  Smart_Pdf *sp;
+  int        page;
+
+  E_SMART_OBJ_GET(sp, obj, E_OBJ_NAME);
+
+  page = sp->page;
+  if (page < (epdf_document_page_count_get(sp->pdf_document) - 1))
+    page++;
+  esmart_pdf_page_set (obj, page);
+}
+
+void
+esmart_pdf_page_previous (Evas_Object *obj)
+{
+  Smart_Pdf *sp;
+  int        page;
+
+  E_SMART_OBJ_GET(sp, obj, E_OBJ_NAME);
+
+  page = sp->page;
+  if (page > 0)
+    page--;
+  esmart_pdf_page_set (obj, page);
+}
+
+void
+esmart_pdf_page_page_length_set (Evas_Object *obj, int page_length)
+{
+  Smart_Pdf *sp;
+
+  E_SMART_OBJ_GET(sp, obj, E_OBJ_NAME);
+
+  if ((page_length <= 0) || (sp->page_length == page_length))
+    return;
+  sp->page_length = page_length;
+}
+
+int
+esmart_pdf_page_page_length_get (Evas_Object *obj)
+{
+  Smart_Pdf *sp;
+
+  E_SMART_OBJ_GET_RETURN(sp, obj, E_OBJ_NAME, 0);
+
+  return sp->page_length;
+}
+
+void
+esmart_pdf_page_page_next (Evas_Object *obj)
+{
+  Smart_Pdf *sp;
+  int        page;
+
+  E_SMART_OBJ_GET(sp, obj, E_OBJ_NAME);
+
+  page = sp->page + sp->page_length;
+  if (page > (epdf_document_page_count_get(sp->pdf_document) - 1))
+    page = epdf_document_page_count_get(sp->pdf_document) - 1;
+  esmart_pdf_page_set (obj, sp->page);
+}
+
+void
+esmart_pdf_page_page_previous (Evas_Object *obj)
+{
+  Smart_Pdf *sp;
+  int        page;
+
+  E_SMART_OBJ_GET(sp, obj, E_OBJ_NAME);
+
+  page = sp->page - sp->page_length;
+  if (page < 0)
+    page = 0;
+  esmart_pdf_page_set (obj, page);
 }
 
 
===================================================================
RCS file: /cvs/e/e17/proto/epdf/src/lib/etk_pdf.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- etk_pdf.h   17 Apr 2006 18:06:10 -0000      1.5
+++ etk_pdf.h   3 Jun 2006 10:11:38 -0000       1.6
@@ -32,6 +32,7 @@
    Evas_Object          *pdf_object;
    char                 *filename;
    int                   page;
+   int                   page_length;
 
    Epdf_Document        *pdf_document;
    Epdf_Page            *pdf_page;
@@ -70,6 +71,12 @@
 
 void                  etk_pdf_scale_set (Etk_Pdf *pdf, double hscale, double 
vscale);
 void                  etk_pdf_scale_get (Etk_Pdf *pdf, double *hscale, double 
*vscale);
+void                  etk_pdf_page_next (Etk_Pdf *pdf);
+void                  etk_pdf_page_previous (Etk_Pdf *pdf);
+void                  etk_pdf_page_page_length_set (Etk_Pdf *pdf, int 
page_length);
+int                   etk_pdf_page_page_length_get (Etk_Pdf *pdf);
+void                  etk_pdf_page_page_next (Etk_Pdf *pdf);
+void                  etk_pdf_page_page_previous (Etk_Pdf *pdf);
 
 /** @} */
 
===================================================================
RCS file: /cvs/e/e17/proto/epdf/src/lib/etk_pdf.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- etk_pdf.c   17 Apr 2006 18:06:10 -0000      1.5
+++ etk_pdf.c   3 Jun 2006 10:11:38 -0000       1.6
@@ -375,6 +375,80 @@
   }
 }
 
+void
+etk_pdf_page_next (Etk_Pdf *pdf)
+{
+  int page;
+
+  if (!pdf)
+    return;
+
+  page = pdf->page + 1;
+  if (page >= epdf_document_page_count_get(pdf->pdf_document))
+    page = epdf_document_page_count_get(pdf->pdf_document) - 1;
+  etk_pdf_page_set (pdf, page);
+}
+
+void
+etk_pdf_page_previous (Etk_Pdf *pdf)
+{
+  int page;
+
+  if (!pdf)
+    return;
+
+  page = pdf->page - 1;
+  if (page < 0)
+    page = 0;
+  etk_pdf_page_set (pdf, page);
+}
+
+void
+etk_pdf_page_page_length_set (Etk_Pdf *pdf, int page_length)
+{
+  if (!pdf || (page_length <= 0) || (pdf->page_length == page_length))
+    return;
+
+  pdf->page_length = page_length;
+}
+
+int
+etk_pdf_page_page_length_get (Etk_Pdf *pdf)
+{
+  if (!pdf)
+    return 0;
+
+  return pdf->page_length;
+}
+
+void
+etk_pdf_page_page_next (Etk_Pdf *pdf)
+{
+  int page;
+
+  if (!pdf)
+    return;
+
+  page = pdf->page + pdf->page_length;
+  if (page >= epdf_document_page_count_get(pdf->pdf_document))
+    page = epdf_document_page_count_get(pdf->pdf_document) - 1;
+  etk_pdf_page_set (pdf, page);
+}
+
+void
+etk_pdf_page_page_previous (Etk_Pdf *pdf)
+{
+  int page;
+
+  if (!pdf)
+    return;
+
+  page = pdf->page - pdf->page_length;
+  if (page < 0)
+    page = 0;
+  etk_pdf_page_set (pdf, page);
+}
+
 /**************************
  *
  * Etk specific functions
@@ -392,6 +466,7 @@
    pdf->pdf_object = NULL;
    pdf->filename = NULL;
    pdf->page = 0;
+   pdf->page_length = 10;
 
    pdf->pdf_document = NULL;
    pdf->pdf_page = NULL;
===================================================================
RCS file: /cvs/e/e17/proto/epdf/src/lib/ewl_pdf.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- ewl_pdf.h   17 Apr 2006 18:06:10 -0000      1.5
+++ ewl_pdf.h   3 Jun 2006 10:11:38 -0000       1.6
@@ -28,6 +28,7 @@
 {
        Ewl_Image             image;
        int                   page;
+       int                   page_length;
 
        Epdf_Document        *pdf_document;
        Epdf_Page            *pdf_page;
@@ -65,6 +66,12 @@
 
 void                  ewl_pdf_scale_set (Ewl_Pdf *pdf, double hscale, double 
vscale);
 void                  ewl_pdf_scale_get (Ewl_Pdf *pdf, double *hscale, double 
*vscale);
+void                  ewl_pdf_page_next (Ewl_Pdf *pdf);
+void                  ewl_pdf_page_previous (Ewl_Pdf *pdf);
+void                  ewl_pdf_page_page_length_set (Ewl_Pdf *pdf, int 
page_length);
+int                   ewl_pdf_page_page_length_get (Ewl_Pdf *pdf);
+void                  ewl_pdf_page_page_next (Ewl_Pdf *pdf);
+void                  ewl_pdf_page_page_previous (Ewl_Pdf *pdf);
 
 /*
  * Internally used callbacks, override at your own risk.
===================================================================
RCS file: /cvs/e/e17/proto/epdf/src/lib/ewl_pdf.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- ewl_pdf.c   27 May 2006 17:32:00 -0000      1.6
+++ ewl_pdf.c   3 Jun 2006 10:11:38 -0000       1.7
@@ -77,6 +77,7 @@
 
        i->path = NULL;
        pdf->page = 0;
+       pdf->page_length = 10;
 
        pdf->pdf_document = NULL;
        pdf->pdf_page = NULL;
@@ -185,6 +186,7 @@
                 DLEAVE_FUNCTION(DLEVEL_STABLE);
 
        pdf->page = page;
+       ewl_callback_call (EWL_WIDGET (pdf), EWL_CALLBACK_REVEAL);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -385,9 +387,10 @@
        DCHECK_TYPE("pdf", pdf, "pdf");
 
        if (!pdf || !pdf->pdf_page || (pdf->orientation == o))
-               return;
+               DLEAVE_FUNCTION(DLEVEL_STABLE);
 
        pdf->orientation = o;
+       ewl_callback_call (EWL_WIDGET (pdf), EWL_CALLBACK_REVEAL);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -400,7 +403,7 @@
        DCHECK_TYPE_RET("pdf", pdf, "pdf", 0);
 
        if (!pdf || !pdf->pdf_page)
-               return EPDF_PAGE_ORIENTATION_PORTRAIT;
+               DRETURN_INT(EPDF_PAGE_ORIENTATION_PORTRAIT, DLEVEL_STABLE);
 
        DRETURN_INT(epdf_page_orientation_get (pdf->pdf_page), DLEVEL_STABLE);
 }
@@ -413,10 +416,11 @@
        DCHECK_TYPE("pdf", pdf, "pdf");
 
        if (!pdf)
-               return;
+               DLEAVE_FUNCTION(DLEVEL_STABLE);
 
        if (hscale != pdf->hscale) pdf->hscale = hscale;
        if (vscale != pdf->vscale) pdf->vscale = vscale;
+       ewl_callback_call (EWL_WIDGET (pdf), EWL_CALLBACK_REVEAL);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -436,6 +440,114 @@
                if (hscale) *hscale = pdf->hscale;
                if (vscale) *vscale = pdf->vscale;
        }
+
+       DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
+
+void
+ewl_pdf_page_next (Ewl_Pdf *pdf)
+{
+       int page;
+
+       DENTER_FUNCTION(DLEVEL_STABLE);
+       DCHECK_PARAM_PTR("pdf", pdf);
+       DCHECK_TYPE("pdf", pdf, "pdf");
+
+       if (!pdf)
+               DLEAVE_FUNCTION(DLEVEL_STABLE);
+
+       page = pdf->page;
+       if (page < (epdf_document_page_count_get(pdf->pdf_document) - 1))
+               page++;
+       ewl_pdf_page_set (pdf, page);
+
+       DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
+
+void
+ewl_pdf_page_previous (Ewl_Pdf *pdf)
+{
+       int page;
+
+       DENTER_FUNCTION(DLEVEL_STABLE);
+       DCHECK_PARAM_PTR("pdf", pdf);
+       DCHECK_TYPE("pdf", pdf, "pdf");
+
+       if (!pdf)
+               DLEAVE_FUNCTION(DLEVEL_STABLE);
+
+       page = pdf->page;
+       if (page > 0)
+               page--;
+       ewl_pdf_page_set (pdf, page);
+
+       DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
+
+void
+ewl_pdf_page_page_length_set (Ewl_Pdf *pdf, int page_length)
+{
+       DENTER_FUNCTION(DLEVEL_STABLE);
+       DCHECK_PARAM_PTR("pdf", pdf);
+       DCHECK_TYPE("pdf", pdf, "pdf");
+
+       if (!pdf || (page_length <= 0) || (pdf->page_length == page_length))
+               DLEAVE_FUNCTION(DLEVEL_STABLE);
+
+       pdf->page_length = page_length;
+
+       DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
+
+int
+ewl_pdf_page_page_length_get (Ewl_Pdf *pdf)
+{
+       DENTER_FUNCTION(DLEVEL_STABLE);
+       DCHECK_PARAM_PTR_RET("pdf", pdf, 0);
+       DCHECK_TYPE_RET("pdf", pdf, "pdf", 0);
+
+       if (!pdf)
+               DRETURN_INT(0, DLEVEL_STABLE);
+
+       DRETURN_INT(pdf->page_length, DLEVEL_STABLE);
+}
+
+void
+ewl_pdf_page_page_next (Ewl_Pdf *pdf)
+{
+       int page;
+
+       DENTER_FUNCTION(DLEVEL_STABLE);
+       DCHECK_PARAM_PTR("pdf", pdf);
+       DCHECK_TYPE("pdf", pdf, "pdf");
+
+       if (!pdf)
+               DLEAVE_FUNCTION(DLEVEL_STABLE);
+
+       page = pdf->page + pdf->page_length;
+       if (page >= epdf_document_page_count_get(pdf->pdf_document))
+               page = epdf_document_page_count_get(pdf->pdf_document) - 1;
+       ewl_pdf_page_set (pdf, page);
+
+       DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
+
+void
+ewl_pdf_page_page_previous (Ewl_Pdf *pdf)
+{
+       int page;
+
+       DENTER_FUNCTION(DLEVEL_STABLE);
+       DCHECK_PARAM_PTR("pdf", pdf);
+       DCHECK_TYPE("pdf", pdf, "pdf");
+
+       if (!pdf)
+               DLEAVE_FUNCTION(DLEVEL_STABLE);
+
+       page = pdf->page - pdf->page_length;
+       if (page < 0)
+               page = 0;
+       ewl_pdf_page_set (pdf, page);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }




_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to