#include #include #include #include #include #include #include #include #include #include #include #include #include "engine.h" using namespace std; const int WIDTH=1000,HEIGHT=1000; Fl_Window *window; Fl_Scroll *drawscroll; Fl_Box *drawimagebox,*turtleimagebox; Fl_RGB_Image *drawimage,*turtleimage; Fl_Select_Browser *histbrowser; Fl_Input *cmdinput; Fl_Button *evaluatebutton; uchar *imagebuf,*turtlebuf; const uchar* someimg(void){ uchar *buf=new uchar[3*WIDTH*HEIGHT]; int x,y; for(y=0;yinsert(histbrowser->size(),inp->value()); histbrowser->bottomline(histbrowser->size()); logocommand(inp->value()); inp->value(NULL); } void evaluatebuttoncallback(Fl_Widget*){ histbrowser->insert(histbrowser->size(),cmdinput->value()); histbrowser->bottomline(histbrowser->size()); logocommand(cmdinput->value()); cmdinput->value(NULL); } void histcallback(Fl_Widget *wid){ Fl_Select_Browser *br=(Fl_Select_Browser*)wid; cmdinput->value(br->text(br->value())); } int main(int argc,char **argv){ window=new Fl_Window(1016,700,"FLogo"); Fl_Group::current(0); //manual adding to widgets imagebuf=new uchar[WIDTH*HEIGHT*3]; //RGB memset(imagebuf,255,WIDTH*HEIGHT*3*sizeof(uchar)); turtlebuf=new uchar[WIDTH*HEIGHT*2]; //GA memset(turtlebuf,0,WIDTH*HEIGHT*2*sizeof(uchar)); drawscroll=new Fl_Scroll(0,0,window->w(),window->h()-150); drawimagebox=new Fl_Box(0,0,WIDTH,HEIGHT); drawimage=new Fl_RGB_Image(imagebuf,WIDTH,HEIGHT); drawimagebox->image(drawimage); drawscroll->add(drawimagebox); turtleimagebox=new Fl_Box(0,0,WIDTH,HEIGHT); turtleimage=new Fl_RGB_Image(turtlebuf,WIDTH,HEIGHT,2); turtleimagebox->image(turtleimage); drawscroll->add(turtleimagebox); window->add(drawscroll); cmdinput=new Fl_Input(0,window->h()-25,window->w()-150,25); cmdinput->when(FL_WHEN_ENTER_KEY|FL_WHEN_NOT_CHANGED); cmdinput->callback(cmdinputcallback); window->add(cmdinput); evaluatebutton=new Fl_Button(cmdinput->x()+cmdinput->w(),cmdinput->y(),80,cmdinput->h(),"Evaluate"); evaluatebutton->callback(evaluatebuttoncallback); window->add(evaluatebutton); histbrowser=new Fl_Select_Browser(0,drawscroll->y()+drawscroll->h(),cmdinput->w(),cmdinput->y()-(drawscroll->y()+drawscroll->h())); histbrowser->callback(histcallback); window->add(histbrowser); histbrowser->add(""); //add blank line window->resizable(drawscroll); window->end(); Fl::visual(FL_RGB); //window->callback(maincallback); //disable esc window closing window->show(argc,argv); return Fl::run(); }