Example #1
0
    def test_gtk_schedule_action(self):
        scheduler = GtkScheduler()
        ran = [False]

        def action(scheduler, state):
            ran[0] = True
        scheduler.schedule(action)

        def done(data):
            Gtk.main_quit()
            assert ran[0]
            return False

        GLib.timeout_add(50, done, None)
        Gtk.main()
Example #2
0
def main():
    scheduler = GtkScheduler()

    window = Window()
    window.connect("delete-event", Gtk.main_quit)

    container = Gtk.Fixed()
    window.add(container)

    text = 'TIME FLIES LIKE AN ARROW'

    labels = [Gtk.Label(char) for char in text]
    for label in labels:
        container.put(label, 0, 0)

    def handle_label(i, label):
        def on_next(pos):
            x, y = pos
            container.move(label, x + i * 12 + 15, y)

        window.mousemove.delay(i * 100,
                               scheduler=scheduler).subscribe_(on_next)

    for i, label in enumerate(labels):
        handle_label(i, label)

    window.show_all()

    Gtk.main()
Example #3
0
    def test_gtk_schedule_action_cancel(self):
        ran = [False]
        scheduler = GtkScheduler()

        def action(scheduler, state):
            ran[0] = True
        d = scheduler.schedule_relative(100, action)
        d.dispose()

        def done(data):
            Gtk.main_quit()
            assert not ran[0]
            return False

        GLib.timeout_add(300, done, None)
        Gtk.main()
Example #4
0
    def test_gtk_schedule_action_periodic(self):
        scheduler = GtkScheduler()
        period = 50
        counter = [3]

        def action(state):
            if state:
                counter[0] -= 1
                return state - 1

        scheduler.schedule_periodic(period, action, counter[0])

        def done(data):
            Gtk.main_quit()
            assert counter[0] == 0
            return False

        GLib.timeout_add(300, done, None)
        Gtk.main()
Example #5
0
    def test_gtk_schedule_action_due(self):
        scheduler = GtkScheduler()
        starttime = datetime.utcnow()
        endtime = [None]

        def action(scheduler, state):
            endtime[0] = datetime.utcnow()

        scheduler.schedule_relative(200, action)

        def done(data):
            Gtk.main_quit()
            assert endtime[0]
            diff = endtime[0] - starttime
            assert diff > timedelta(milliseconds=180)
            return False

        GLib.timeout_add(300, done, None)
        Gtk.main()
Example #6
0
File: main.py Project: Raiu/gkraken
 def _start_refresh(self) -> None:
     LOG.debug("start refresh")
     refresh_interval_ms = self._settings_interactor.get_int(
         'settings_refresh_interval') * 1000
     self._composite_disposable \
         .add(Observable
              .interval(refresh_interval_ms, scheduler=self._scheduler)
              .start_with(0)
              .subscribe_on(self._scheduler)
              .flat_map(lambda _: self._get_status())
              .observe_on(GtkScheduler())
              .subscribe(on_next=self._update_status,
                         on_error=lambda e: LOG.exception("Refresh error: %s", str(e)))
              )
Example #7
0
 def test_gtk_schedule_now(self):
     scheduler = GtkScheduler()
     res = scheduler.now - datetime.utcnow()
     assert(res < timedelta(seconds=1))