mirror of
https://github.com/python/cpython.git
synced 2025-07-19 17:25:54 +00:00
Initial revision
This commit is contained in:
parent
784ca6c835
commit
7045dd04d7
5 changed files with 285 additions and 0 deletions
53
Lib/lib-stdwin/stdwinq.py
Normal file
53
Lib/lib-stdwin/stdwinq.py
Normal file
|
@ -0,0 +1,53 @@
|
|||
# Replacements for getevent() and pollevent(),
|
||||
# and new functions ungetevent() and sync().
|
||||
|
||||
|
||||
# Every library module should ideally use this instead of
|
||||
# stdwin.{get,poll}event(), so applications can use the services
|
||||
# of ungetevent() and sync().
|
||||
|
||||
|
||||
import stdwin
|
||||
|
||||
|
||||
# Events read ahead are stored in this queue.
|
||||
#
|
||||
queue = []
|
||||
|
||||
|
||||
# Replacement for getevent().
|
||||
#
|
||||
def getevent():
|
||||
if queue:
|
||||
event = queue[0]
|
||||
del queue[0]
|
||||
return event
|
||||
else:
|
||||
return stdwin.getevent()
|
||||
|
||||
|
||||
# Replacement for pollevent().
|
||||
#
|
||||
def pollevent():
|
||||
if queue:
|
||||
return getevent()
|
||||
else:
|
||||
return stdwin.pollevent()
|
||||
|
||||
|
||||
# Push an event back in the queue.
|
||||
#
|
||||
def ungetevent(event):
|
||||
queue.insert(0, event)
|
||||
|
||||
|
||||
# Synchronize the display. It turns out that this is the way to
|
||||
# force STDWIN to call XSync(), which some (esoteric) applications need.
|
||||
# (This is stronger than just flushing -- it actually waits for a
|
||||
# positive response from the X server on the last command issued.)
|
||||
#
|
||||
def sync():
|
||||
while 1:
|
||||
event = stdwin.pollevent()
|
||||
if not event: break
|
||||
queue.append(event)
|
Loading…
Add table
Add a link
Reference in a new issue