static Eina_Bool _module_init(void) { epdf_init(); return EINA_TRUE; }
/** * @param pdf the pdf widget to initialize * @return Returns no value. * @brief Initialize an pdf widget to default values and callbacks * * Sets the fields and callbacks of @a pdf to their default values. */ int ewl_pdf_init(Ewl_Pdf *pdf) { Ewl_Widget *w; DENTER_FUNCTION(DLEVEL_STABLE); DCHECK_PARAM_PTR_RET(pdf, FALSE); if (!epdf_init()) DRETURN_INT(FALSE, DLEVEL_STABLE); w = EWL_WIDGET(pdf); if (!ewl_widget_init(w)) DRETURN_INT(FALSE, DLEVEL_STABLE); ewl_widget_appearance_set(w, EWL_PDF_TYPE); ewl_widget_inherit(w, EWL_PDF_TYPE); ewl_object_fill_policy_set(EWL_OBJECT(w), EWL_FLAG_FILL_NONE); /* * Append necessary callbacks. */ ewl_callback_append(w, EWL_CALLBACK_CONFIGURE, ewl_pdf_configure_cb, NULL); ewl_callback_append(w, EWL_CALLBACK_REVEAL, ewl_pdf_reveal_cb, NULL); ewl_callback_append(w, EWL_CALLBACK_OBSCURE, ewl_pdf_obscure_cb, NULL); ewl_callback_prepend(w, EWL_CALLBACK_DESTROY, ewl_pdf_destroy_cb, NULL); pdf->filename = NULL; pdf->pdf_document = NULL; pdf->pdf_page = NULL; pdf->pdf_index = NULL; pdf->dirty = 1; pdf->search.o = NULL; pdf->search.text = NULL; pdf->search.list = NULL; pdf->search.page = -1; pdf->search.is_case_sensitive = FALSE; pdf->search.is_circular = FALSE; DRETURN_INT(TRUE, DLEVEL_STABLE); }
int main (int argc, char *argv[]) { Ecore_Evas *ee; Evas *evas; Evas_Object *o; Epdf_Document *document; Epdf_Page *page; int page_number; int width; int height; if (argc < 3) { printf ("\nUsage: %s filename page_number\n\n", argv[0]); return EXIT_FAILURE; } if (!epdf_init ()) { printf ("Epdf can't be initialized\n"); return EXIT_FAILURE; } document = epdf_document_new (argv[1]); if (!document) { printf ("Bad pdf file\n"); goto epdf_shutdown; } sscanf (argv[2], "%d", &page_number); if (page_number >= epdf_document_page_count_get (document)) { printf ("Page number exceeds the page count of the PDF document\n"); goto document_delete; } page = epdf_page_new (document); if (!page) { printf ("Bad page\n"); goto document_delete; } epdf_page_page_set (page, page_number); epdf_page_size_get (page, &width, &height); document_info_print (document, page); if (!ecore_evas_init()) goto page_delete; ee = ecore_evas_new ("software_x11", 0, 0, width, height, NULL); /* these tests can be improved... */ if (!ee) { printf ("Can not find Software X11 engine. Trying DirectDraw engine...\n"); ee = ecore_evas_software_ddraw_new (NULL, 0, 0, width, height); if (!ee) { printf ("Can not find DirectDraw engine...\n"); printf ("Exiting...\n"); goto ecore_evas_shutdown; } } ecore_event_handler_add (ECORE_EVENT_SIGNAL_EXIT, app_signal_exit, NULL); ecore_evas_callback_delete_request_set (ee, app_delete_request); ecore_evas_title_set (ee, "Evas Pdf Test"); ecore_evas_name_class_set (ee, "evas_pdf_test", "test_evas_pdf"); ecore_evas_callback_resize_set (ee, app_resize); ecore_evas_show (ee); evas = ecore_evas_get (ee); o = evas_object_image_add (evas); evas_object_move (o, 0, 0); epdf_page_render (page, o); evas_object_show (o); ecore_main_loop_begin (); epdf_page_delete (page); epdf_document_delete (document); ecore_evas_shutdown (); epdf_shutdown (); return EXIT_SUCCESS; ecore_evas_shutdown: ecore_evas_shutdown (); page_delete: epdf_page_delete (page); document_delete: epdf_document_delete (document); epdf_shutdown: epdf_shutdown (); return EXIT_FAILURE; }