diff options
author | Walter Bender <walter.bender@gmail.com> | 2012-02-10 21:11:07 (GMT) |
---|---|---|
committer | Walter Bender <walter.bender@gmail.com> | 2012-02-10 21:11:07 (GMT) |
commit | 81acff08c7fcb54f84c6c3868d8e5cb90f327ecd (patch) | |
tree | 0a2f2f1b8c93a4fd07293c5e43ca449325f34017 | |
parent | 14ce8e782d1ee958bdac6e78fd1576aa4d2d2862 (diff) |
calculate dpi
-rw-r--r-- | RulerActivity.py | 23 | ||||
-rw-r--r-- | util.py | 8 |
2 files changed, 7 insertions, 24 deletions
diff --git a/RulerActivity.py b/RulerActivity.py index f536c09..b3b012b 100644 --- a/RulerActivity.py +++ b/RulerActivity.py @@ -55,7 +55,7 @@ _logger = logging.getLogger("ruler-activity") from gettext import gettext as _ -from util import get_hardware +from util import get_hardware, calc_dpi import show_rulers import show_grids import show_checkers @@ -70,7 +70,7 @@ class MyCanvas(gtk.DrawingArea): self._draw_ruler = False self._object = None self.connect('expose-event', self.__expose_event_cb) - self.dpi = 200 + self._dpi = 96 def __expose_event_cb(self, drawing_area, event): cr = self.window.cairo_create() @@ -120,21 +120,8 @@ class RulerActivity(activity.Activity): width = gtk.gdk.screen_width() height = gtk.gdk.screen_height() - GRID_CELL_SIZE - # Read the dpi from the Journal - if get_hardware()[0:2] == 'xo': - if width == 1024: - self._canvas.set_dpi(160) # OLPC XO 3.0 - else: - self._canvas.set_dpi(200) # other OLPC XO - self.known_dpi = True - else: - self.known_dpi = False - try: - dpi = self.metadata['dpi'] - _logger.debug("Read dpi: " + str(dpi)) - self._canvas.set_dpi(int(dpi)) - except KeyError: - self._canvas.set_dpi(96) # Just a guess + dpi, self.known_dpi = calc_dpi() + self._canvas.set_dpi(dpi) # Create instances of our graphics self._r = show_rulers.ScreenOfRulers(font, font_bold, width, height) @@ -194,10 +181,10 @@ class RulerActivity(activity.Activity): toolbar_box.toolbar.insert(self.checker, -1) if not self.known_dpi: + print self.known_dpi separator = gtk.SeparatorToolItem() separator.show() toolbar_box.toolbar.insert(separator, -1) - dpi = self._canvas.get_dpi() self._dpi_spin_adj = gtk.Adjustment(dpi, 72, 200, 2, 32, 0) self._dpi_spin = gtk.SpinButton(self._dpi_spin_adj, 0, 0) @@ -78,10 +78,6 @@ def dimensions_mm(dpi, w, h): return int(w * 25.40 / dpi), int(h * 25.40 / dpi) -def calc_dpmm(): - return 1.0*gtk.gdk.screen_width()/gtk.gdk.screen_width_mm() - - def calc_dpi(): '''Looking for 'dimensions' line in xdpyinfo dimensions: 1280x800 pixels (339x212 millimeters)''' @@ -90,10 +86,10 @@ def calc_dpi(): strings = output[find(output, 'dimensions:'):].split() w = int(strings[1].split('x')[0]) # e.g., 1280x800 mm = int(strings[3][1:].split('x')[0]) # e.g., (339x212) - return int(w * 25.4 / w) + return int((w * 25.4 / mm) + 0.5), True else: # just in case the above fails - return 96 + return 96, False # # Cairo-related utilities |