Skip to content
Snippets Groups Projects
TC_FXDC.rb 9.29 KiB
Newer Older
  • Learn to ignore specific revisions
  • require 'test/unit'
    
    require 'fox16'
    
    class TC_FXDC < Test::Unit::TestCase
    
      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
    
        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