98 lines
2.6 KiB
Python
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()
|