Sophie

Sophie

distrib > Fedora > 16 > x86_64 > media > updates-src > by-pkgid > 3477bda03bba5a3e97b4fefc612ccef0 > files > 4

gambas2-2.24.0-1.fc16.src.rpm

diff -up gambas2-2.24.0/gb.pdf/configure.ac.poppler20 gambas2-2.24.0/gb.pdf/configure.ac
--- gambas2-2.24.0/gb.pdf/configure.ac.poppler20	2012-05-25 16:02:27.861966198 -0400
+++ gambas2-2.24.0/gb.pdf/configure.ac	2012-05-25 16:02:45.071826434 -0400
@@ -25,6 +25,8 @@ if test "$have_poppler" = "yes"; then
   AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_11_3, $((1-$?)), Poppler version >= 0.11.3)
   pkg-config --atleast-version=0.17.0 poppler
   AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_17, $((1-$?)), Poppler version >= 0.17)
+  pkg-config --atleast-version=0.20.0 poppler
+  AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_20, $((1-$?)), Poppler version >= 0.20)
 fi
 
 AC_OUTPUT( \
diff -up gambas2-2.24.0/gb.pdf/src/CPdfDocument.cpp.poppler20 gambas2-2.24.0/gb.pdf/src/CPdfDocument.cpp
--- gambas2-2.24.0/gb.pdf/src/CPdfDocument.cpp.poppler20	2012-05-25 16:03:41.876365120 -0400
+++ gambas2-2.24.0/gb.pdf/src/CPdfDocument.cpp	2012-05-25 16:06:49.894838232 -0400
@@ -406,8 +406,12 @@ int32_t open_document (void *_object, ch
 
 	white[0] = 0xFF; white[1] = 0xFF; white[2] = 0xFF;
 	THIS->dev=new SplashOutputDev(splashModeRGB8, 3, gFalse, white);
-		
+
+	#if POPPLER_VERSION_0_20
+	THIS->dev->startDoc(THIS->doc);
+	#else		
 	THIS->dev->startDoc(THIS->doc->getXRef ());
+	#endif
 
 	outline=THIS->doc->getOutline();
 	if (outline) THIS->index=outline->getItems();
@@ -833,6 +837,14 @@ static uint32_t *get_page_data(CPDFDOCUM
 
 	if ( (w<0) || (h<0) ) return NULL;
 
+	#if POPPLER_VERSION_0_20
+	THIS->page->displaySlice(THIS->dev,72.0*scale,72.0*scale,
+			   rotation,
+			   gFalse,
+			   gTrue,
+			   x,y,w,h,
+			   gFalse);
+	#else
 	THIS->page->displaySlice(THIS->dev,72.0*scale,72.0*scale,
 			   rotation,
 			   gFalse,
@@ -840,6 +852,7 @@ static uint32_t *get_page_data(CPDFDOCUM
 			   x,y,w,h,
 			   gFalse,
 			   THIS->doc->getCatalog ());
+	#endif
 
 	map=THIS->dev->getBitmap();
 	
@@ -929,9 +942,14 @@ BEGIN_METHOD(PDFPAGE_select, GB_INTEGER
 	w = VARGOPT(W, (int32_t)THIS->page->getMediaWidth());
 	h = VARGOPT(H, (int32_t)THIS->page->getMediaHeight());
 
+	#if POPPLER_VERSION_0_20
+	dev = new TextOutputDev (NULL, gTrue, 0, gFalse, gFalse);
+	gfx = THIS->page->createGfx(dev,72.0,72.0,0,gFalse,gTrue,-1, -1, -1, -1, gFalse, NULL, NULL);
+	#else
 	dev = new TextOutputDev (NULL, gTrue, gFalse, gFalse);
 	gfx = THIS->page->createGfx(dev,72.0,72.0,0,gFalse,gTrue,-1, -1, -1, -1, \
                                 gFalse,THIS->doc->getCatalog (),NULL, NULL, NULL, NULL);
+	#endif
 	
 	THIS->page->display(gfx);
 	dev->endPage();
@@ -960,7 +978,9 @@ END_METHOD
 
 void aux_fill_links(void *_object)
 {
-	#if POPPLER_VERSION_0_17
+	#if POPPLER_VERSION_0_20
+	THIS->links = new Links (THIS->page->getAnnots ());
+	#elif POPPLER_VERSION_0_17
 	THIS->links = new Links (THIS->page->getAnnots (THIS->doc->getCatalog()));
 	#else
 	Object obj;
@@ -1200,12 +1220,21 @@ BEGIN_METHOD (PDFPAGE_find,GB_STRING Tex
 
 	if (!MISSING(Sensitive)) sensitive=VARG(Sensitive);
 
+	#if POPPLER_VERSION_0_20
+	textdev = new TextOutputDev (NULL, true, 0, false, false);
+	THIS->page->display (textdev, 72, 72, 0, false, false, false);
+	#else
 	textdev = new TextOutputDev (NULL, true, false, false);
 	THIS->page->display (textdev, 72, 72, 0, false, false, false, THIS->doc->getCatalog());
+	#endif
 
 	if (THIS->Found) { GB.FreeArray(POINTER(&THIS->Found)); THIS->Found=NULL; }
 
+	#if POPPLER_VERSION_0_20
+	while (textdev->findText (block,nlen,gFalse,gTrue,gTrue,gFalse,sensitive,gFalse,gFalse,&x0,&y0,&x1,&y1))
+	#else
 	while (textdev->findText (block,nlen,gFalse,gTrue,gTrue,gFalse,sensitive,gFalse,&x0,&y0,&x1,&y1))
+	#endif
 	{
 		if (!THIS->Found) {
 			GB.NewArray(POINTER(&THIS->Found),sizeof(FoundRect),1);