Dave Plater
b4a76b9744
OBS-URL: https://build.opensuse.org/request/show/71271 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/libcaca?expand=0&rev=10
84 lines
2.9 KiB
Diff
84 lines
2.9 KiB
Diff
* Add optional pointer argument to Canvas class. * get_canvas method now return Python Canvas object.
|
|
|
|
git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libcaca/trunk@4408 92316355-f0b4-4df1-b90c-862c8a59935f
|
|
|
|
diff --git a/python/caca/canvas.py b/python/caca/canvas.py
|
|
index 292ab87..4373e0e 100644
|
|
@@ -56,17 +56,21 @@ class Canvas(_Canvas):
|
|
""" Canvas object, methods are libcaca functions with canvas_t as
|
|
first parameter.
|
|
"""
|
|
- def __init__(self, width=0, height=0):
|
|
+ def __init__(self, width=0, height=0, pointer=None):
|
|
""" Canvas constructor.
|
|
|
|
width -- the desired canvas width
|
|
height -- the desired canvas height
|
|
+ cv -- pointer to libcaca canvas
|
|
"""
|
|
_lib.caca_create_canvas.argtypes = [ctypes.c_int, ctypes.c_int]
|
|
|
|
- self._cv = _lib.caca_create_canvas(width, height)
|
|
- if self._cv == 0:
|
|
- raise CanvasError, "Failed to create canvas"
|
|
+ if cv is not None:
|
|
+ self._cv = _lib.caca_create_canvas(width, height)
|
|
+ if self._cv == 0:
|
|
+ raise CanvasError, "Failed to create canvas"
|
|
+ else:
|
|
+ self._cv = cv
|
|
|
|
def manage(self, *args, **kw):
|
|
""" Not implemented.
|
|
@@ -940,7 +944,7 @@ class Canvas(_Canvas):
|
|
_Canvas, ctypes.c_int, ctypes.c_int, ctypes.c_int, ctypes.c_int,
|
|
ctypes.c_char_p, p_size_t
|
|
]
|
|
- _lib.caca_export_area_to_memory.restype = ctypes.c_void_p
|
|
+ _lib.caca_export_area_to_memory.restype = ctypes.POINTER(ctypes.c_char_p)
|
|
|
|
p = ctypes.c_size_t()
|
|
ret = _lib.caca_export_area_to_memory(self, x, y, width, height, fmt, p)
|
|
diff --git a/python/caca/display.py b/python/caca/display.py
|
|
index 451b40a..8bdd887 100644
|
|
@@ -17,7 +17,7 @@
|
|
import ctypes
|
|
|
|
from caca import _lib
|
|
-from caca.canvas import _Canvas
|
|
+from caca.canvas import _Canvas, Canvas
|
|
|
|
class _Display(object):
|
|
""" Model for Display objects.
|
|
@@ -63,6 +63,9 @@ class Display(_Display):
|
|
]
|
|
self._dp = _lib.caca_create_display_with_driver(cv, driver)
|
|
|
|
+ if self._dp == 0:
|
|
+ raise DisplayError, "Failed to create display"
|
|
+
|
|
def get_driver(self):
|
|
""" Return the caca graphical context's current output driver.
|
|
"""
|
|
@@ -89,8 +92,9 @@ class Display(_Display):
|
|
""" Get the canvas attached to a caca graphical context.
|
|
"""
|
|
_lib.caca_get_canvas.argtypes = [_Display]
|
|
+ _lib.caca_get_canvas.restype = ctypes.POINTER(ctypes.c_char_p)
|
|
|
|
- return _lib.caca_get_canvas(self)
|
|
+ return Canvas(pointer=_lib.caca_get_canvas(self))
|
|
|
|
def refresh(self):
|
|
""" Flush pending changes and redraw the screen.
|
|
@@ -194,6 +198,9 @@ class Display(_Display):
|
|
|
|
return _lib.caca_get_mouse_y(self)
|
|
|
|
+class DisplayError(Exception):
|
|
+ pass
|
|
+
|
|
class Event(ctypes.Structure):
|
|
""" Object to store libcaca event.
|
|
"""
|