diff options
author | tomsmeding <hallo@tomsmeding.nl> | 2015-10-03 11:03:00 +0200 |
---|---|---|
committer | tomsmeding <hallo@tomsmeding.nl> | 2015-10-03 11:03:00 +0200 |
commit | 5a93cdaf5d4fcefe664271bb8f233044059f3ad3 (patch) | |
tree | d7cc23a9b6187c3c8296c9dc580906ef7a02da84 | |
parent | 36a317741a2eca593d083534b290afcc6d1661ef (diff) |
evaluatebutton, histbrowser, file splitting, makefile
-rw-r--r-- | Makefile | 16 | ||||
-rw-r--r-- | engine.cpp | 9 | ||||
-rw-r--r-- | engine.h | 3 | ||||
-rw-r--r-- | flogo.cpp | 50 |
4 files changed, 70 insertions, 8 deletions
@@ -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 <iostream> + +#include "engine.h" + +using namespace std; + +void logocommand(const char *str){ + cout<<str<<endl; +} diff --git a/engine.h b/engine.h new file mode 100644 index 0000000..9c3a0fe --- /dev/null +++ b/engine.h @@ -0,0 +1,3 @@ +#pragma once + +void logocommand(const char *str); @@ -7,8 +7,12 @@ #include <FL/Fl_Multiline_Input.H> #include <FL/Fl_Scroll.H> #include <FL/Fl_Image.H> +#include <FL/Fl_Select_Browser.H> +#include <FL/Fl_Button.H> #include <FL/Fl_draw.H> +#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<<inp->value()<<endl; + histbrowser->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(); |