예제 #1
0
    def do_channel_name(self):
        label = Gtk.Label('Unknown Channel')
        label.set_halign(Gtk.Align.CENTER)

        add_widget_class(label, 'channel-name')

        return label
예제 #2
0
    def do_count_label(self):
        label = Gtk.Label('0')
        label.set_margin_right(10)

        add_widget_class(label, 'event-item-counter')

        return label
예제 #3
0
    def do_channel_language(self):
        label = Gtk.Label('Unknown')
        label.set_halign(Gtk.Align.CENTER)

        add_widget_class(label, 'channel-language')

        return label
예제 #4
0
    def do_stream_rate(self):
        label = Gtk.Label('0Kbps')
        label.set_halign(Gtk.Align.END)
        label.set_margin_right(10)

        add_widget_class(label, 'stream-rate')

        return label
예제 #5
0
    def do_stream_language(self):
        label = Gtk.Label('Unknown')
        label.set_halign(Gtk.Align.START)
        label.set_margin_right(10)

        add_widget_class(label, 'stream-language')

        return label
예제 #6
0
    def do_stream_name(self):
        label = Gtk.Label('Unknown Channel')
        label.set_halign(Gtk.Align.START)
        label.set_margin_right(10)

        add_widget_class(label, 'stream-name')

        return label
예제 #7
0
    def do_channel_streams(self):
        for stream in self.streams:
            streambox = StreamBox(stream=stream,
                                  callback=self.callback,
                                  compact=True)
            self.pack_start(streambox, True, True, 0)

            add_widget_class(streambox, 'channel-stream-item')
예제 #8
0
    def do_stream_logo(self):
        image = image_from_path(path='images/acestream.svg', size=16)
        image.set_halign(Gtk.Align.CENTER)
        image.set_valign(Gtk.Align.CENTER)
        image.set_margin_right(10)

        add_widget_class(image, 'stream-image')

        return image
예제 #9
0
    def do_score_label(self):
        label = Gtk.Label('None')
        label.set_justify(Gtk.Justification.CENTER)
        label.set_halign(Gtk.Align.CENTER)
        label.set_valign(Gtk.Align.CENTER)

        add_widget_class(label, 'event-date')

        return label
예제 #10
0
    def update_count_label(self):
        count = str(self.event_count)
        self.count_label.set_label(count)

        if self.event_count == 0:
            add_widget_class(self.count_label, 'no-streams')
        else:
            remove_widget_class(self.count_label, 'no-streams')

        self.count_label.show()
예제 #11
0
    def do_team_name(self):
        label = Gtk.Label('Team Name')
        label.set_max_width_chars(25)
        label.set_ellipsize(Pango.EllipsizeMode.MIDDLE)
        label.set_margin_left(5)
        label.set_margin_right(5)

        add_widget_class(label, 'team-name')

        return label
예제 #12
0
    def do_nostreams_label(self):
        label = Gtk.Label('No streams available...')
        label.set_margin_top(7)
        label.set_margin_bottom(10)
        label.show()

        self.add(label)

        add_widget_class(label, 'stream-unknown')

        return label
예제 #13
0
    def do_more_button(self):
        kwargs = {
            'icon_name': 'media-playback-start-symbolic',
            'size': Gtk.IconSize.BUTTON
        }
        button = Gtk.Button.new_from_icon_name(**kwargs)
        button.connect('clicked', self.on_more_button_clicked)

        add_widget_class(button, 'event-item-details')

        return button
예제 #14
0
    def do_play_button(self):
        kwargs = {
            'icon_name': 'media-playback-start-symbolic',
            'size': Gtk.IconSize.BUTTON
        }
        button = Gtk.Button.new_from_icon_name(**kwargs)
        button.set_halign(Gtk.Align.END)
        button.connect('clicked', self.on_play_button_clicked)

        add_widget_class(button, 'stream-play')

        return button
예제 #15
0
    def __init__(self, *args, **kwargs):
        Gtk.ListBoxRow.__init__(self, *args, **kwargs)

        self.stream = self.get_property('stream')
        self.callback = self.get_property('callback')

        self.connect('realize', self.on_fixture_updated)
        self.connect('notify::stream', self.on_fixture_updated)

        add_widget_class(self, 'stream-item')

        self.show()
예제 #16
0
    def __init__(self, *args, **kwargs):
        Gtk.Box.__init__(self, *args, **kwargs)

        self.vid_url = None
        self.stopped = False

        self.canvas = Gtk.DrawingArea()
        self.pack_start(self.canvas, True, True, 0)

        self.player = mpv.MPV(ytdl=True,
                              input_cursor=False,
                              cursor_autohide=False)
        self.canvas.connect('realize', self.on_canvas_realize)
        self.canvas.connect('draw', self.on_canvas_draw)

        add_widget_class(self, 'player-video')
예제 #17
0
    def __init__(self, *args, **kwargs):
        Gtk.Box.__init__(self, *args, **kwargs)

        self.channel = self.get_property('channel')
        self.callback = self.get_property('callback')
        self.streams = None

        self.set_orientation(Gtk.Orientation.HORIZONTAL)
        self.set_homogeneous(True)

        self.connect('realize', self.on_channel_updated)
        self.connect('notify::channel', self.on_channel_updated)

        add_widget_class(self, 'channel-streams')

        self.show()
예제 #18
0
    def __init__(self, *args, **kwargs):
        Gtk.Box.__init__(self, *args, **kwargs)

        self.gtksink = Gst.ElementFactory.make('gtksink')
        self.swidget = self.gtksink.props.widget
        self.pack_start(self.swidget, True, True, 0)

        self.playbin = Gst.ElementFactory.make('playbin')
        self.playbin.set_property('video-sink', self.gtksink)
        self.playbin.set_property('force-aspect-ratio', True)

        self.dbus = self.playbin.get_bus()
        self.dbus.add_signal_watch()
        self.dbus.connect('message', self.on_dbus_message)

        add_widget_class(self, 'player-video')
예제 #19
0
    def __init__(self, *args, **kwargs):
        Gtk.Box.__init__(self, *args, **kwargs)

        self.canvas = Gtk.DrawingArea()
        self.pack_start(self.canvas, True, True, 0)

        self.instance = vlc.Instance()
        self.canvas.connect('realize', self.on_canvas_realized)
        self.canvas.connect('draw', self.on_canvas_draw)

        self.player = self.instance.media_player_new()
        self.player.video_set_scale(0)
        self.player.video_set_aspect_ratio('16:9')
        self.player.video_set_deinterlace('on')
        self.player.video_set_mouse_input(False)
        self.player.video_set_key_input(False)

        add_widget_class(self, 'player-video')
예제 #20
0
    def __init__(self, *args, **kwargs):
        Gtk.FlowBoxChild.__init__(self, *args, **kwargs)

        self.channel = self.get_property('channel')
        self.callback = self.get_property('callback')
        self.filter_name = self.get_property('filter_name')

        self.outer_box = self.do_outer_box()
        self.header_box = self.do_header_box()
        self.streams_box = self.do_streams_box()

        self.set_valign(Gtk.Align.START)
        self.connect('realize', self.on_channel_updated)
        self.connect('realize', self.on_realize)
        self.connect('notify::channel', self.on_channel_updated)

        add_widget_class(self, 'channel-item')

        self.show()
예제 #21
0
    def __init__(self, *args, **kwargs):
        Gtk.FlowBoxChild.__init__(self, *args, **kwargs)

        self.fixture = self.get_property('fixture')
        self.callback = self.get_property('callback')
        self.filter_name = self.get_property('filter-name')

        self.outer_box = self.do_outer_box()
        self.teams_box = self.do_teams_box()
        self.details_box = self.do_details_box()

        self.set_valign(Gtk.Align.START)
        self.connect('realize', self.on_fixture_updated)
        self.connect('realize', self.on_realize)
        self.connect('notify::fixture', self.on_fixture_updated)

        add_widget_class(self, 'event-item')

        self.show()
예제 #22
0
    def __init__(self, *args, **kwargs):
        Gtk.Box.__init__(self, *args, **kwargs)

        self.fixture = self.get_property('fixture')
        self.callback = self.get_property('callback')

        self.event_count = 0
        self.count_label = self.do_count_label()
        self.available_label = self.do_available_label()
        self.more_button = self.do_more_button()

        self.set_orientation(Gtk.Orientation.HORIZONTAL)
        self.connect('realize', self.on_fixture_updated)
        self.connect('realize', self.on_realize)
        self.connect('notify::fixture', self.on_fixture_updated)

        add_widget_class(self, 'event-item-streams')

        self.show()
예제 #23
0
    def update_score_label(self):
        if getattr(self.fixture, 'past'):
            add_widget_class(self.score, 'event-score')
        else:
            remove_widget_class(self.score, 'event-score')

        if getattr(self.fixture, 'today'):
            add_widget_class(self.score, 'event-today')
        else:
            remove_widget_class(self.score, 'event-today')

        if getattr(self.fixture, 'live'):
            add_widget_class(self.score, 'event-live')
        else:
            remove_widget_class(self.score, 'event-live')

        score = getattr(self.fixture, 'score')
        self.score.set_label(score)
        self.score.show()