guitoolstest.frink

Download or view guitoolstest.frink in plain text format


// Small test of creating a GUI in Frink

// Helper function from the guitools package.

// NOTE: This method of creating GUIs is old, non-portable, and obsolete.
// It is not even compiled into Frink distributions anymore.  This file
// is only here for historical purposes.

// c will be an instance of a FrinkCanvas object which is just a specialization
// of java.awt.Canvas which we can set our onPaint method.
c = createCanvasFrame[]
f=c.getParent[]
f.setSize[200,200]
f.setTitle["Resize me!"]
f.show[]

// This is a paint function that will get called when Java calls onPaint
// to refresh the GUI.  It's just an anonymous function that takes one
// parameter g (which will be a java.awt.Graphics object that we draw to.)
// The other calls are methods of java.awt.Canvas
ff = {|g|
   black = staticJava["java.awt.Color", "BLACK"]
   g.setColor[black]
   ww = getWidth[]
   hh = getHeight[]
   g.fillRect[0,0,ww,hh]

   yellow = staticJava["java.awt.Color", "YELLOW"]
   g.setColor[yellow]
   w = min[ww, hh] - 20
   g.fillOval[10,10,w,w]

   g.setColor[black]
   g.fillOval[int[w/3], int[w/3], int[w/8], int[w/8]]
   g.fillOval[int[w*(2/3)], int[w/3], int[w/8], int[w/8]]
   g.fillRect[int[w*(1/4)], int[w*(2/3)], int[w*(2/3)], int[w/15]]
}

// Set that function as the onPaint function.
c.setPaint[ff]

// Create an empty update method.  You rarely need this unless you're doing
// some sort of incremental painting.
//uu = {|g| paint[g]}
//c.setUpdate[uu]

// Force a repaint.  (setPaint may do this in the future.)
c.repaint[]


Download or view guitoolstest.frink in plain text format


This is a program written in the programming language Frink.
For more information, view the Frink Documentation or see More Sample Frink Programs.

Alan Eliasen was born 20145 days, 7 hours, 26 minutes ago.