diff --git a/examples/Makefile b/examples/Makefile index a07c265fe..7fb5c3490 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -2,10 +2,11 @@ include Makefile.FLTK RM = rm -f SHELL = /bin/sh -.SILENT: +#.SILENT: # Executables -ALL = clipboard$(EXEEXT) \ +ALL = browser-simple$(EXEEXT) \ + clipboard$(EXEEXT) \ draggable-group$(EXEEXT) \ fltk-versions$(EXEEXT) \ howto-add_fd-and-popen$(EXEEXT) \ diff --git a/examples/browser-simple.cxx b/examples/browser-simple.cxx new file mode 100644 index 000000000..2bd1e1a2d --- /dev/null +++ b/examples/browser-simple.cxx @@ -0,0 +1,85 @@ +// +// "$Id$" +// +// Simple Fl_Browser widget example. - erco 07/26/2019 +// +// Copyright 2019 Greg Ercolano. +// Copyright 1998-2016 by Bill Spitzak and others. +// +// This library is free software. Distribution and use rights are outlined in +// the file "COPYING" which should have been included with this file. If this +// file is missing or damaged, see the license at: +// +// http://www.fltk.org/COPYING.php +// +// Please report all bugs and problems on the following page: +// +// http://www.fltk.org/str.php +// +#include +#include +#include +#include +#include + +// Hold Browser's callback +// Invoked whenever an item clicked +// +void HoldBrowserCallback(Fl_Widget *w, void *data) { + Fl_Hold_Browser *brow = (Fl_Hold_Browser*)w; + int line = brow->value(); + printf("[hold browser] item %d picked: %s\n", line, brow->text(line)); +} + +// Multi Browser's callback +// Invoked whenever an item(s) clicked/selected +// +void MultiBrowserCallback(Fl_Widget *w, void *data) { + Fl_Multi_Browser *brow = (Fl_Multi_Browser*)w; + // Multi browser can have many items selected, so print all selected + for ( int t=1; t<=brow->size(); t++ ) + if ( brow->selected(t) ) + printf("[multi browser] item %d selected: %s\n", t, brow->text(t)); + printf("\n"); +} + +int main(int argc, char *argv[]) { + Fl::scheme("gtk+"); + Fl_Double_Window *win = new Fl_Double_Window(250, 220, "Simple Browser"); + win->begin(); + { + { + // Create Hold Browser + Fl_Hold_Browser *brow = new Fl_Hold_Browser(10, 10, win->w()-20, 80, "Hold"); + brow->callback(HoldBrowserCallback); // callback for hold browser + // Add some items + brow->add("One"); + brow->add("Two"); + brow->add("Three"); + brow->add("Four"); + // Preselect first item "One" + brow->select(1); + } + { + // Create Multi Browser + Fl_Multi_Browser *brow = new Fl_Multi_Browser(10, 120, win->w()-20, 80, "Multi"); + brow->callback(MultiBrowserCallback); // callback for multi browser + // Add some items + brow->add("Aaa"); + brow->add("Bbb"); + brow->add("Ccc"); + brow->add("Ddd"); + // Preselect first two items "Aaa" and "Bbb" + brow->select(1); + brow->select(2); + } + } + win->end(); + win->resizable(win); + win->show(argc, argv); + return(Fl::run()); +} + +// +// End of "$Id$". +//