summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortomsmeding <hallo@tomsmeding.nl>2015-10-03 09:59:30 +0200
committertomsmeding <hallo@tomsmeding.nl>2015-10-03 09:59:30 +0200
commit36a317741a2eca593d083534b290afcc6d1661ef (patch)
treed7ee28e29496d86ffc5a24f29a0e2eeb6af939ee
Initial!
-rw-r--r--.gitignore3
-rw-r--r--Makefile3
-rw-r--r--flogo.cpp75
3 files changed, 81 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5e3ca3a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+flogo
+*.o
+*.dSYM
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..811d88e
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,3 @@
+CXX = g++
+LIBS = -lfltk
+CXXFLAGS = -Wall -Wextra -std=c++11 -O2 $(LIBS)
diff --git a/flogo.cpp b/flogo.cpp
new file mode 100644
index 0000000..96ba34d
--- /dev/null
+++ b/flogo.cpp
@@ -0,0 +1,75 @@
+#include <iostream>
+#include <cmath>
+#include <FL/Fl.H>
+#include <FL/Fl_Window.H>
+#include <FL/Fl_Box.H>
+#include <FL/Fl_Input.H>
+#include <FL/Fl_Multiline_Input.H>
+#include <FL/Fl_Scroll.H>
+#include <FL/Fl_Image.H>
+#include <FL/Fl_draw.H>
+
+using namespace std;
+
+const int WIDTH=1000,HEIGHT=1000;
+
+
+Fl_Window *window;
+Fl_Scroll *drawscroll;
+Fl_Box *drawimagebox;
+Fl_RGB_Image *drawimage;
+Fl_Input *cmdinput;
+uchar *imagebuf;
+
+
+const uchar* someimg(void){
+ uchar *buf=new uchar[3*WIDTH*HEIGHT];
+ int x,y;
+ for(y=0;y<HEIGHT;y++){
+ for(x=0;x<WIDTH;x++){
+ buf[(WIDTH*y+x)*3+0]=(int)sqrt((999-x)*(999-x)+y*y)/100*20;
+ buf[(WIDTH*y+x)*3+1]=(int)sqrt(x*x+y*y)/100*20;
+ buf[(WIDTH*y+x)*3+2]=(int)sqrt((500-x)*(500-x)+(0-y)*(0-y))/100*20;
+ }
+ }
+ return buf;
+}
+
+void maincallback(Fl_Widget*,void*){
+ if(Fl::event()==FL_SHORTCUT&&Fl::event_key()==FL_Escape)return;
+ exit(0);
+}
+
+void cmdinputcallback(Fl_Widget *wid){
+ Fl_Input *inp=(Fl_Input*)wid;
+ cout<<inp->value()<<endl;
+ inp->value(NULL);
+}
+
+int main(int argc,char **argv){
+ window=new Fl_Window(1016,700);
+ Fl_Group::current(0);
+
+ imagebuf=new uchar[WIDTH*HEIGHT*3];
+ memset(imagebuf,255,WIDTH*HEIGHT*3*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);
+ 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);
+
+ window->resizable(drawscroll);
+
+ window->end();
+ Fl::visual(FL_RGB);
+ //window->callback(maincallback); //disable esc window closing
+ window->show(argc,argv);
+ return Fl::run();
+}