def polybox args, key_args
      dx, dy = args
      
      # return a proc to make the info needed to instantiate/update
      proc do |tkaroid, cos_r, sin_r|
        x = tkaroid.x
        y = tkaroid.y
        params = tkaroid.params

        ex = dx[params] rescue dx
        ey = dy[params] rescue dy

        points =
        [ [ ex,  ey],
          [ ex, -ey],
          [-ex, -ey],
          [-ex,  ey] ]

        coords = []
        points.each do |xv, yv|
          coords << x + xv * cos_r - yv * sin_r
          coords << y + xv * sin_r + yv * cos_r
        end

        ## possible to skip below if no changes?
        config = {}
        handle_generic_config(config, params, key_args)

        [TkcPolygon, coords, config]
      end
    end
def polybox args, key_args
      dx, dy = args
      
      # return a proc to make the info needed to instantiate/update
      proc do |tkaroid, cos_r, sin_r|
        x = tkaroid.x
        y = tkaroid.y
        params = tkaroid.params

        ex = dx[params] rescue dx
        ey = dy[params] rescue dy

        points =
        [ [ ex,  ey],
          [ ex, -ey],
          [-ex, -ey],
          [-ex,  ey] ]

        coords = []
        points.each do |xv, yv|
          coords << x + xv * cos_r - yv * sin_r
          coords << y + xv * sin_r + yv * cos_r
        end

        ## possible to skip below if no changes?
        config = {}
        handle_generic_config(config, params, key_args)

        [TkcPolygon, coords, config]
      end
    end
bitmap
 anchor anchorPos
 height pixels
 width pixels
 window pathName
    def window args, key_args
      x, y = args

    end
 An embedded window that shows a list of key-value pairs.
    def proplist args, key_args
    end
 just a very simple example!