summaryrefslogtreecommitdiffstats
path: root/Demo/sgi/gl/glstdwin/glstdwdraw.py
diff options
context:
space:
mode:
Diffstat (limited to 'Demo/sgi/gl/glstdwin/glstdwdraw.py')
-rw-r--r--Demo/sgi/gl/glstdwin/glstdwdraw.py135
1 files changed, 0 insertions, 135 deletions
diff --git a/Demo/sgi/gl/glstdwin/glstdwdraw.py b/Demo/sgi/gl/glstdwin/glstdwdraw.py
deleted file mode 100644
index 4ddc7a6..0000000
--- a/Demo/sgi/gl/glstdwin/glstdwdraw.py
+++ /dev/null
@@ -1,135 +0,0 @@
-# Define drawing operations for GL stdwin
-
-import gl
-import fm
-from GL import LO_XOR, LO_SRC
-from glstdwin import MASK
-
-class DrawingObject:
- #
- def _init(self, win):
- self.fg = win._fg
- self.bg = win._bg
- self.font = win._font
- self.size = win._size
- self.width, self.height = win._area[1]
- gl.winset(win._gid)
- gl.color(self.fg)
- return self
- #
- def setfont(self, fontname):
- self.font = fm.findfont(fontname).scalefont(self.size)
- #
- def setsize(self, size):
- ratio = float(size) / float(self.size)
- self.size = size
- self.font = self.font.scalefont(ratio)
- #
- def setfgcolor(self, color):
- self.fg = color
- gl.color(self.fg)
- #
- def setbgcolor(self, color):
- self.bg = color
- #
- def cliprect(self, area):
- #print 'cliprect', area
- (left, top), (right, bottom) = area
- gl.scrmask(left, right, self.height-bottom, self.height-top)
- #
- def noclip(self):
- #print 'noclip()'
- gl.scrmask(0, self.width, 0, self.height)
- #
- def paint(self, ((left, top), (right, bottom))):
- gl.rectf(left, top, right, bottom)
- #
- def box(self, ((left, top), (right, bottom))):
- #print 'box', ((left, top), (right, bottom))
- gl.rect(left, top, right, bottom)
- #
- def circle(self, (h, v), radius):
- gl.circ(h, v, radius)
- #
- def elarc(self, center, (rh, rv), (a1, a2)):
- pass # XXX
- #
- def erase(self, ((left, top), (right, bottom))):
- #print 'erase', ((left, top), (right, bottom))
- gl.color(self.bg)
- gl.rectf(left, top, right, bottom)
- gl.color(self.fg)
- #
- def invert(self, ((left, top), (right, bottom))):
- #print 'invert', ((h0, v0), (h1, v1))
- gl.logicop(LO_XOR)
- gl.color(self.bg)
- gl.rectf(left, top, right, bottom)
- gl.color(self.fg)
- gl.logicop(LO_SRC)
- #
- def line(self, (h0, v0), (h1, v1)):
- #print 'line', ((h0, v0), (h1, v1))
- gl.bgnline()
- gl.v2i(h0, v0)
- gl.v2i(h1, v1)
- gl.endline()
- #
- def xorline(self, (h0, v0), (h1, v1)):
- #print 'xorline', ((h0, v0), (h1, v1))
- gl.logicop(LO_XOR)
- gl.color(self.bg)
- gl.bgnline()
- gl.v2i(h0, v0)
- gl.v2i(h1, v1)
- gl.endline()
- gl.color(self.fg)
- gl.logicop(LO_SRC)
- #
- def point(self, (h, v)):
- #print 'point', (h, v)
- gl.bgnpoint()
- gl.v2i(h, v)
- gl.endpoint()
- #
- def text(self, (h, v), string):
- #print 'text', ((h, v), string)
- if h < 0:
- # If the point is outside the window
- # the whole string isn't drawn.
- # Skip the beginning of the string.
- # XXX What if the font is bigger than 20 pixels?
- i, n = 0, len(string)
- while h < -MASK and i < n:
- h = h + self.font.getstrwidth(string[i])
- i = i + 1
- string = string[i:]
- gl.cmov2(h, v + self.baseline())
- self.font.setfont()
- fm.prstr(string)
- #
- def shade(self, (h, v), percent):
- pass # XXX
- #
- def baseline(self):
- (printermatched, fixed_width, xorig, yorig, xsize, ysize, \
- height, nglyphs) = self.font.getfontinfo()
- return height - yorig
- #
- def lineheight(self):
- (printermatched, fixed_width, xorig, yorig, xsize, ysize, \
- height, nglyphs) = self.font.getfontinfo()
- return height
- #
- def textbreak(self, string, width):
- # XXX Slooooow!
- n = len(string)
- nwidth = self.textwidth(string[:n])
- while nwidth > width:
- n = n-1
- nwidth = self.textwidth(string[:n])
- return n
- #
- def textwidth(self, string):
- return self.font.getstrwidth(string)
- #