From 5eaecae93f7ba32b6bec9515dfa465130bc8b808 Mon Sep 17 00:00:00 2001 From: Jeff Armstrong Date: Sun, 24 Jul 2011 22:26:32 -0400 Subject: Added VDI routines. Added proper resource handling, some menu library code, and object library code. --- gem/vdi.py | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 gem/vdi.py (limited to 'gem/vdi.py') diff --git a/gem/vdi.py b/gem/vdi.py new file mode 100644 index 0000000..581ab2d --- /dev/null +++ b/gem/vdi.py @@ -0,0 +1,55 @@ +from error import GEMError +from constants import * + +import _gem + +def get_screen_handle(): + """Returns a VDI handle for the current screen""" + return _gem.v_open_screen() + +def close(handle): + """Closes the passed VDI handle""" + _gem.v_clsvwk(handle) + + +# Drawing primitives +def bar(handle,pt1,pt2=None): + """Draw a filled rectangle""" + + xpt1 = pt1 + if pt2 is None and len(pt1) == 4: + xpt1 = (pt1[0],pt1[1]) + xpt2 = (pt1[0]+pt1[2],pt1[1]+pt1[3]) + elif len(pt2) == 2 and len(pt1) == 2: + xpt2 = pt2 + else: + raise ArgumentError('Points should be one (x,y,w,h) tuple or an (x,y) pair of tuples') + + _gem.v_bar(handle,xpt1,xpt2) + +def ellipse(handle,center,radii): + """Draw eclipse""" + _gem.v_ellipse(handle,center,radii) + +def vsf_color(handle,index): + """Set the fill color index""" + _gem.vsf_color(handle,index) + +def vs_clip(handle, enable, pt1, pt2=None): + """Set the clipping region""" + xpt1 = pt1 + if pt2 is None and len(pt1) == 4: + xpt1 = (pt1[0],pt1[1]) + xpt2 = (pt1[0]+pt1[2],pt1[1]+pt1[3]) + elif len(pt2) == 2 and len(pt1) == 2: + xpt2 = pt2 + else: + raise ArgumentError('Point should be one (x,y,w,h) tuple or an (x,y) pair of tuples') + + if enable: + xenable = 1 + else: + xenable = 0 + + _gem.vs_clip(handle,xenable, xpt1, xpt2) + \ No newline at end of file -- cgit v1.2.3