DO NOT REPLY TO THIS MESSAGE. INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.
[STR New]
Link: http://www.fltk.org/str.php?L2130
Version: 1.1.9
Link: http://www.fltk.org/str.php?L2130
Version: 1.1.9
//
// This demonstrates a bug in FLTK-1.1.9 . If you shrink the window
// vertically of the window then after a short while the boxes
// suddenly disappear. They reappear if you stretch the window back
// to its vertical extent, and disappear again if you shrink it
// again.
//
#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Pack.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Check_Button.H>
static Fl_Box *bx = 0;
static Fl_Box *by = 0;
static Fl_Box *bw = 0;
static Fl_Box *bh = 0;
static Fl_Box *bw2 = 0;
static Fl_Box *bh2 = 0;
static Fl_Check_Button *bc = 0;
static char buf[20];
#include <stdio.h>
class Fl_Pack_Test : public Fl_Pack {
protected:
void draw() {
clip_children(bc->value());
if (bx) { sprintf(buf,"x=%d",x()); bx->copy_label(buf); bx->redraw(); }
if (by) { sprintf(buf,"y=%d",y()); by->copy_label(buf); by->redraw(); }
if (bw) { sprintf(buf,"w=%d",w()); bw->copy_label(buf); bw->redraw(); }
if (bh) { sprintf(buf,"h=%d",h()); bh->copy_label(buf); bh->redraw(); }
Fl_Pack::draw();
if (bw2) { sprintf(buf,"w=%d",w()); bw2->copy_label(buf); bw2->redraw(); }
if (bh2) { sprintf(buf,"h=%d",h()); bh2->copy_label(buf); bh2->redraw(); }
}
public:
Fl_Pack_Test::Fl_Pack_Test(int X,int Y,int W,int H) : Fl_Pack(X,Y,W,H) {}
};
int main()
{
setvbuf (stdout,NULL,_IONBF,0);
int px = 60;
int py = 60;
int pw = 300;
int ph = 200;
Fl_Window *win = new Fl_Double_Window(800,30, 400, 400,
"STR #2130: Contents of Fl_Pack disappear ...");
Fl_Box *frame = new Fl_Box (px-5,py-5,pw+10,ph+10);
frame->box(FL_FLAT_BOX);
frame->color (FL_WHITE);
Fl_Pack_Test *pack = new Fl_Pack_Test(px,py,pw,ph);
pack->type(Fl_Pack::VERTICAL);
pack->color(FL_YELLOW);
// pack->box(FL_FRAME_BOX);
Fl_Box *b1 = new Fl_Box(0, 0, 10, 100,"B O X # 1");
b1->align(FL_ALIGN_INSIDE|FL_ALIGN_CENTER);
b1->box(FL_FLAT_BOX);
b1->color(FL_BLUE);
b1->labelcolor(FL_WHITE);
Fl_Box *b2 = new Fl_Box(0, 0, 10, 50,"B O X # 2");
b2->align(FL_ALIGN_INSIDE|FL_ALIGN_CENTER);
b2->box(FL_FLAT_BOX);
b2->color(FL_RED);
Fl_Box *b3 = new Fl_Box(0, 0, 10, 50,"B O X # 3");
b3->align(FL_ALIGN_INSIDE|FL_ALIGN_CENTER);
b3->box(FL_FLAT_BOX);
b3->color(FL_YELLOW);
pack->end();
pack->clip_children(1);
Fl_Box *line = new Fl_Box(0,py+ph+10,400,5);
line->box(FL_FLAT_BOX);
line->color(fl_lighter(FL_GREEN));
bc = new Fl_Check_Button (10,340,100,30,"Clip");
bc->visible_focus(0);
bx = new Fl_Box(10,380,50,20,"bx");
bx->box(FL_FLAT_BOX);
bx->color(FL_WHITE);
bx->align(FL_ALIGN_INSIDE);
by = new Fl_Box(70,380,50,20,"by");
by->box(FL_FLAT_BOX);
by->color(FL_WHITE);
by->align(FL_ALIGN_INSIDE);
bw = new Fl_Box(130,380,50,20,"bw");
bw->box(FL_FLAT_BOX);
bw->color(FL_WHITE);
bw->align(FL_ALIGN_INSIDE);
bh = new Fl_Box(190,380,50,20,"bh");
bh->box(FL_FLAT_BOX);
bh->color(FL_WHITE);
bh->align(FL_ALIGN_INSIDE);
bw2 = new Fl_Box(280,380,50,20,"bw");
bw2->box(FL_FLAT_BOX);
bw2->color(FL_WHITE);
bw2->align(FL_ALIGN_INSIDE);
bh2 = new Fl_Box(340,380,50,20,"bh2");
bh2->box(FL_FLAT_BOX);
bh2->color(FL_WHITE);
bh2->align(FL_ALIGN_INSIDE);
win->resizable(pack);
win->size_range(400, 1, 0, 0);
win->show();
return Fl::run();
}
_______________________________________________
fltk-bugs mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-bugs