python-efl/examples/ewe/test_ruler.py

98 lines
2.6 KiB
Python

#!/usr/bin/env python
# encoding: utf-8
from efl.evas import EVAS_HINT_EXPAND, EVAS_HINT_FILL
from efl import elementary
from efl import ewe
from efl.ewe.ruler import Ruler, EWE_RULER_ORIENT_VERTICAL
from efl.elementary.layout import Layout
from efl.elementary.spinner import Spinner
from efl.elementary.window import StandardWindow
EXPAND_BOTH = EVAS_HINT_EXPAND, EVAS_HINT_EXPAND
EXPAND_HORIZ = EVAS_HINT_EXPAND, 0.0
FILL_BOTH = EVAS_HINT_FILL, EVAS_HINT_FILL
FILL_HORIZ = EVAS_HINT_FILL, 0.5
RULER_HOR = "ruler_hor"
RULER_VER = "ruler_ver"
def offset_cb(obj):
val = obj.value
obj.data[RULER_HOR].zero_offset = val
obj.data[RULER_VER].zero_offset = val
print("Zero offset changed to %d" % val)
def step_cb(obj):
val = obj.value
obj.data[RULER_HOR].step = val
obj.data[RULER_VER].step = val
print("Step between marks of the ruler has changed to %d" % val)
def ruler_clicked(obj):
win = StandardWindow(
"ruler", "Ruler", autodel=True,
size=(740, 740)
)
if obj is None:
win.callback_delete_request_add(lambda o: elementary.exit())
step = 100
layout = Layout(win, size_hint_weight=EXPAND_BOTH)
win.resize_object_add(layout)
layout.file_set("ruler_example.edj", "view")
layout.show()
ruler_hor = Ruler(win)
layout.content_set("ruler_hor", ruler_hor)
ruler_hor.step = step
ruler_hor.show()
layout = Layout(win, size_hint_weight=EXPAND_BOTH)
win.resize_object_add(layout)
layout.file_set("ruler_example.edj", "view")
layout.show()
ruler_ver = Ruler(win)
layout.content_set("ruler_ver", ruler_ver)
ruler_ver.orient = EWE_RULER_ORIENT_VERTICAL
ruler_ver.step = step
ruler_ver.show()
spinner1 = Spinner(
win, step=10, min_max=(-10000.0, 10000.0), editable=True,
size_hint_weight=EXPAND_BOTH, size_hint_align=FILL_HORIZ,
geometry=(350, 350, 210, 25)
)
spinner1.label_format = "Zero offset is %1.0f"
spinner1.show()
spinner1.data[RULER_HOR] = ruler_hor
spinner1.data[RULER_VER] = ruler_ver
spinner1.callback_changed_add(offset_cb)
spinner2 = Spinner(
win, step=5, min_max=(0, 1000.0), value=100, editable=True,
size_hint_align=FILL_HORIZ, size_hint_weight=EXPAND_BOTH,
geometry=(350, 390, 210, 25)
)
spinner2.label_format = "Step between marks is %1.0f"
spinner2.show()
spinner2.data[RULER_HOR] = ruler_hor
spinner2.data[RULER_VER] = ruler_ver
spinner2.callback_changed_add(step_cb)
win.show()
if __name__ == "__main__":
ewe.init()
ruler_clicked(None)
elementary.run()
ewe.shutdown()