~gdesklets-desklet-team/gdesklets/0.36

« back to all changes in this revision

Viewing changes to config/ConfigDPI.py

  • Committer: Robert Pastierovic
  • Date: 2007-10-07 10:08:42 UTC
  • Revision ID: pastierovic@gmail.com-20071007100842-fdvp2vzmqgh1j87k
merged 0.3x branch and basic documentation and some other changes

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from ConfigWidget import ConfigWidget
 
2
from utils.datatypes import *
 
3
 
 
4
import gtk
 
5
 
 
6
class ConfigDPI(ConfigWidget):
 
7
 
 
8
    def __init__(self, name, getter, setter, caller):
 
9
 
 
10
        ConfigWidget.__init__(self, name, getter, setter, caller)
 
11
 
 
12
        self._register_property("value", TYPE_INT, self._setp_value,
 
13
                                self._getp, "", doc = "DPI value")
 
14
 
 
15
 
 
16
    def get_widgets(self):
 
17
 
 
18
        vbox = gtk.VBox(spacing = 3)
 
19
        vbox.show()
 
20
 
 
21
        hbox = gtk.HBox(spacing = 6)
 
22
        hbox.show()
 
23
        vbox.add(hbox)
 
24
        lbl = gtk.Label("dpi:")
 
25
        hbox.pack_start(lbl, False, False)
 
26
 
 
27
        spin = gtk.SpinButton()
 
28
        spin.show()
 
29
        spin.set_range(10, 500)
 
30
        spin.set_increments(1, 10)
 
31
        spin.set_digits(0)
 
32
        spin.connect("value-changed", self.__on_change)
 
33
        hbox.pack_start(spin, False, False)
 
34
 
 
35
        self.__line = gtk.Viewport()
 
36
        self.__line.show()
 
37
        self.__line.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("grey80"))
 
38
        hbox.pack_start(self.__line, False, False)
 
39
 
 
40
        lbl = gtk.Label("<--  5 cm  /  1.97\"  -->")
 
41
        lbl.show()
 
42
        lbl.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("black"))
 
43
        self.__line.add(lbl)
 
44
 
 
45
        self.__label = gtk.Label("")
 
46
        self.__label.show()
 
47
        vbox.add(self.__label)
 
48
 
 
49
        self.__box = vbox
 
50
        self.__spin = spin
 
51
        return (vbox,)
 
52
 
 
53
 
 
54
    def __on_change(self, src, *args):
 
55
 
 
56
        value = int(src.get_value())
 
57
        self.__set_line(value)
 
58
        self._set_config(value)
 
59
 
 
60
 
 
61
    def __set_line(self, dpi):
 
62
 
 
63
        width = int(5 * (1 / 2.54) * dpi)
 
64
        self.__line.set_size_request(width, 10)
 
65
 
 
66
 
 
67
    def _set_enabled(self, value): self.__box.set_sensitive(value)
 
68
    def _set_label(self, value): self.__label.set_markup(value)
 
69
 
 
70
 
 
71
 
 
72
    def _setp_value(self, key, value):
 
73
 
 
74
        self.__spin.set_value(value)
 
75
        self._setp(key, value)