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