From a6163888f3c56123b1db313743c6147ba498732c Mon Sep 17 00:00:00 2001 From: Yuval Adam Date: Fri, 8 Aug 2014 14:42:07 +0300 Subject: Add third_party libs --- third_party/windows/fltk-1.1.10/test/browser.cxx | 182 +++++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 third_party/windows/fltk-1.1.10/test/browser.cxx (limited to 'third_party/windows/fltk-1.1.10/test/browser.cxx') diff --git a/third_party/windows/fltk-1.1.10/test/browser.cxx b/third_party/windows/fltk-1.1.10/test/browser.cxx new file mode 100644 index 0000000..15cb007 --- /dev/null +++ b/third_party/windows/fltk-1.1.10/test/browser.cxx @@ -0,0 +1,182 @@ +// +// "$Id: browser.cxx 5845 2007-05-20 00:01:06Z mike $" +// +// Browser test program for the Fast Light Tool Kit (FLTK). +// +// Copyright 1998-2005 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 +// + +/* +This is a test of how the browser draws lines. +This is a second line. +This is a third. + +That was a blank line above this. + +@r@_Right justify +@c@_Center justify +@_Left justify + +@bBold text +@iItalic text +@b@iBold Italic +@fFixed width +@f@bBold Fixed +@f@iItalic Fixed +@f@i@bBold Italic Fixed +@lLarge +@l@bLarge bold +@sSmall +@s@bSmall bold +@s@iSmall italic +@s@i@bSmall italic bold +@uunderscore +@C1RED +@C2Green +@C4Blue + + You should try different browser types: + Fl_Browser + Fl_Select_Browser + Fl_Hold_Browser + Fl_Multi_Browser +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +Fl_Select_Browser *browser; +Fl_Button *top, + *bottom, + *middle, + *visible, + *swap; +Fl_Int_Input *field; + +void b_cb(Fl_Widget* o, void*) { + printf("callback, selection = %d, event_clicks = %d\n", + ((Fl_Browser*)o)->value(), Fl::event_clicks()); +} + +void show_cb(Fl_Widget *o, void *) { + int line = atoi(field->value()); + + if (!line) { + fl_alert("Please enter a number in the text field\n" + "before clicking on the buttons."); + return; + } + + if (o == top) + browser->topline(line); + else if (o == bottom) + browser->bottomline(line); + else if (o == middle) + browser->middleline(line); + else + browser->make_visible(line); +} + +void swap_cb(Fl_Widget *, void *) { + int a = -1, b = -1; + for ( int t=0; tsize(); t++ ) { // find two selected items + if ( browser->selected(t) ) { + if ( a < 0 ) + { a = t; } + else + { b = t; break; } + } + } + browser->swap(a, b); // swap them +} + +int main(int argc, char **argv) { + int i; + if (!Fl::args(argc,argv,i)) Fl::fatal(Fl::help); + const char* fname = (i < argc) ? argv[i] : "browser.cxx"; + Fl_Window window(400,400,fname); + browser = new Fl_Select_Browser(0,0,400,350,0); + browser->type(FL_MULTI_BROWSER); + //browser->type(FL_HOLD_BROWSER); + //browser->color(42); + browser->callback(b_cb); + // browser->scrollbar_right(); + //browser->has_scrollbar(Fl_Browser::BOTH_ALWAYS); + if (!browser->load(fname)) { +#ifdef _MSC_VER + // if 'browser' was started from the VisualC environment in Win32, + // the current directory is set to the environment itself, + // so we need to correct the browser file path + int done = 1; + if ( i == argc ) + { + fname = "../test/browser.cxx"; + done = browser->load(fname); + } + if ( !done ) + { + printf("Can't load %s, %s\n", fname, strerror(errno)); + exit(1); + } +#else + printf("Can't load %s, %s\n", fname, strerror(errno)); + exit(1); +#endif + } + browser->position(0); + + field = new Fl_Int_Input(50, 350, 350, 25, "Line #:"); + field->callback(show_cb); + + top = new Fl_Button(0, 375, 80, 25, "Top"); + top->callback(show_cb); + + bottom = new Fl_Button(80, 375, 80, 25, "Bottom"); + bottom->callback(show_cb); + + middle = new Fl_Button(160, 375, 80, 25, "Middle"); + middle->callback(show_cb); + + visible = new Fl_Button(240, 375, 80, 25, "Make Vis."); + visible->callback(show_cb); + + swap = new Fl_Button(320, 375, 80, 25, "Swap"); + swap->callback(swap_cb); + swap->tooltip("Swaps two selected lines\n(Use CTRL-click to select two lines)"); + + window.resizable(browser); + window.show(argc,argv); + return Fl::run(); +} + +// +// End of "$Id: browser.cxx 5845 2007-05-20 00:01:06Z mike $". +// + -- cgit v1.3.1