summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGreg Ercolano <erco@seriss.com>2017-11-02 21:14:40 +0000
committerGreg Ercolano <erco@seriss.com>2017-11-02 21:14:40 +0000
commit127147ca976a3151f8a6e307d0d7e482e987d29f (patch)
tree93715f9eb43c62cfe1bb32f63d14b74759eec4c6 /test
parent3256932e2a6933ec8d88322b38fc049026ad4b07 (diff)
Addresses STR# 3423; adds missing scrollbar_size() methods and honors global Fl::scrollbar_size().
Includes mods to unittest's scrollbar size test. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12538 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'test')
-rw-r--r--test/unittest_scrollbarsize.cxx87
1 files changed, 48 insertions, 39 deletions
diff --git a/test/unittest_scrollbarsize.cxx b/test/unittest_scrollbarsize.cxx
index f8e97d6c6..3f4697814 100644
--- a/test/unittest_scrollbarsize.cxx
+++ b/test/unittest_scrollbarsize.cxx
@@ -20,6 +20,7 @@
#include <FL/Fl_Browser.H>
#include <FL/Fl_Tree.H>
#include <FL/Fl_Table.H>
+#include <FL/Fl_Text_Display.H>
#include <FL/Fl_Value_Slider.H>
//
@@ -67,50 +68,37 @@ class MyTable : public Fl_Table {
~MyTable() { }
};
+static const char *phonetics[] = {
+ "Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot",
+ "Golf", "Hotel", "India", "Juliet", "Kilo", "Lima", "Mike",
+ "November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango",
+ "Uniform", "Victor", "Whiskey", "X-ray", "Yankee", "Zulu", NULL
+};
+
class ScrollBarSizeTest : public Fl_Group {
- Fl_Browser *brow_a, *brow_b, *brow_c;
- Fl_Tree *tree_a, *tree_b, *tree_c;
- MyTable *table_a,*table_b,*table_c;
+ Fl_Browser *brow_a, *brow_b, *brow_c;
+ Fl_Tree *tree_a, *tree_b, *tree_c;
+ MyTable *table_a,*table_b,*table_c;
+ Fl_Text_Display *text_a, *text_b, *text_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->align(FL_ALIGN_TOP);
- b->add("Papa"); b->add("Delta"); b->add("Hotel");
- b->add("Long entry will show h-bar");
- 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");
+ for (int t=0; phonetics[t]; t++ ) {
+ b->add(phonetics[t]);
+ if ( phonetics[t][0] == 'C' ) b->add("Long entry will show h-bar");
+ }
return(b);
}
Fl_Tree *maketree(int X,int Y,int W,int H,const char*L=0) {
Fl_Tree *b = new Fl_Tree(X,Y,W,H,L);
b->type(FL_TREE_SELECT_MULTI);
b->align(FL_ALIGN_TOP);
- b->add("Papa"); b->add("Delta"); b->add("Hotel");
- b->add("Long entry will show h-bar");
- 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");
+ for (int t=0; phonetics[t]; t++ ) {
+ b->add(phonetics[t]);
+ if ( phonetics[t][0] == 'C' ) b->add("Long entry will show h-bar");
+ }
return(b);
}
MyTable *maketable(int X,int Y,int W,int H,const char*L=0) {
@@ -119,6 +107,16 @@ class ScrollBarSizeTest : public Fl_Group {
mta->end();
return(mta);
}
+ Fl_Text_Display *maketextdisplay(int X,int Y,int W,int H,const char*L=0) {
+ Fl_Text_Display *dpy = new Fl_Text_Display(X,Y,W,H,L);
+ Fl_Text_Buffer *buf = new Fl_Text_Buffer();
+ dpy->buffer(buf);
+ for (int t=0; phonetics[t]; t++ ) {
+ buf->printf("%s\n", phonetics[t]);
+ if ( phonetics[t][0] == 'C' ) buf->printf("Long entry will show h-bar\n");
+ }
+ return(dpy);
+ }
void slide_cb2(Fl_Value_Slider *in) {
const char *label = in->label();
int val = int(in->value());
@@ -127,6 +125,7 @@ class ScrollBarSizeTest : public Fl_Group {
brow_a->scrollbar_size(val);
tree_a->scrollbar_size(val);
table_a->scrollbar_size(val);
+ text_a->scrollbar_size(val);
} else {
Fl::scrollbar_size(val);
}
@@ -173,6 +172,8 @@ public:
int treeh = browh;
int tabley = treey + treeh + 20;
int tableh = browh;
+ int texty = tabley + tableh + 20;
+ int texth = browh;
brow_a = makebrowser(X+ 10,browy,100,browh,"Browser A");
brow_b = makebrowser(X+120,browy,100,browh,"Browser B");
brow_c = makebrowser(X+230,browy,100,browh,"Browser C");
@@ -182,6 +183,9 @@ public:
table_a = maketable(X+ 10,tabley,100,tableh,"Table A");
table_b = maketable(X+120,tabley,100,tableh,"Table B");
table_c = maketable(X+230,tabley,100,tableh,"Table C");
+ text_a = maketextdisplay(X+ 10,texty,100,texth,"Text Display A");
+ text_b = maketextdisplay(X+120,texty,100,texth,"Text Display B");
+ text_c = maketextdisplay(X+230,texty,100,texth,"Text Display C");
Fl_Value_Slider *slide_glob = new Fl_Value_Slider(X+100,Y,100,18,"Global Scroll Size");
slide_glob->value(16);
slide_glob->type(FL_HORIZONTAL);
@@ -198,14 +202,19 @@ public:
slide_browa->step(1.0);
slide_browa->callback(slide_cb, (void*)this);
slide_browa->labelsize(12);
+ int msgbox_x = brow_c->x() + brow_c->w() + 20;
+ int msgbox_w = W-(msgbox_x-X);
+ Fl_Box *msgbox = new Fl_Box(msgbox_x,browy,msgbox_w,H-Y-48);
+ msgbox->label("\nVerify global scroll sizing and per-widget scroll sizing. "
+ "Scrollbar's size should change interactively as size sliders are changed. "
+ "Changing 'Global Scroll Size' should affect all three browser's scrollbars UNLESS "
+ "the 'A: Scroll Size' slider is changed, in which case its value will take precedence "
+ "for the 'A' group of widgets.");
+ msgbox->labelsize(10);
+ msgbox->align(FL_ALIGN_INSIDE|FL_ALIGN_CENTER|FL_ALIGN_LEFT|FL_ALIGN_WRAP);
+ msgbox->box(FL_FLAT_BOX);
+ msgbox->color(53); // 90% gray
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 the 'A' group of widgets.");
- labelsize(10);
- align(FL_ALIGN_INSIDE|FL_ALIGN_BOTTOM|FL_ALIGN_LEFT|FL_ALIGN_WRAP);
}
};