From 5a93cdaf5d4fcefe664271bb8f233044059f3ad3 Mon Sep 17 00:00:00 2001 From: tomsmeding Date: Sat, 3 Oct 2015 11:03:00 +0200 Subject: evaluatebutton, histbrowser, file splitting, makefile --- Makefile | 16 +++++++++++++++- engine.cpp | 9 +++++++++ engine.h | 3 +++ flogo.cpp | 50 +++++++++++++++++++++++++++++++++++++++++++------- 4 files changed, 70 insertions(+), 8 deletions(-) create mode 100644 engine.cpp create mode 100644 engine.h diff --git a/Makefile b/Makefile index 811d88e..98c2323 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,17 @@ CXX = g++ +CXXFLAGS = -Wall -Wextra -pedantic -std=c++11 -O2 LIBS = -lfltk -CXXFLAGS = -Wall -Wextra -std=c++11 -O2 $(LIBS) +BIN = flogo + +.PHONY: all clean remake + +all: $(BIN) + +clean: + rm -f $(BIN) *.o + +remake: clean all + + +$(BIN): flogo.o engine.o + $(CXX) $(CXXFLAGS) $(LIBS) -o $(BIN) $^ diff --git a/engine.cpp b/engine.cpp new file mode 100644 index 0000000..2f4fb79 --- /dev/null +++ b/engine.cpp @@ -0,0 +1,9 @@ +#include + +#include "engine.h" + +using namespace std; + +void logocommand(const char *str){ + cout< #include #include +#include +#include #include +#include "engine.h" + using namespace std; const int WIDTH=1000,HEIGHT=1000; @@ -16,10 +20,13 @@ const int WIDTH=1000,HEIGHT=1000; Fl_Window *window; Fl_Scroll *drawscroll; -Fl_Box *drawimagebox; -Fl_RGB_Image *drawimage; +Fl_Box *drawimagebox,*turtleimagebox; +Fl_RGB_Image *drawimage,*turtleimage; +Fl_Select_Browser *histbrowser; Fl_Input *cmdinput; -uchar *imagebuf; +Fl_Button *evaluatebutton; + +uchar *imagebuf,*turtlebuf; const uchar* someimg(void){ @@ -42,22 +49,42 @@ void maincallback(Fl_Widget*,void*){ void cmdinputcallback(Fl_Widget *wid){ Fl_Input *inp=(Fl_Input*)wid; - cout<value()<insert(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); - Fl_Group::current(0); + window=new Fl_Window(1016,700,"FLogo"); + Fl_Group::current(0); //manual adding to widgets - imagebuf=new uchar[WIDTH*HEIGHT*3]; + 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); @@ -65,6 +92,15 @@ int main(int argc,char **argv){ 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(); -- cgit v1.2.3