summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortomsmeding <hallo@tomsmeding.nl>2015-10-03 11:03:00 +0200
committertomsmeding <hallo@tomsmeding.nl>2015-10-03 11:03:00 +0200
commit5a93cdaf5d4fcefe664271bb8f233044059f3ad3 (patch)
treed7cc23a9b6187c3c8296c9dc580906ef7a02da84
parent36a317741a2eca593d083534b290afcc6d1661ef (diff)
evaluatebutton, histbrowser, file splitting, makefile
-rw-r--r--Makefile16
-rw-r--r--engine.cpp9
-rw-r--r--engine.h3
-rw-r--r--flogo.cpp50
4 files changed, 70 insertions, 8 deletions
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 <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);
diff --git a/flogo.cpp b/flogo.cpp
index 96ba34d..28b754b 100644
--- a/flogo.cpp
+++ b/flogo.cpp
@@ -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();