#include <InterViews/world.h>
#include <InterViews/message.h>
#include <InterViews/glue.h>
#include <InterViews/box.h>
#include <InterViews/Graphic/polygons.h>
#include <InterViews/Graphic/damage.h>
#include <InterViews/frame.h>
#include <stdio.h>
#include <stdlib.h>


class MyFrame: public Message {
 public:
   MyFrame(char* i): Message(i) {
     angle= 0.0;
     FullGraphic dfault;
     
     dfault.FillBg(true);
     dfault.SetColors(pblack, pwhite);
     dfault.SetPattern(psolid);
     dfault.SetBrush(psingle);
     dfault.SetFont(pstdfont);

     rect_ = new Rect(2,3, 50,40, &dfault);

   }
   
   virtual void Redraw(Coord x, Coord y, Coord x1, Coord y1) {
   Message::Redraw(x,y, x1,y1);
     puts("in redraw");
     rect_->Draw(canvas, 0, 0, xmax, ymax);
     rect_->Rotate(angle += .3, 30.0, 10.0);
   }
 protected:
     float angle;
   Damage* damage;
   Rect* rect_;
 };


int main (int argc, char* argv[]) {
    World* world = new World("logo", 0, 0, argc, argv);

    InitPPaint();
    world->Insert(new Frame(new HBox(new HGlue(60),
			   new VBox(new VGlue(60),
				    new MyFrame("Hello world"), 
				    new MyFrame("Hello world"), 
				    new VGlue(60)),
			   new HGlue(60))));

    world->Run();
    return 0;
}
