From 9a36706cc03ae3781ce8bdc02f10289a24408b58 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Tue, 22 May 2012 13:56:51 +0100 Subject: made size settable --- tikzit/src/gtk/PreviewRenderer.h | 6 ++++-- tikzit/src/gtk/PreviewRenderer.m | 19 +++++++++++++++---- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/tikzit/src/gtk/PreviewRenderer.h b/tikzit/src/gtk/PreviewRenderer.h index d691722..c9e89a7 100644 --- a/tikzit/src/gtk/PreviewRenderer.h +++ b/tikzit/src/gtk/PreviewRenderer.h @@ -30,12 +30,14 @@ TikzDocument *document; PopplerDocument *pdfDocument; PopplerPage *pdfPage; + double width; + double height; } @property (readonly) Preambles *preambles; @property (retain) TikzDocument *document; -@property (readonly) double height; -@property (readonly) double width; +@property (assign) double height; +@property (assign) double width; - (id) initWithPreambles:(Preambles*)p config:(Configuration*)c; 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)c onSurface:(id)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]]; -- cgit v1.2.3