Skip to content

Commit a1dfafa

Browse files
gregornilw64
authored andcommitted
Library: Port 'Scale' to Python (#769)
1 parent a5f4e61 commit a1dfafa

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

src/Library/demos/Scale/main.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import gi
2+
3+
gi.require_version("Gtk", "4.0")
4+
from gi.repository import Gtk
5+
import workbench
6+
7+
scale_one = workbench.builder.get_object("one")
8+
scale_two = workbench.builder.get_object("two")
9+
scale_button = workbench.builder.get_object("button")
10+
11+
marks = {
12+
0: "A",
13+
50: "B",
14+
100: "C",
15+
}
16+
17+
volume_icons = [
18+
"audio-volume-muted-symbolic",
19+
"audio-volume-high-symbolic",
20+
"audio-volume-low-symbolic",
21+
"audio-volume-medium-symbolic",
22+
]
23+
24+
for value, label in marks.items():
25+
scale_two.add_mark(value, Gtk.PositionType.RIGHT, label)
26+
27+
scale_two.set_increments(25, 100)
28+
29+
30+
def callback1(scale):
31+
scale_value = scale_one.get_value()
32+
if scale_value == scale_one.get_adjustment().get_upper():
33+
print("Maximum value reached")
34+
elif scale_value == scale_one.get_adjustment().get_lower():
35+
print("Minimum value reached")
36+
37+
38+
scale_one.connect("value-changed", callback1)
39+
40+
41+
def callback2(scale):
42+
scale_value = scale_two.get_value()
43+
label = marks.get(scale_value)
44+
if label:
45+
print(f"Mark {label} reached")
46+
47+
48+
scale_two.connect("value-changed", callback2)
49+
50+
scale_button.set_icons(volume_icons)

0 commit comments

Comments
 (0)