Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/show_rulers.py
diff options
context:
space:
mode:
authorWalter Bender <walter@walter-laptop.(none)>2009-10-19 18:34:08 (GMT)
committer Walter Bender <walter@walter-laptop.(none)>2009-10-19 18:34:08 (GMT)
commita9980f600f9388ec9b76e3983915ae4d23daea05 (patch)
treec5a725670969e5ebe1ca7a325cb9b93061542c62 /show_rulers.py
parent45e6a5e0fb8dc31c040e3d838063aaebd96038a0 (diff)
nw toolbars, dpi support
Diffstat (limited to 'show_rulers.py')
-rw-r--r--show_rulers.py121
1 files changed, 57 insertions, 64 deletions
diff --git a/show_rulers.py b/show_rulers.py
index 126ad78..1cb7d34 100644
--- a/show_rulers.py
+++ b/show_rulers.py
@@ -17,70 +17,75 @@
# along with Ruler. If not, see <http://www.gnu.org/licenses/>
from __future__ import division
-import paper
import cairo
from util import mm
+from util import set_background_color
+from util import write
+
import os.path
-def subactivity_init(api):
- api.declare_subactivity('ruler', ScreenOfRulers())
+class ScreenOfRulers():
+ def __init__(self,font,font_bold,w,h):
+ self.font = font
+ self.font_bold = font_bold
+ self.w = w
+ self.h = h
-class ScreenOfRulers(paper.Drawing):
- def draw(self,c):
- self.set_background_color('white')
+ def draw(self,c,dpi):
+ set_background_color(c,self.w,self.h)
c.set_antialias(cairo.ANTIALIAS_GRAY)
- self.draw_ruler_pair(c,mm(20))
+ self.draw_ruler_pair(c,dpi,mm(dpi,20))
# only calculate offsets if on an OLPC XO-1
if os.path.exists('/sys/power/olpc-pm'):
- offset_of_xo_side_from_screen = mm(-38.5) #XXX needs checking
- c.move_to(offset_of_xo_side_from_screen, mm(65))
- self.draw_cm_ruler(c,180)
+ offset_of_xo_side_from_screen = mm(dpi,-38.5) #XXX needs checking
+ c.move_to(offset_of_xo_side_from_screen, mm(dpi,65))
+ self.draw_cm_ruler(c,dpi,180)
- offset_of_molding_from_screen = mm(-0.4) #XXX +- 0.2 ??
- c.move_to(offset_of_molding_from_screen, mm(100))
- self.draw_cm_ruler(c,150)
+ offset_of_molding_from_screen = mm(dpi,-0.4) #XXX +- 0.2 ??
+ c.move_to(offset_of_molding_from_screen, mm(dpi,100))
+ self.draw_cm_ruler(c,dpi,150)
else:
- offset_of_xo_side_from_screen = mm(0)
- c.move_to(offset_of_xo_side_from_screen, mm(65))
- self.draw_cm_ruler(c,180)
+ offset_of_xo_side_from_screen = mm(dpi,0)
+ c.move_to(offset_of_xo_side_from_screen, mm(dpi,65))
+ self.draw_cm_ruler(c,dpi,180)
- offset_of_molding_from_screen = mm(0)
- c.move_to(offset_of_molding_from_screen, mm(100))
- self.draw_cm_ruler(c,150)
+ offset_of_molding_from_screen = mm(dpi,0)
+ c.move_to(offset_of_molding_from_screen, mm(dpi,100))
+ self.draw_cm_ruler(c,dpi,150)
- def draw_ruler_pair(self,c,y):
+ def draw_ruler_pair(self,c,dpi,y):
- c.move_to(mm(10),y)
- self.connect_rulers(c)
+ c.move_to(mm(dpi,10),y)
+ self.connect_rulers(c,dpi)
- c.move_to(mm(10),y)
- self.draw_cm_ruler(c)
+ c.move_to(mm(dpi,10),y)
+ self.draw_cm_ruler(c,dpi)
- c.move_to(mm(10),y+mm(10))
- self.draw_mm_ruler(c)
+ c.move_to(mm(dpi,10),y+mm(dpi,10))
+ self.draw_mm_ruler(c,dpi)
- def connect_rulers(self,c):
+ def connect_rulers(self,c,dpi):
c.save()
c.set_line_cap(cairo.LINE_CAP_SQUARE)
c.translate(*c.get_current_point())
c.set_line_width(1)
for xm in range(0,130+1,10):
- c.move_to(mm(xm),0)
- c.rel_line_to(0,mm(10))
+ c.move_to(mm(dpi,xm),0)
+ c.rel_line_to(0,mm(dpi,10))
c.stroke()
c.set_line_width(2)
c.move_to(0,0)
- c.rel_line_to(0,mm(10))
+ c.rel_line_to(0,mm(dpi,10))
c.stroke()
c.restore()
- def draw_cm_ruler(self,c,width=130):
+ def draw_cm_ruler(self,c,dpi,width=130):
c.save()
c.set_line_cap(cairo.LINE_CAP_SQUARE)
@@ -88,29 +93,23 @@ class ScreenOfRulers(paper.Drawing):
c.set_line_width(5)
c.move_to(0,0)
- c.line_to(mm(width),0)
- for x in [mm(xm) for xm in range(0,width+1,10)]:
+ c.line_to(mm(dpi,width),0)
+ for x in [mm(dpi,xm) for xm in range(0,width+1,10)]:
c.move_to(x,0)
- c.rel_line_to(0,mm(-3))
+ c.rel_line_to(0,mm(dpi,-3))
c.stroke()
- self.set_font('helvetica bold 12')
- self.set_fontsize(mm(2.5))
-
- for x,xm in [(mm(xm),xm) for xm in range(0,width+1,10)]:
+ for x,xm in [(mm(dpi,xm),xm) for xm in range(0,width+1,10)]:
n = xm/10
- c.move_to(x,mm(-4))
- self.write("%d" % n,centered=True)
+ c.move_to(x,mm(dpi,-4))
+ write(c,"%d" % n,self.font_bold,mm(dpi,2.5),centered=True)
- self.set_font('helvetica 12')
- self.set_fontsize(mm(2))
-
- c.move_to(mm(1.5),mm(-4))
- self.write("cm")
+ c.move_to(mm(dpi,1.5),mm(dpi,-4))
+ write(c,"cm",self.font_bold,mm(dpi,2))
c.restore()
- def draw_mm_ruler(self,c,width=130):
+ def draw_mm_ruler(self,c,dpi,width=130):
c.save()
c.set_line_cap(cairo.LINE_CAP_SQUARE)
@@ -118,34 +117,28 @@ class ScreenOfRulers(paper.Drawing):
c.move_to(0,0)
c.set_line_width(4)
- c.line_to(mm(width),0)
- for x in [mm(xm) for xm in range(0,width+1,10)]:
+ c.line_to(mm(dpi,width),0)
+ for x in [mm(dpi,xm) for xm in range(0,width+1,10)]:
c.move_to(x,0)
- c.rel_line_to(0,mm(3))
+ c.rel_line_to(0,mm(dpi,3))
c.stroke()
c.set_line_width(3)
- for x in [mm(xm) for xm in range(0,width,5)]:
+ for x in [mm(dpi,xm) for xm in range(0,width,5)]:
c.move_to(x,0)
- c.rel_line_to(0,mm(2.2))
- for x in [mm(xm) for xm in range(0,width,1)]:
+ c.rel_line_to(0,mm(dpi,2.2))
+ for x in [mm(dpi,xm) for xm in range(0,width,1)]:
c.move_to(x,0)
- c.rel_line_to(0,mm(2))
+ c.rel_line_to(0,mm(dpi,2))
c.stroke()
- self.set_font('helvetica 12')
- self.set_fontsize(mm(2))
-
- base = mm(7)
- for x,xm in [(mm(xm),xm) for xm in range(0,width+1,10)]:
+ base = mm(dpi,7)
+ for x,xm in [(mm(dpi,xm),xm) for xm in range(0,width+1,10)]:
c.move_to(x,base)
- self.write("%d" % xm,centered=True)
+ write(c,"%d" % xm,self.font,mm(dpi,2),centered=True)
- self.set_font('helvetica 12')
- self.set_fontsize(mm(1.5))
-
- c.move_to(mm(1.2),base)
- self.write("mm")
+ c.move_to(mm(dpi,1.2),base)
+ write(c,"mm",self.font,mm(dpi,1.5))
c.restore()