From c839b0fd30dff64e49bc8d23077fd9c473d5abf2 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Wed, 21 Oct 1998 16:35:18 +0000 Subject: [PATCH] Added new version of mandelbrot demo from Bill Spitzak. git-svn-id: file:///fltk/svn/fltk/trunk@31 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- test/mandelbrot.cxx | 36 ++----------- test/mandelbrot.h | 15 +----- test/mandelbrot_ui.fl | 119 +++++++++++++++++++++++------------------- 3 files changed, 71 insertions(+), 99 deletions(-) diff --git a/test/mandelbrot.cxx b/test/mandelbrot.cxx index df8f531bd..e320aa181 100644 --- a/test/mandelbrot.cxx +++ b/test/mandelbrot.cxx @@ -1,5 +1,5 @@ // -// "$Id: mandelbrot.cxx,v 1.3 1998/10/21 14:21:33 mike Exp $" +// "$Id: mandelbrot.cxx,v 1.4 1998/10/21 16:35:17 mike Exp $" // // Mandelbrot set demo for the Fast Light Tool Kit (FLTK). // @@ -42,7 +42,7 @@ void set_idle() { static void window_callback(Fl_Widget*, void*) {exit(0);} int main(int argc, char **argv) { - make_window(mbrot); + mbrot.make_window(); mbrot.d->X = -.75; mbrot.d->scale = 2.5; mbrot.update_label(); @@ -162,7 +162,7 @@ int Drawing_Area::handle(int event) { new_display(); } else if (!julia) { if (!jbrot.d) { - make_window(jbrot); + jbrot.make_window(); jbrot.d->julia = 1; jbrot.d->X = 0; jbrot.d->Y = 0; @@ -196,34 +196,6 @@ void Drawing_Area::resize(int X,int Y,int W,int H) { Fl_Box::resize(X,Y,W,H); } -void brightness_slider_cb(Fl_Slider* o, Drawing_Window* s) { - s->d->brightness = int(o->value()); - s->d->new_display(); -} - -void iterations_slider_cb(Fl_Slider* o, Drawing_Window* s) { - s->d->iterations = 1<value()); - s->d->new_display(); -} - -void x_callback(Fl_Input* o, Drawing_Window* s) { - double v = atof(o->value()); - s->d->X = v; - s->d->new_display(); -} - -void y_callback(Fl_Input* o, Drawing_Window* s) { - double v = atof(o->value()); - s->d->Y = v; - s->d->new_display(); -} - -void w_callback(Fl_Input* o, Drawing_Window* s) { - double v = atof(o->value()); - s->d->scale = v; - s->d->new_display(); -} - // -// End of "$Id: mandelbrot.cxx,v 1.3 1998/10/21 14:21:33 mike Exp $". +// End of "$Id: mandelbrot.cxx,v 1.4 1998/10/21 16:35:17 mike Exp $". // diff --git a/test/mandelbrot.h b/test/mandelbrot.h index 12d8a68cc..51439d8ce 100644 --- a/test/mandelbrot.h +++ b/test/mandelbrot.h @@ -1,5 +1,5 @@ // -// "$Id: mandelbrot.h,v 1.3 1998/10/21 14:21:34 mike Exp $" +// "$Id: mandelbrot.h,v 1.4 1998/10/21 16:35:18 mike Exp $" // // Mandelbrot set header file for the Fast Light Tool Kit (FLTK). // @@ -29,8 +29,6 @@ #include #include -class Drawing_Window; - class Drawing_Area : public Fl_Box { void draw(); public: @@ -69,15 +67,6 @@ public: int idle(); }; -class Drawing_Window { -public: - Drawing_Area *d; - Fl_Slider *gamma_slider; - Fl_Input *x_input, *y_input, *w_input; - Fl_Window *window; - void update_label(); -}; - // -// End of "$Id: mandelbrot.h,v 1.3 1998/10/21 14:21:34 mike Exp $". +// End of "$Id: mandelbrot.h,v 1.4 1998/10/21 16:35:18 mike Exp $". // diff --git a/test/mandelbrot_ui.fl b/test/mandelbrot_ui.fl index 2c864aaad..2ab021f01 100644 --- a/test/mandelbrot_ui.fl +++ b/test/mandelbrot_ui.fl @@ -1,63 +1,74 @@ -# data file for FL User Interface Designer (fluid) +# data file for the Fltk User Interface Designer (fluid) version 0.99 +header_name {.H} +code_name {.C} gridx 10 gridy 10 snap 3 -Function {make_window(Drawing_Window& s)} {open +decl {\#include "mandelbrot.H"} {public +} + +decl {\#include } {} + +class Drawing_Window {open } { - Fl_Window {s.window} {open - xywh {92 109 429 510} - code0 {o->size_range(220,220);} + Function {make_window()} {open return_type void } { - Fl_Box {s.d} { - user_data {&s} user_data_type {Drawing_Window*} open - xywh {10 70 410 430} box 3 color {0 47} resizable - code0 {\#include "mandelbrot.H"} - class Drawing_Area - } - Fl_Input {s.x_input} { - label {x:} - user_data {&s} user_data_type {Drawing_Window*} - callback x_callback open - xywh {20 5 125 30} type 1 box 7 color {8 7} labelfont 11 labelsize 20 textfont 11 textsize 20 - code0 {o->when(FL_WHEN_ENTER_KEY|FL_WHEN_RELEASE);} - } - Fl_Input {s.y_input} { - label {y:} - user_data {&s} user_data_type {Drawing_Window*} - callback y_callback open - xywh {165 5 125 30} type 1 box 7 color {8 7} labelfont 11 labelsize 20 textfont 11 textsize 20 - code0 {o->when(FL_WHEN_ENTER_KEY|FL_WHEN_RELEASE);} - } - Fl_Input {s.w_input} { - label {w:} - user_data {&s} user_data_type {Drawing_Window*} - callback w_callback open - xywh {315 5 105 30} type 1 box 7 color {8 7} labelfont 11 labelsize 20 textfont 11 textsize 20 - code0 {o->when(FL_WHEN_ENTER_KEY|FL_WHEN_RELEASE);} - } - Fl_Slider {} { - label {brightness:} - user_data {&s} user_data_type {Drawing_Window*} - callback brightness_slider_cb open - xywh {70 40 160 15} type 1 box 7 labelsize 10 align 4 step 1 slider_size 0.1 - code0 {o->bounds(0,s.d->MAX_BRIGHTNESS);} - code2 {o->value(s.d->DEFAULT_BRIGHTNESS);} - code3 {o->slider(FL_UP_BOX);} - } - Fl_Box {} { - label {left: click = zoom out, drag = zoom in -right click: Julia set} open - xywh {230 40 190 30} labelsize 10 align 24 deactivate - } - Fl_Slider {} { - label {iterations:} - user_data {&s} user_data_type {Drawing_Window*} - callback iterations_slider_cb open selected - xywh {70 55 160 15} type 1 box 7 labelsize 10 align 4 step 1 slider_size 0.1 - code0 {o->bounds(1,s.d->MAX_ITERATIONS);} - code2 {o->value(s.d->DEFAULT_ITERATIONS);} - code3 {o->slider(FL_UP_BOX);} + Fl_Window window {open + xywh {178 479 450 520} resizable + code0 {o->size_range(220,220);} visible + } { + Fl_Box d { + user_data this user_data_type {void*} selected + xywh {20 80 410 430} box DOWN_BOX color 0 selection_color 47 resizable + class Drawing_Area + } + Fl_Input x_input { + label {x:} + callback {d->X = atof(o->value());; +d->new_display();} + xywh {30 15 125 30} type Float box THIN_DOWN_BOX color 8 selection_color 7 labelfont 11 labelsize 20 textfont 11 textsize 20 + code0 {o->when(FL_WHEN_ENTER_KEY|FL_WHEN_RELEASE);} + } + Fl_Input y_input { + label {y:} + callback {d->Y = atof(o->value()); +d->new_display();} + xywh {175 15 125 30} type Float box THIN_DOWN_BOX color 8 selection_color 7 labelfont 11 labelsize 20 textfont 11 textsize 20 + code0 {o->when(FL_WHEN_ENTER_KEY|FL_WHEN_RELEASE);} + } + Fl_Input w_input { + label {w:} + callback {d->scale = atof(o->value()); +d->new_display();} + xywh {325 15 105 30} type Float box THIN_DOWN_BOX color 8 selection_color 7 labelfont 11 labelsize 20 textfont 11 textsize 20 + code0 {o->when(FL_WHEN_ENTER_KEY|FL_WHEN_RELEASE);} + } + Fl_Slider {} { + label {brightness:} + callback {d->brightness = int(o->value()); +d->new_display();} + xywh {80 50 160 15} type Horizontal box THIN_DOWN_BOX labelsize 10 align 4 step 1 slider_size 0.1 + code0 {o->bounds(0,d->MAX_BRIGHTNESS);} + code2 {o->value(d->DEFAULT_BRIGHTNESS);} + code3 {o->slider(FL_UP_BOX);} + } + Fl_Box {} { + label {left: click = zoom out, drag = zoom in +right click: Julia set} + xywh {240 50 190 30} labelsize 10 align 24 deactivate + } + Fl_Slider {} { + label {iterations:} + callback {d->iterations = 1<value()); +d->new_display();} + xywh {80 65 160 15} type Horizontal box THIN_DOWN_BOX labelsize 10 align 4 step 1 slider_size 0.1 + code0 {o->bounds(1,d->MAX_ITERATIONS);} + code2 {o->value(d->DEFAULT_ITERATIONS);} + code3 {o->slider(FL_UP_BOX);} + } } } + decl {void update_label();} {public + } }