diff options
author | Aleks Kissinger <aleks0@gmail.com> | 2012-05-22 13:56:51 +0100 |
---|---|---|
committer | Aleks Kissinger <aleks0@gmail.com> | 2012-05-22 13:56:51 +0100 |
commit | 9a36706cc03ae3781ce8bdc02f10289a24408b58 (patch) | |
tree | 50f3278842b07dcf5b58ee7f881f0d05f110b4b4 /tikzit/src/gtk | |
parent | 22340a8bf97abe934e107069c5ec1dc1d6b97507 (diff) |
made size settable
Diffstat (limited to 'tikzit/src/gtk')
-rw-r--r-- | tikzit/src/gtk/PreviewRenderer.h | 6 | ||||
-rw-r--r-- | 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<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]]; |