diff options
| author | Greg Ercolano <erco@seriss.com> | 2009-07-12 00:29:36 +0000 |
|---|---|---|
| committer | Greg Ercolano <erco@seriss.com> | 2009-07-12 00:29:36 +0000 |
| commit | 5045d2e834c2e7301173d348f2ae5331221e0696 (patch) | |
| tree | 09825093a2949db197735d58fed68987f2c5d0ee /test/unittest_scrollbarsize.cxx | |
| parent | fe687baefd32a8b962a05085c01a17cd6c7d4a97 (diff) | |
Added to allow testing of scrollbar sizing.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6829 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'test/unittest_scrollbarsize.cxx')
| -rw-r--r-- | test/unittest_scrollbarsize.cxx | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/test/unittest_scrollbarsize.cxx b/test/unittest_scrollbarsize.cxx new file mode 100644 index 000000000..bc4d23e9f --- /dev/null +++ b/test/unittest_scrollbarsize.cxx @@ -0,0 +1,118 @@ +// +// "$Id: $" +// +// Unit tests for the Fast Light Tool Kit (FLTK). +// +// Copyright 1998-2009 by Bill Spitzak and others. +// +// 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. +// +// Please report all bugs and problems on the following page: +// +// http://www.fltk.org/str.php +// + +#include <FL/Fl_Group.H> +#include <FL/Fl_Browser.H> +#include <FL/Fl_Value_Slider.H> + +// +// Test new 1.3.x global vs. local scrollbar sizing +// +class ScrollBarSizeTest : public Fl_Group { + Fl_Browser *brow_a, *brow_b, *brow_c; + + Fl_Browser *makebrowser(int X,int Y,int W,int H,const char*L=0) { + Fl_Browser *b = new Fl_Browser(X,Y,W,H,L); + b->type(FL_MULTI_BROWSER); + b->add("Papa"); b->add("Delta"); b->add("Hotel"); + b->add("Charlie"); b->add("Echo"); b->add("Foxtrot"); + b->add("Golf"); b->add("Lima"); b->add("Victor"); + b->add("Alpha"); b->add("Xray"); b->add("Yankee"); + b->add("Oscar"); b->add("India"); b->add("Juliet"); + b->add("Kilo"); b->add("Mike"); b->add("Sierra"); + b->add("November"); b->add("Tango"); b->add("Quebec"); + b->add("Bravo"); b->add("Romeo"); b->add("Uniform"); + b->add("Whisky"); b->add("Zulu"); + b->add("Papa"); b->add("Delta"); b->add("Hotel"); + b->add("Charlie"); b->add("Echo"); b->add("Foxtrot"); + b->add("Golf"); b->add("Lima"); b->add("Victor"); + b->add("Alpha"); b->add("Xray"); b->add("Yankee"); + b->add("Oscar"); b->add("India"); b->add("Juliet"); + b->add("Kilo"); b->add("Mike"); b->add("Sierra"); + b->add("November"); b->add("Tango"); b->add("Quebec"); + b->add("Bravo"); b->add("Romeo"); b->add("Uniform"); + b->add("Whisky"); b->add("Zulu"); + return(b); + } + void slide_cb2(Fl_Value_Slider *in) { + const char *label = in->label(); + int val = in->value(); + //fprintf(stderr, "VAL='%d'\n",val); + if ( strcmp(label,"A: Scroll Size") == 0 ) { + brow_a->scrollbar_size(val); + } else { + Fl::scrollbar_size(val); + } + in->window()->redraw(); + } + static void slide_cb(Fl_Widget *w, void *data) { + ScrollBarSizeTest *o = (ScrollBarSizeTest*)data; + o->slide_cb2((Fl_Value_Slider*)w); + } +public: + static Fl_Widget *create() { + return(new ScrollBarSizeTest(TESTAREA_X, TESTAREA_Y, TESTAREA_W, TESTAREA_H)); + } + + // CTOR + ScrollBarSizeTest(int X, int Y, int W, int H) : Fl_Group(X,Y,W,H) { + begin(); + brow_a = makebrowser(X+ 10,Y+40,100,H-170,"Browser A"); + brow_b = makebrowser(X+120,Y+40,100,H-170,"Browser B"); + brow_c = makebrowser(X+240,Y+40,100,H-170,"Browser C"); + Fl_Value_Slider *slide_glob = new Fl_Value_Slider(X+100,Y+10,100,18,"Global Scroll Size"); + slide_glob->value(16); + slide_glob->type(FL_HORIZONTAL); + slide_glob->align(FL_ALIGN_LEFT); + slide_glob->range(0.0, 30.0); + slide_glob->step(1.0); + slide_glob->callback(slide_cb, (void*)this); + slide_glob->labelsize(12); + Fl_Value_Slider *slide_browa = new Fl_Value_Slider(X+350,Y+10,100,18,"A: Scroll Size"); + slide_browa->value(16); + slide_browa->type(FL_HORIZONTAL); + slide_browa->align(FL_ALIGN_LEFT); + slide_browa->range(0.0, 30.0); + slide_browa->step(1.0); + slide_browa->callback(slide_cb, (void*)this); + slide_browa->labelsize(12); + end(); + label("Verify global scroll sizing and per-widget scroll sizing.\n" + "Scrollbar's size should change interactively as size sliders are changed.\n" + "Changing 'Global Scroll Size' should affect all three browser's scrollbars UNLESS\n" + "the 'A: Scroll Size' slider is changed, in which case its value will take precedence\n" + "for 'Browser A', and the global size will only affect Browser A + B."); + labelsize(12); + align(FL_ALIGN_INSIDE|FL_ALIGN_BOTTOM|FL_ALIGN_LEFT|FL_ALIGN_WRAP); + } +}; + +UnitTest scrollbarsize("scrollbar size", ScrollBarSizeTest::create); + +// +// End of "$Id: $" +// |
