Statistiques
| Révision :

root / ase / gui / settings.py @ 13

Historique | Voir | Annoter | Télécharger (3,26 ko)

1 1 tkerber
#!/usr/bin/env python
2 1 tkerber
import gtk
3 1 tkerber
from ase.gui.widgets import pack
4 1 tkerber
from ase.gui.languages import translate as _
5 1 tkerber
6 1 tkerber
class Settings(gtk.Window):
7 1 tkerber
    def __init__(self, gui):
8 1 tkerber
        gtk.Window.__init__(self)
9 1 tkerber
        self.set_title('Settings')
10 1 tkerber
        self.gui = gui
11 1 tkerber
        vbox = gtk.VBox()
12 1 tkerber
13 1 tkerber
        # Constraints
14 1 tkerber
        a = pack(vbox, gtk.Label())
15 1 tkerber
        a.set_markup('<span size="larger" underline="single">'
16 1 tkerber
                     'Constraints:</span>')
17 1 tkerber
        a, b = pack(vbox, [gtk.Button(_('Constrain')),
18 1 tkerber
                           gtk.Label('/'),
19 1 tkerber
                           gtk.Button(_('release')),
20 1 tkerber
                           gtk.Label(_(' selected atoms'))])[::2]
21 1 tkerber
        a.connect('clicked', self.constrain_selected)
22 1 tkerber
        b.connect('clicked', self.release_selected)
23 1 tkerber
        a = pack(vbox, gtk.Button(_('Constrain immobile atoms')))
24 1 tkerber
        a.connect('clicked', self.immobile)
25 1 tkerber
        a = pack(vbox, gtk.Button(_('Clear all constraints')))
26 1 tkerber
        a.connect('clicked', self.clear_constraints)
27 1 tkerber
28 1 tkerber
        # Visibility
29 1 tkerber
        a = pack(vbox, gtk.Label())
30 1 tkerber
        a.set_markup('\n<span size="larger" underline="single">'
31 1 tkerber
                     'Visibility:</span>')
32 1 tkerber
        a, b = pack(vbox, [gtk.Button(_('Hide')),
33 1 tkerber
                           gtk.Label('/'),
34 1 tkerber
                           gtk.Button(_('show')),
35 1 tkerber
                           gtk.Label(_(' selected atoms'))])[::2]
36 1 tkerber
        a.connect('clicked', self.hide_selected)
37 1 tkerber
        b.connect('clicked', self.show_selected)
38 1 tkerber
        a = pack(vbox, gtk.Button(_('View all atoms')))
39 1 tkerber
        a.connect('clicked', self.view_all)
40 1 tkerber
41 1 tkerber
        # Miscellaneous
42 1 tkerber
        a = pack(vbox, gtk.Label())
43 1 tkerber
        a.set_markup('\n<span size="larger" underline="single">'
44 1 tkerber
                     'Miscellaneous:</span>')
45 1 tkerber
        self.scale = gtk.Adjustment(value=.89, lower=0.2, upper=2.0,
46 1 tkerber
                                    step_incr=0.1, page_incr=0.5)
47 1 tkerber
        pack(vbox, [gtk.Label(_('Scale atomic radii:')),
48 1 tkerber
                    gtk.SpinButton(self.scale, climb_rate=0, digits=2)])
49 1 tkerber
        self.scale.connect('value-changed', self.scale_radii)
50 1 tkerber
51 1 tkerber
        # A close button
52 1 tkerber
        pack(vbox, gtk.Label(_('\n')))
53 1 tkerber
        close = pack(vbox, gtk.Button(_('Close')))
54 1 tkerber
        close.connect('clicked', lambda widget: self.destroy())
55 1 tkerber
56 1 tkerber
        # Add elements and show frame
57 1 tkerber
        self.add(vbox)
58 1 tkerber
        vbox.show()
59 1 tkerber
        self.show()
60 1 tkerber
61 1 tkerber
    def scale_radii(self, adjustment):
62 1 tkerber
        self.gui.images.set_radii(float(self.scale.value))
63 1 tkerber
        self.gui.draw()
64 1 tkerber
        return True
65 1 tkerber
66 1 tkerber
    def hide_selected(self, button):
67 1 tkerber
        self.gui.images.visible[self.gui.images.selected] = False
68 1 tkerber
        self.gui.draw()
69 1 tkerber
70 1 tkerber
    def show_selected(self, button):
71 1 tkerber
        self.gui.images.visible[self.gui.images.selected] = True
72 1 tkerber
        self.gui.draw()
73 1 tkerber
74 1 tkerber
    def view_all(self, button):
75 1 tkerber
        self.gui.images.visible[:] = True
76 1 tkerber
        self.gui.draw()
77 1 tkerber
78 1 tkerber
    def constrain_selected(self, button):
79 1 tkerber
        self.gui.images.dynamic[self.gui.images.selected] = False
80 1 tkerber
        self.gui.draw()
81 1 tkerber
82 1 tkerber
    def release_selected(self, button):
83 1 tkerber
        self.gui.images.dynamic[self.gui.images.selected] = True
84 1 tkerber
        self.gui.draw()
85 1 tkerber
86 1 tkerber
    def immobile(self, button):
87 1 tkerber
        self.gui.images.set_dynamic()
88 1 tkerber
        self.gui.draw()
89 1 tkerber
90 1 tkerber
    def clear_constraints(self, button):
91 1 tkerber
        self.gui.images.dynamic[:] = True
92 1 tkerber
        self.gui.draw()