1
from ConfigWidget import ConfigWidget
2
from utils.datatypes import *
6
class ConfigDPI(ConfigWidget):
8
def __init__(self, name, getter, setter, caller):
10
ConfigWidget.__init__(self, name, getter, setter, caller)
12
self._register_property("value", TYPE_INT, self._setp_value,
13
self._getp, "", doc = "DPI value")
16
def get_widgets(self):
18
vbox = gtk.VBox(spacing = 3)
21
hbox = gtk.HBox(spacing = 6)
24
lbl = gtk.Label("dpi:")
25
hbox.pack_start(lbl, False, False)
27
spin = gtk.SpinButton()
29
spin.set_range(10, 500)
30
spin.set_increments(1, 10)
32
spin.connect("value-changed", self.__on_change)
33
hbox.pack_start(spin, False, False)
35
self.__line = gtk.Viewport()
37
self.__line.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("grey80"))
38
hbox.pack_start(self.__line, False, False)
40
lbl = gtk.Label("<-- 5 cm / 1.97\" -->")
42
lbl.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("black"))
45
self.__label = gtk.Label("")
47
vbox.add(self.__label)
54
def __on_change(self, src, *args):
56
value = int(src.get_value())
57
self.__set_line(value)
58
self._set_config(value)
61
def __set_line(self, dpi):
63
width = int(5 * (1 / 2.54) * dpi)
64
self.__line.set_size_request(width, 10)
67
def _set_enabled(self, value): self.__box.set_sensitive(value)
68
def _set_label(self, value): self.__label.set_markup(value)
72
def _setp_value(self, key, value):
74
self.__spin.set_value(value)
75
self._setp(key, value)