summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/GipfelWidget.H42
-rw-r--r--src/GipfelWidget.cxx79
-rw-r--r--src/Makefile17
-rw-r--r--src/gipfel.cxx14
4 files changed, 137 insertions, 15 deletions
diff --git a/src/GipfelWidget.H b/src/GipfelWidget.H
new file mode 100644
index 0000000..732329d
--- /dev/null
+++ b/src/GipfelWidget.H
@@ -0,0 +1,42 @@
+//
+// "$Id: GipfelWidget.H,v 1.1 2005/04/13 15:36:36 hofmann Exp $"
+//
+// X11 header file for the Fast Light Tool Kit (FLTK).
+//
+// Copyright 2004 by Johannes Hofmann
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Library General Public License for more details.
+//
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+//
+
+#ifndef GipfelWidget_H
+#define GipfelWidget_H
+
+#include <FL/Fl_Overlay_Window.H>
+
+class GipfelWidget : public Fl_Overlay_Window {
+ private:
+ Fl_Image *img;
+
+ public:
+ GipfelWidget(int X,int Y,int W, int H);
+
+ int load(const char *file);
+
+ void draw_overlay();
+
+ void draw();
+};
+#endif
diff --git a/src/GipfelWidget.cxx b/src/GipfelWidget.cxx
new file mode 100644
index 0000000..8a3aa7b
--- /dev/null
+++ b/src/GipfelWidget.cxx
@@ -0,0 +1,79 @@
+//
+// "$Id: GipfelWidget.cxx,v 1.1 2005/04/13 15:36:36 hofmann Exp $"
+//
+// PSEditWidget routines.
+//
+// Copyright 2004 by Johannes Hofmann
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Library General Public License for more details.
+//
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+//
+
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <fcntl.h>
+#include <errno.h>
+
+#include <FL/Fl.H>
+#include <FL/Fl_Shared_Image.H>
+#include <FL/Fl_JPEG_Image.H>
+#include <FL/fl_draw.H>
+#include <FL/x.H>
+
+#include "GipfelWidget.H"
+
+
+GipfelWidget::GipfelWidget(int X,int Y,int W, int H): Fl_Overlay_Window(X, Y, W, H) {
+
+ img = NULL;
+ fl_register_images();
+}
+
+int
+GipfelWidget::load(const char *file) {
+ img = new Fl_JPEG_Image(file);
+
+ if (img == NULL) {
+ return 1;
+ }
+
+ w(img->w());
+ h(img->h());
+ return 0;
+}
+
+
+void
+GipfelWidget::draw() {
+ if (img == NULL) {
+ return;
+ }
+
+ img->draw(0,0,w(),h(),0,0);
+}
+
+void
+GipfelWidget::draw_overlay() {
+ fl_color(FL_RED);
+
+ fl_draw_box(FL_UP_BOX, 10, 10, 25,25, FL_GRAY);
+}
+
+
diff --git a/src/Makefile b/src/Makefile
index 5f7ab8d..4e02613 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,21 +1,22 @@
CC=gcc
CPP=c++
CFLAGS=-g -I/usr/X11R6/include
-LDFLAGS=-g
+CXXFLAGS=-g -I/usr/X11R6/include
+LDFLAGS=-g
-OBJECTS=panorama.o
+OBJECTS=flmountains.o GipfelWidget.o
-%.o: %.c
- $(CC) -c $(CFLAGS) $*.c
+#%.o: %.c
+# $(CC) -c $(CFLAGS) $*.c
%.o: %.cxx
- $(CPP) -c $(CFLAGS) $*.c
+ $(CPP) -c $(CFLAGS) $*.cxx
-panorama: $(OBJECTS)
- $(CC) -o panorama $(OBJECTS) -lm
+gipfel: $(OBJECTS)
+ $(CC) -o gipfel $(OBJECTS) -L/usr/X11R6/lib -lm -lfltk -lfltk_images
flmountains: $(flmountains.o)
$(CPP) -o flmountains flmountains.o -L/usr/X11R6/lib -lm -lfltk -lfltk_images
clean:
- rm -f panorama $(OBJECTS)
+ rm -f gipfel $(OBJECTS)
diff --git a/src/gipfel.cxx b/src/gipfel.cxx
index 70657f3..e72703d 100644
--- a/src/gipfel.cxx
+++ b/src/gipfel.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: gipfel.cxx,v 1.1 2005/04/12 20:34:41 hofmann Exp $"
+// "$Id: gipfel.cxx,v 1.2 2005/04/13 15:36:36 hofmann Exp $"
//
// flpsed program.
//
@@ -40,9 +40,8 @@
#include <FL/Fl_Int_Input.H>
#include <FL/Fl_Menu_Bar.H>
#include <FL/Fl_Menu_Item.H>
-#include <FL/Fl_JPEG_Image.H>
-#include <FL/Fl_Shared_Image.H>
+#include "GipfelWidget.H"
char *filename;
@@ -120,16 +119,16 @@ int main(int argc, char** argv) {
filename = my_argv[0];
}
- fl_register_images();
+
win = new Fl_Window(600,700);
m = new Fl_Menu_Bar(0, 0, 600, 30);
m->menu(menuitems);
scroll = new Fl_Scroll(0, 30, win->w(), win->h()-30);
fprintf(stderr, "%s\n", filename);
+
+ GipfelWidget *gipf = new GipfelWidget(0,30,500,500);
- Fl_Image *img = new Fl_JPEG_Image(filename);
- Fl_Box *b = new Fl_Box(0, 0, img->w(), img->h());
- b->image(img);
+ gipf->load(filename);
scroll->end();
@@ -137,6 +136,7 @@ int main(int argc, char** argv) {
win->end();
win->show(1, argv);
+ gipf->redraw_overlay();
return Fl::run();
}