Coverage for /builds/ase/ase/ase/gui/settings.py: 66.07%
56 statements
« prev ^ index » next coverage.py v7.5.3, created at 2025-08-02 00:12 +0000
« prev ^ index » next coverage.py v7.5.3, created at 2025-08-02 00:12 +0000
1# fmt: off
3import ase.gui.ui as ui
4from ase.gui.i18n import _
7class Settings:
8 def __init__(self, gui):
9 self.gui = gui
10 win = ui.Window(_('Settings'), wmtype='utility')
12 # Constraints
13 win.add(_('Constraints:'))
14 win.add([ui.Button(_('Fix'), self.constrain_selected),
15 '/',
16 ui.Button(_('release'), self.release_selected),
17 _(' selected atoms')])
18 win.add(ui.Button(_('Clear all constraints'), self.clear_constraints))
20 # Visibility
21 win.add(_('Visibility:'))
22 win.add([ui.Button(_('Hide'), self.hide_selected),
23 '/',
24 ui.Button(_('show'), self.show_selected),
25 _(' selected atoms')])
26 win.add(ui.Button(_('View all atoms'), self.view_all))
28 # Miscellaneous
29 win.add(_('Miscellaneous:'))
30 self.scale = ui.SpinBox(self.gui.images.atom_scale,
31 0.2, 2.0, 0.1, self.scale_radii)
32 win.add([_('Scale atomic radii:'), self.scale])
33 self.force_vector_scale = ui.SpinBox(
34 self.gui.force_vector_scale,
35 0.0, 1e32, 0.1,
36 rounding=2,
37 callback=self.scale_force_vectors
38 )
39 win.add([_('Scale force vectors:'), self.force_vector_scale])
40 self.velocity_vector_scale = ui.SpinBox(
41 self.gui.velocity_vector_scale,
42 0.0, 1e32, 0.1,
43 rounding=2,
44 callback=self.scale_velocity_vectors
45 )
46 win.add([_('Scale velocity vectors:'), self.velocity_vector_scale])
47 self.magmom_vector_scale = ui.SpinBox(
48 self.gui.magmom_vector_scale,
49 0.0, 1e32, 0.1,
50 rounding=2,
51 callback=self.scale_magmom_vectors
52 )
53 win.add([_('Scale magmom vectors:'), self.magmom_vector_scale])
55 def scale_radii(self):
56 self.gui.images.atom_scale = self.scale.value
57 self.gui.draw()
58 return True
60 def scale_force_vectors(self):
61 self.gui.force_vector_scale = float(self.force_vector_scale.value)
62 self.gui.draw()
63 return True
65 def scale_velocity_vectors(self):
66 self.gui.velocity_vector_scale = float(self.velocity_vector_scale.value)
67 self.gui.draw()
68 return True
70 def scale_magmom_vectors(self):
71 self.gui.magmom_vector_scale = float(self.magmom_vector_scale.value)
72 self.gui.draw()
73 return True
75 def hide_selected(self):
76 self.gui.images.visible[self.gui.images.selected] = False
77 self.gui.draw()
79 def show_selected(self):
80 self.gui.images.visible[self.gui.images.selected] = True
81 self.gui.draw()
83 def view_all(self):
84 self.gui.images.visible[:] = True
85 self.gui.draw()
87 def constrain_selected(self):
88 self.gui.images.set_dynamic(self.gui.images.selected, False)
89 self.gui.draw()
91 def release_selected(self):
92 self.gui.images.set_dynamic(self.gui.images.selected, True)
93 self.gui.draw()
95 def clear_constraints(self):
96 # This clears *all* constraints. But when we constrain, we
97 # only add FixAtoms....
98 for atoms in self.gui.images:
99 atoms.constraints = []
100 self.gui.draw()