import hush.dv.api.*;
import hush.dv.widgets.Frame;
import hush.dv.widgets.Canvas;
public class DrawTool extends Canvas implements Application {
Widget root;
Tablet tablet;
public DrawTool() { System.out.println("meta handler created"); }
public DrawTool(String p, String options) {
super(p,"*"); // create empty button
init(options);
debug("DrawTool created");
}
public int operator() {
System.out.println("Calling DrawTool:" + _event.args(0) );
String[] argv = _event.argv();
if ("self".equals(argv[1])) tk.result(self().path());
else if ("drawtool".equals(argv[0]))
create(argv[1],_event.args(2)); // replaces quote
else if ("path".equals(argv[1])) tk.result(path());
else if ("pack".equals(argv[1])) pack(_event.args(2));
else self().eval( _event.args(1) ); // send through
return OK;
}
void create(String name, String options) {
DrawTool m = new DrawTool(name,options);
}
void init(String options) {
root = new Frame(path(),"-class Meta");
Frame frame = new Frame(root,"frame");
tablet = new Tablet(frame,"tablet",options);
ToolBox toolbox = new ToolBox(frame,tablet);
MenuBar menubar = new MenuBar(root,tablet,toolbox);
toolbox.pack("-side left -fill y -expand 0");
tablet.pack("-side left -fill both -expand 1");
menubar.pack();
frame.pack("-expand 1 -fill both");
redirect( tablet ); // the widget of interest
alias( this ); // to install the widget command
}
slide: The drawing tool