require 'test/unit'
require 'fox16'
class TC_FXDC < Test::Unit::TestCase
include Fox
def setup
if FXApp.instance.nil?
@app = FXApp.new('TC_FXDC', 'FXRuby')
@app.init([])
else
@app = FXApp.instance
end
@dc = FXDC.new(@app)
end
def testGetApp
app = @dc.app
assert(app)
assert_kind_of(FXApp, app)
assert_same(@app, app)
end
def testReadPixel
x, y = 0, 0
pixel = @dc.readPixel(x, y)
assert(pixel)
end
def testDrawPoint
@dc.drawPoint(0, 0)
end
def testDrawPoints
p1 = FXPoint.new
p2 = FXPoint.new
@dc.drawPoints([p1, p2])
end
def testDrawPointsRel
p1 = FXPoint.new
p2 = FXPoint.new
@dc.drawPointsRel([p1, p2])
end
def testDrawLine
x1, y1, x2, y2 = 0, 0, 5, 5
@dc.drawLine(x1, y1, x2, y2)
end
def testDrawLines
points = [ FXPoint.new, FXPoint.new ]
@dc.drawLines(points)
end
def testDrawLinesRel
points = [ FXPoint.new, FXPoint.new ]
@dc.drawLinesRel(points)
end
def testDrawLineSegments
segments = [ FXSegment.new, FXSegment.new ]
@dc.drawLineSegments(segments)
end
def testDrawArc
x, y, w, h, ang1, ang2 = 0, 0, 10, 10, 45, 135
@dc.drawArc(x, y, w, h, ang1, ang2)
end
def testDrawArcs
arcs = [ FXArc.new, FXArc.new ]
@dc.drawArcs(arcs)
end
def testFillRectangle
x, y, w, h = 0, 0, 20, 20
@dc.fillRectangle(x, y, w, h)
end
def testFillRectangles
rectangles = [ FXRectangle.new, FXRectangle.new ]
@dc.fillRectangles(rectangles)
end
def testFillArc
x, y, w, h, ang1, ang2 = 0, 0, 10, 10, 45, 135
@dc.fillArc(x, y, w, h, ang1, ang2)
end
def testFillArcs
arcs = [ FXArc.new, FXArc.new ]
@dc.fillArcs(arcs)
end
def testFillPolygon
points = [ FXPoint.new, FXPoint.new ]
@dc.fillPolygon(points)
end
def testFillConcavePolygon
points = [ FXPoint.new, FXPoint.new ]
@dc.fillConcavePolygon(points)
end
def testFillComplexPolygon
points = [ FXPoint.new, FXPoint.new ]
@dc.fillComplexPolygon(points)
end
def testFillPolygonRel
points = [ FXPoint.new, FXPoint.new ]
@dc.fillPolygonRel(points)
end
def testFillConcavePolygonRel
points = [ FXPoint.new, FXPoint.new ]
@dc.fillConcavePolygonRel(points)
end
def testFillComplexPolygonRel
points = [ FXPoint.new, FXPoint.new ]
@dc.fillComplexPolygonRel(points)
end
def testDrawHashBox
x, y, w, h, b = 0, 0, 20, 20, 2
@dc.drawHashBox(x, y, w, h)
@dc.drawHashBox(x, y, w, h, b)
end
def testDrawFocusRectangle
x, y, w, h = 0, 0, 5, 5
@dc.drawFocusRectangle(x, y, w, h)
end
def testDrawArea
source = FXImage.new(@app)
sx, sy, sw, sh = 0, 0, 10, 10
dx, dy = 0, 0
@dc.drawArea(source, sx, sy, sw, sh, dx, dy)
end
def testDrawImage
image, dx, dy = FXImage.new(@app), 0, 0
@dc.drawImage(image, dx, dy)
end
def testDrawBitmap
bitmap, dx, dy = FXBitmap.new(@app), 0, 0
@dc.drawBitmap(bitmap, dx, dy)
end
def testDrawIcon
icon, dx, dy = FXIcon.new(@app), 0, 0
@dc.drawIcon(icon, dx, dy)
end
def testDrawIconSunken
icon, dx, dy = FXIcon.new(@app), 0, 0
@dc.drawIconSunken(icon, dx, dy)
end
def testDrawIconShaded
icon, dx, dy = FXIcon.new(@app), 0, 0
@dc.drawIconShaded(icon, dx, dy)
end
def testDrawText
x, y, str = 0, 0, "Hello"
@dc.drawText(x, y, str)
end
def testDrawImageText
x, y, str = 0, 0, "Hello"
@dc.drawImageText(x, y, str)
end
def testForeground
fg = FXRGB(192, 192, 192)
@dc.setForeground(fg)
assert_equal(fg, @dc.foreground)
assert_equal(fg, @dc.getForeground)
@dc.foreground = fg
assert_equal(fg, @dc.foreground)
assert_equal(fg, @dc.getForeground)
end
def testBackground
bg = FXRGB(192, 192, 192)
@dc.setBackground(bg)
assert_equal(bg, @dc.background)
assert_equal(bg, @dc.getBackground)
@dc.background = bg
assert_equal(bg, @dc.background)
assert_equal(bg, @dc.getBackground)
end
def testDashes
dashOffset, dashPattern = 0, [1, 2, 3, 4]
@dc.setDashes(dashOffset, dashPattern)
assert_equal(dashPattern, @dc.dashPattern)
assert_equal(dashPattern, @dc.getDashPattern())
assert_equal(dashOffset, @dc.dashOffset)
assert_equal(dashOffset, @dc.getDashOffset())
end
def testLineWidth
lineWidth = 2
@dc.setLineWidth(lineWidth)
assert_equal(lineWidth, @dc.lineWidth)
assert_equal(lineWidth, @dc.getLineWidth())
@dc.lineWidth = lineWidth
assert_equal(lineWidth, @dc.lineWidth)
assert_equal(lineWidth, @dc.getLineWidth())
end
def testLineCap
for lineCap in [CAP_NOT_LAST, CAP_BUTT, CAP_ROUND, CAP_PROJECTING]
@dc.setLineCap(lineCap)
assert_equal(lineCap, @dc.lineCap)
assert_equal(lineCap, @dc.getLineCap())
@dc.lineCap = lineCap
assert_equal(lineCap, @dc.lineCap)
assert_equal(lineCap, @dc.getLineCap())
end
end
def testLineJoin
for lineJoin in [JOIN_MITER, JOIN_ROUND, JOIN_BEVEL]
@dc.setLineJoin(lineJoin)
assert_equal(lineJoin, @dc.lineJoin)
assert_equal(lineJoin, @dc.getLineJoin())
@dc.lineJoin = lineJoin
assert_equal(lineJoin, @dc.lineJoin)
assert_equal(lineJoin, @dc.getLineJoin())
end
end
def testLineStyle
for lineStyle in [LINE_SOLID, LINE_ONOFF_DASH, LINE_DOUBLE_DASH]
@dc.setLineStyle(lineStyle)
assert_equal(lineStyle, @dc.lineStyle)
assert_equal(lineStyle, @dc.getLineStyle())
@dc.lineStyle = lineStyle
assert_equal(lineStyle, @dc.lineStyle)
assert_equal(lineStyle, @dc.getLineStyle())
end
end
def testFillStyle
for fillStyle in [FILL_SOLID, FILL_TILED, FILL_STIPPLED, FILL_OPAQUESTIPPLED]
@dc.setFillStyle(fillStyle)
assert_equal(fillStyle, @dc.fillStyle)
assert_equal(fillStyle, @dc.getFillStyle())
@dc.fillStyle = fillStyle
assert_equal(fillStyle, @dc.fillStyle)
assert_equal(fillStyle, @dc.getFillStyle())
end
end
def testFillRule
for fillRule in [RULE_EVEN_ODD, RULE_WINDING]
@dc.setFillRule(fillRule)
assert_equal(fillRule, @dc.fillRule)
assert_equal(fillRule, @dc.getFillRule())
@dc.fillRule = fillRule
assert_equal(fillRule, @dc.fillRule)
assert_equal(fillRule, @dc.getFillRule())
end
end
def testFunction
for func in [BLT_CLR, BLT_SRC_AND_DST, BLT_SRC_AND_NOT_DST, BLT_SRC,
BLT_NOT_SRC_AND_DST, BLT_DST, BLT_SRC_XOR_DST, BLT_SRC_OR_DST,
BLT_NOT_SRC_AND_NOT_DST, BLT_NOT_SRC_XOR_DST, BLT_NOT_DST,
BLT_SRC_OR_NOT_DST, BLT_NOT_SRC, BLT_NOT_SRC_OR_DST,
BLT_NOT_SRC_OR_NOT_DST, BLT_SET]
@dc.setFunction(func)
assert_equal(func, @dc.function)
assert_equal(func, @dc.getFunction())
@dc.function = func
assert_equal(func, @dc.function)
assert_equal(func, @dc.getFunction())
end
end
def testTile
image, dx, dy = FXImage.new(@app), 0, 0
@dc.setTile(image)
@dc.setTile(image, dx)
@dc.setTile(image, dx, dy)
assert_same(image, @dc.tile)
assert_same(image, @dc.getTile())
end
def testStippleBitmap
bitmap, dx, dy = FXBitmap.new(@app), 0, 0
@dc.setStipple(bitmap)
@dc.setStipple(bitmap, dx)
@dc.setStipple(bitmap, dx, dy)
assert_same(bitmap, @dc.stippleBitmap)
assert_same(bitmap, @dc.getStippleBitmap())
end
def testStipplePattern
dx, dy = 0, 0
patterns = [STIPPLE_0, STIPPLE_NONE, STIPPLE_BLACK, STIPPLE_1,
STIPPLE_2, STIPPLE_3, STIPPLE_4, STIPPLE_5, STIPPLE_6,
STIPPLE_7, STIPPLE_8, STIPPLE_GRAY, STIPPLE_9, STIPPLE_10,
STIPPLE_11, STIPPLE_12, STIPPLE_13, STIPPLE_14, STIPPLE_15,
STIPPLE_16, STIPPLE_WHITE, STIPPLE_HORZ, STIPPLE_VERT, STIPPLE_CROSS,
STIPPLE_DIAG, STIPPLE_REVDIAG, STIPPLE_CROSSDIAG]
for pat in patterns
@dc.setStipple(pat)
@dc.setStipple(pat, dx)
@dc.setStipple(pat, dx, dy)
assert_equal(pat, @dc.stipplePattern)
assert_equal(pat, @dc.getStipplePattern())
end
end
# def testClipRegion
# region = FXRegion.new(0, 0, 10, 10)
# @dc.setClipRegion(region)
# end
def testClipRectangle
clipX, clipY, clipWidth, clipHeight = 0, 0, 10, 20
clipRectangle = FXRectangle.new(clipX, clipY, clipWidth, clipHeight)
@dc.setClipRectangle(clipX, clipY, clipWidth, clipHeight)
# assert_equal(clipX, @dc.clipX)
# assert_equal(clipY, @dc.clipY)
# assert_equal(clipWidth, @dc.clipWidth)
# assert_equal(clipHeight, @dc.clipHeight)
# assert_equal(clipRectangle, @dc.clipRectangle)
@dc.setClipRectangle(clipRectangle)
# assert_equal(clipX, @dc.clipX)
# assert_equal(clipY, @dc.clipY)
# assert_equal(clipWidth, @dc.clipWidth)
# assert_equal(clipHeight, @dc.clipHeight)
# assert_equal(clipRectangle, @dc.clipRectangle)
@dc.clearClipRectangle
end
def testClipMask
bitmap, dx, dy = FXBitmap.new(@app), 0, 0
@dc.setClipMask(bitmap)
@dc.setClipMask(bitmap, dx)
@dc.setClipMask(bitmap, dx, dy)
@dc.clearClipMask
end
def testTextFont
textFont = @app.normalFont
@dc.setFont(textFont)
assert_same(textFont, @dc.font)
assert_same(textFont, @dc.getFont())
@dc.font = textFont
assert_same(textFont, @dc.font)
assert_same(textFont, @dc.getFont())
end
def testClipChildren
@dc.clipChildren(true)
@dc.clipChildren(false)
end
end