summaryrefslogtreecommitdiff
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
parent22340a8bf97abe934e107069c5ec1dc1d6b97507 (diff)
made size settable
-rw-r--r--tikzit/src/gtk/PreviewRenderer.h6
-rw-r--r--tikzit/src/gtk/PreviewRenderer.m19
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]];