diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/GipfelWidget.H | 42 | ||||
-rw-r--r-- | src/GipfelWidget.cxx | 79 | ||||
-rw-r--r-- | src/Makefile | 17 | ||||
-rw-r--r-- | src/gipfel.cxx | 14 |
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(); } |