summaryrefslogtreecommitdiff
path: root/tikzit/src/gtk/PreviewRenderer.m
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2012-05-22 13:56:51 +0100
committerAleks Kissinger <aleks0@gmail.com>2012-05-22 13:56:51 +0100
commit9a36706cc03ae3781ce8bdc02f10289a24408b58 (patch)
tree50f3278842b07dcf5b58ee7f881f0d05f110b4b4 /tikzit/src/gtk/PreviewRenderer.m
parent22340a8bf97abe934e107069c5ec1dc1d6b97507 (diff)
made size settable
Diffstat (limited to 'tikzit/src/gtk/PreviewRenderer.m')
-rw-r--r--tikzit/src/gtk/PreviewRenderer.m19
1 files changed, 15 insertions, 4 deletions
diff --git a/tikzit/src/gtk/PreviewRenderer.m b/tikzit/src/gtk/PreviewRenderer.m
index d334832..d6d368d 100644
--- a/tikzit/src/gtk/PreviewRenderer.m
+++ b/tikzit/src/gtk/PreviewRenderer.m
@@ -24,7 +24,8 @@
@implementation PreviewRenderer
-@synthesize preambles,document;
+@synthesize preambles, document;
+@synthesize width, height;
- (id) init {
[self release];
@@ -41,6 +42,8 @@
preambles = [p retain];
pdfDocument = NULL;
pdfPage = NULL;
+ width = 150.0;
+ height = 150.0;
}
return self;
@@ -197,7 +200,7 @@
return pdfPage ? YES : NO;
}
-- (double) width {
+/*- (double) width {
double w = 0.0;
if (pdfPage)
poppler_page_get_size(pdfPage, &w, NULL);
@@ -209,11 +212,19 @@
if (pdfPage)
poppler_page_get_size(pdfPage, NULL, &h);
return h;
-}
+}*/
- (void) renderWithContext:(id<RenderContext>)c onSurface:(id<Surface>)surface {
- if (document != nil) {
+ if (document != nil && pdfPage) {
CairoRenderContext *context = (CairoRenderContext*)c;
+
+ double w = 0.0;
+ double h = 0.0;
+ poppler_page_get_size(pdfPage, &w, &h);
+
+ double scale = h / [self height];
+ if (w * scale > [self width]) scale = w / [self width];
+ [[surface transformer] setScale:scale];
[context saveState];
[context applyTransform:[surface transformer]];