From bafd3fd3d792b530d39d3af06e087dc63d2a25a2 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Sun, 1 Jan 2023 21:53:07 +0100 Subject: Add Fl_Scheme_Choice widget and use it in test programs This widget offers the selection of all known FLTK schemes as a simple widget based on Fl_Choice. Some test and demo programs use Fl_Scheme_Choice to enable the developer or user to switch schemes quickly for comparison. Todo: - add features to add new schemes during runtime (partially done) - update status when the scheme is changed by Fl::scheme("...") --- FL/Fl_Scheme_Choice.H | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 FL/Fl_Scheme_Choice.H (limited to 'FL') diff --git a/FL/Fl_Scheme_Choice.H b/FL/Fl_Scheme_Choice.H new file mode 100644 index 000000000..e45befcdd --- /dev/null +++ b/FL/Fl_Scheme_Choice.H @@ -0,0 +1,38 @@ +// +// Scheme Choice header for the Fast Light Tool Kit (FLTK). +// +// Copyright 2022-2023 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: +// +// https://www.fltk.org/COPYING.php +// +// Please see the following page on how to report bugs and issues: +// +// https://www.fltk.org/bugs.php +// + +#ifndef FL_Fl_Scheme_Choice_H_ +#define FL_Fl_Scheme_Choice_H_ + +#include +#include +#include + +class Fl_Scheme_Choice : public Fl_Choice { + +protected: + static void scheme_cb_(Fl_Widget *w, void *); + +public: + Fl_Scheme_Choice(int X, int Y, int W, int H, const char *L = 0); + int handle(int event) FL_OVERRIDE; + + // set the current value according to the active scheme + virtual void init_value(); + +}; // class Fl_Scheme_Choice + +#endif // FL_Fl_Scheme_Choice_H_ -- cgit v1.2.3