main
{
w = new window;
w.menu = new menu
<< (new menu ("&Draw")
<< (line_menu = new menuitem ("&Line"))
<< (circle_menu = new menuitem ("&Circle"))
<< (rectangle_menu = new menuitem ("&Rectangle")));
w.display_list = new displaylist;
line ();
w.show;
}
set_figure (menuitem, type)
{
if (::menuitem)
::menuitem.checked = false;
(::menuitem = menuitem).checked = true;
figure = type;
}
line {set_figure (line_menu, "line");}
circle {set_figure (circle_menu, "circle");}
rectangle {set_figure (rectangle_menu, "rectangle");}
startdrag (x1, y1, x2, y2)
{
w.cursor = "cross";
obj = new (figure) (x1, y1, x2, y2);
#pragma new circle, line, rectangle
w.xor = true;
obj.draw (w);
}
drag (x,y)
{
obj.draw (w);
obj.stretch_to (x, y);
obj.draw (w);
}
enddrag (x, y)
{
w.xor = false;
obj.draw (w);
w.display_list << obj;
w.cursor = "arrow";
}
// End of File