Rename GP_Context -> GP_Pixmap
[gfxprim.git] / pylib / gfxprim / backends / _extend_backend.py
blob45421923bbda8e7a52702b4a2e86aaaeedd819f2
1 from ..utils import extend, add_swig_getmethod, add_swig_setmethod
2 from . import c_backends
3 from ..input import c_input
5 def extend_backend(_backend):
6 """
7 Extends _backend class with convenience methods.
8 Called once on module initialization.
9 """
11 @extend(_backend, name='__str__')
12 @extend(_backend, name='__repr__')
13 def backend_str(self):
14 return "<Backend \"%s\", GP_Backend %sowned>" % (
15 self.name, "" if self.thisown else "not ")
17 @extend(_backend)
18 def Flip(self):
19 "If display is buffered, this copies content of pixmap onto display."
20 return c_backends.GP_BackendFlip(self)
22 @extend(_backend)
23 def UpdateRect(self, x0, y0, x1, y1):
24 "Update a rectangle on a buffered backend."
25 return c_backends.GP_BackendUpdateRect(self, x0, y0, x1, y1)
27 @extend(_backend)
28 def Poll(self):
29 "Poll the backend."
30 c_backends.GP_BackendPoll(self)
32 @extend(_backend)
33 def PollEvent(self):
34 "Poll the backend for events."
35 ev = c_input.GP_Event()
37 if c_backends.GP_BackendPollEvent(self, ev) != 0:
38 return ev
40 return None
42 @extend(_backend)
43 def Wait(self):
44 "Waits for backend."
45 c_backends.GP_BackendWait(self)
47 @extend(_backend)
48 def WaitEvent(self):
49 "Waits for backend event."
50 ev = c_input.GP_Event()
52 c_backends.GP_BackendWaitEvent(self, ev)
54 return ev
56 @extend(_backend)
57 def GetEvent(self):
58 "Removes event from the top of the backend event queue."
59 ev = c_input.GP_Event()
61 if c_backends.GP_BackendGetEvent(self, ev) != 0:
62 return ev
64 return None
66 @extend(_backend)
67 def PeekEvent(self):
68 "Returns, but not removes, the top of the backend event queue."
69 ev = c_input.GP_Event()
71 if c_backends.GP_BackendPeekEvent(self, ev) != 0:
72 return ev
74 return None
76 @extend(_backend)
77 def PutEventBack(self, ev):
78 "Puts back event removed from the top of the backend event queue."
79 c_backends.GP_BackendPutEventBack(self, ev)
81 @extend(_backend)
82 def EventsQueued(self):
83 "Returns the number of events queued in the backend event queue."
84 return c_backends.GP_BackendEventsQueued(self)
86 @extend(_backend)
87 def SetCaption(self, caption):
88 "Set backend window caption (if possible)"
89 return c_backends.GP_BackendSetCaption(self, caption)
91 @extend(_backend)
92 def Resize(self, w, h):
93 "Resize backend window (if possible)"
94 return c_backends.GP_BackendResize(self, w, h)
96 @extend(_backend)
97 def ResizeAck(self):
98 "Acknowledge backend resize."
99 return c_backends.GP_BackendResizeAck(self)