コード例 #1
0
    def _launch_core(self, command_line):
        if self._running:
            return
        self._running = True
        assert self._messages_task is None
        engine_wrapper = EngineWrapper(command_line, self._in_queue)
        engine_wrapper.start()

        def get_messages(speaker, queue, callback):
            try:
                message = queue.get_nowait()
                if message is None:
                    callback()
                else:
                    assert message is False or type(message) is str
                    # We may have been told to cancel the current utterance
                    if message is False:
                        speaker.stop()
                    else:
                        speaker.say(message)
                        speaker.iterate()
            except Queue.Empty:
                pass

        # Keep checking for and saying new messages
        self._messages_task = Task(
            lambda: get_messages(self._speaker, self._in_queue, self.
                                 _game_ended), 0.1, True, True)
コード例 #2
0
ファイル: 91-glview-task.py プロジェクト: mnabeelp/PyGUI
 def init_context(self):
     #print "Init Context" ###
     pos = (5.0, 5.0, 10.0, 0.0)
     red = (0.8, 0.1, 0.0, 1.0)
     green = (0.0, 0.8, 0.2, 1.0)
     blue = (0.2, 0.2, 1.0, 1.0)
     #
     GL.glLightfv(GL.GL_LIGHT0, GL.GL_POSITION, pos)
     GL.glEnable(GL.GL_CULL_FACE)
     GL.glEnable(GL.GL_LIGHTING)
     GL.glEnable(GL.GL_LIGHT0)
     GL.glEnable(GL.GL_DEPTH_TEST)
     #
     self.gear1 = GL.glGenLists(1)
     GL.glNewList(self.gear1, GL.GL_COMPILE)
     GL.glMaterialfv(GL.GL_FRONT, GL.GL_AMBIENT_AND_DIFFUSE, red)
     gear(1.0, 4.0, 1.0, 20, 0.7)
     GL.glEndList()
     #
     self.gear2 = GL.glGenLists(1)
     GL.glNewList(self.gear2, GL.GL_COMPILE)
     GL.glMaterialfv(GL.GL_FRONT, GL.GL_AMBIENT_AND_DIFFUSE, green)
     gear(0.5, 2.0, 2.0, 10, 0.7)
     GL.glEndList()
     #
     self.gear3 = GL.glGenLists(1)
     GL.glNewList(self.gear3, GL.GL_COMPILE)
     GL.glMaterialfv(GL.GL_FRONT, GL.GL_AMBIENT_AND_DIFFUSE, blue)
     gear(1.3, 2.0, 0.5, 10, 0.7)
     GL.glEndList()
     #
     GL.glEnable(GL.GL_NORMALIZE)
     #
     self.frame_task = Task(self.next_frame, frame_interval, repeat=1)
コード例 #3
0
ファイル: nag_box.py プロジェクト: mnabeelp/PyGUI
 def __init__(self, text, timeout):
     ModalDialog.__init__(self)
     label = Label(text)
     self.ok_button = Button("OK", action="ok", enabled=False)
     self.place(label, left=20, top=20)
     self.place(self.ok_button, top=label + 20, right=label.right)
     self.shrink_wrap(padding=(20, 20))
     self.timer = Task(self.enable_button, timeout)
コード例 #4
0
    def process_status_line(self, mode, status_line):
        TerminalGUI.process_status_line(self, mode, status_line)

        if status_line.startswith('PYMTERM_STATUS_CMD='):
            try:
                context = json.loads(status_line[len('PYMTERM_STATUS_CMD='):])
                self.__status_cmd_task = Task(
                    lambda: self.process_status_cmd(context), .01)
            except:
                logging.getLogger('term_pygui').exception(
                    'invalid status cmd found')
コード例 #5
0
    def __init__(self, **kwargs):
        self.padding_x = 5
        self.padding_y = 5
        self.session = None
        self.selection_color = [0.1843, 0.6549, 0.8313, .5]
        self._width_cache = {}
        self._lock = threading.Lock()
        self._refresh_task = Task(self.__refresh, .02, False, False)

        TerminalWidget.__init__(self, **kwargs)

        self._generic_tabbing = False
コード例 #6
0
    def _create_new_tab(self, win, view):
        win.tabview.add_item(view)

        cfg = view.model.cfg
        session = create_session(cfg, self.create_terminal(cfg))
        session.on_session_stop = self._on_session_stop
        session.term_widget = view
        session.window = win
        session.terminal.term_widget = view
        view.session = session
        view.tab_width = session.get_tab_width()

        self._session_task = Task(session.start, .1)
        #session.start()

        win.tabview.selected_index = len(win.tabview.items) - 1
コード例 #7
0
 def report_error(self, msg):
     self.__alert_task = Task(lambda: stop_alert(msg), .001)
コード例 #8
0
 def tab_changed(self, tab_index):
     if tab_index >= 0 and tab_index < len(self.items):
         v = self.items[tab_index]
         self.__focus_task = Task(lambda: v.become_target(), .01)
コード例 #9
0
ファイル: 24-task.py プロジェクト: tomihasa/pygui
from GUI import Window, Button, Task, application
from testing import say


def do_task():
    say("Doing the task")


task = Task(do_task, 1.0, repeat=1, start=0)


def start_task():
    task.start()


def stop_task():
    task.stop()


def test():
    starter = Button("Start", action=start_task)
    stopper = Button("Stop", action=stop_task)
    win = Window(title="Tasks")
    win.place_column([starter, stopper], left=20, top=20, spacing=20)
    win.shrink_wrap(padding=(20, 20))
    win.show()
    application().run()


instructions = """
Pressing the Start button should begin a task which prints a
コード例 #10
0
ファイル: bare_file_dialog.py プロジェクト: mnabeelp/PyGUI
from GUI import application, Task
from GUI.FileDialogs import request_old_file


def tick():
    print "Tick"


app = application()
task = Task(interval=1, repeat=True, proc=tick)
result = request_old_file()
print "Result =", result