aboutsummaryrefslogtreecommitdiffstats
path: root/examples/elementary/test_video.py
blob: 64d6a3b12a62868946c88f3620367964a0b5ffd7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/env python
# encoding: utf-8

from efl import evas
from efl import ecore
from efl import elementary
from efl.elementary.window import Window
from efl.elementary.background import Background
from efl.elementary.box import Box
from efl.elementary.button import Button
from efl.elementary.notify import Notify
from efl.elementary.fileselector_button import FileselectorButton
from efl.elementary.table import Table
from efl.elementary.video import Video, Player


def my_bt_open(bt, file, video):
    if (file and video):
        video.file_set(file)
        video.play()

def notify_show(video, event, no):
    no.show()

def notify_block(video, event, no):
    no.timeout = 0.0
    no.show()

def notify_unblock(video, event, no):
    no.timeout = 3.0
    no.show()

def video_clicked(obj):
    win = Window("video", elementary.ELM_WIN_BASIC)
    win.title = "video"
    win.autodel = True
    win.alpha = True # Needed to turn video fast path on

    bg = Background(win)
    bg.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
    win.resize_object_add(bg)
    bg.show()

    video = Video(win)
    video.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
    win.resize_object_add(video)
    video.show()

    notify = Notify(win)
    notify.orient = elementary.ELM_NOTIFY_ORIENT_BOTTOM
    notify.timeout = 3.0

    player = Player(win)
    player.content = video
    notify.content = player
    player.show()

    tb = Table(win)
    tb.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
    win.resize_object_add(tb)

    bt = FileselectorButton(win)
    bt.text = "Select Video"
    bt.callback_file_chosen_add(my_bt_open, video)
    bt.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
    bt.size_hint_align_set(0.5, 0.1)
    tb.pack(bt, 0, 0, 1, 1)
    bt.show()

    tb.show()

    video.event_callback_add(evas.EVAS_CALLBACK_MOUSE_MOVE, notify_show, notify)
    video.event_callback_add(evas.EVAS_CALLBACK_MOUSE_IN, notify_block, notify)
    video.event_callback_add(evas.EVAS_CALLBACK_MOUSE_OUT, notify_unblock, notify)

    win.resize(800, 600)
    win.show()


if __name__ == "__main__":
    elementary.init()

    video_clicked(None)

    elementary.run()
    elementary.shutdown()