#include "hush.h"
// The drawing_canvas responds to press, motion and release events
class drawing_canvas : public canvas {
public:
drawing_canvas( char* path ) : canvas(path) {
geometry(200,100);
bind(this); // become sensitive
dragging = 0;
}
void press( event& ) { dragging = 1; }
void motion( event& e) {
if (dragging) circle(e.x(),e.y(),1,"-fill black");
}
void release( event& ) { dragging = 0; }
protected:
int dragging;
};
// To initialize the application
class application : public session {
public:
application( int argc, char* argv[] )
: session(argc,argv,"draw") {}
void main() {
canvas* c = new drawing_canvas(".draw");
c->pack();
tk->pack(".quit");
}
};
int main (int argc, char* argv[]) {
session* s = new application(argc,argv);
return s->run();
}
slide: Drawing canvas