diff --git a/CHANGES b/CHANGES index 1bc22cc73..6b7680dec 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,7 @@ CHANGES IN FLTK 1.1.8 + - Optional precission argument when storing floats or + doubles in a Preferences file (STR #1381) - Fixed callback not called when using arrow keys in Fl_Slider (STR #1333) - Changing the shorcut of a widget in fluid now marks diff --git a/FL/Fl_Preferences.H b/FL/Fl_Preferences.H index f2101f7ff..b16a9f18b 100644 --- a/FL/Fl_Preferences.H +++ b/FL/Fl_Preferences.H @@ -65,7 +65,9 @@ public: char set( const char *entry, int value ); char set( const char *entry, float value ); + char set( const char *entry, float value, int precision ); char set( const char *entry, double value ); + char set( const char *entry, double value, int precision ); char set( const char *entry, const char *value ); char set( const char *entry, const void *value, int size ); diff --git a/documentation/Fl_Preferences.html b/documentation/Fl_Preferences.html index e39b6cdd3..e4b24ad90 100644 --- a/documentation/Fl_Preferences.html +++ b/documentation/Fl_Preferences.html @@ -181,7 +181,9 @@ group.

int set(const char *entry, int value)
int set(const char *entry, int value)
int set(const char *entry, float value)
+int set(const char *entry, float value, int precision)
int set(const char *entry, double value)
+int set(const char *entry, double value, int precision)
int set(const char *entry, const char *text)
int set(const char *entry, const void *data, int size)

diff --git a/src/Fl_Preferences.cxx b/src/Fl_Preferences.cxx index dbcb79ca4..1478db154 100644 --- a/src/Fl_Preferences.cxx +++ b/src/Fl_Preferences.cxx @@ -247,6 +247,19 @@ char Fl_Preferences::set( const char *key, float value ) { sprintf( nameBuffer, "%g", value ); node->set( key, nameBuffer ); + float v1 = atof(nameBuffer); + return 1; +} + + +/** + * set an entry (name/value pair) + */ +char Fl_Preferences::set( const char *key, float value, int precision ) +{ + sprintf( nameBuffer, "%.*g", precision, value ); + node->set( key, nameBuffer ); + float v1 = atof(nameBuffer); return 1; } @@ -273,6 +286,17 @@ char Fl_Preferences::set( const char *key, double value ) } +/** + * set an entry (name/value pair) + */ +char Fl_Preferences::set( const char *key, double value, int precision ) +{ + sprintf( nameBuffer, "%*g", precision, value ); + node->set( key, nameBuffer ); + return 1; +} + + // remove control sequences from a string static char *decodeText( const char *src ) { diff --git a/test/hello.cxx b/test/hello.cxx index 178d52934..2abc64c45 100644 --- a/test/hello.cxx +++ b/test/hello.cxx @@ -1,45 +1,22 @@ -// -// "$Id$" -// -// Hello, World! 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 -// - #include -#include -#include +#include +#include + +int main(int argc, char **argv) +{ + Fl_Window *window = new Fl_Window(300,200); + window->clear_border(); // no border!! + window->show(); + + // wait some time + Fl::wait(10.); + window->size(0,0); -int main(int argc, char **argv) { - Fl_Window *window = new Fl_Window(300,180); - Fl_Box *box = new Fl_Box(FL_UP_BOX,20,40,260,100,"Hello, World!"); - box->labelfont(FL_BOLD+FL_ITALIC); - box->labelsize(36); - box->labeltype(FL_SHADOW_LABEL); - window->end(); - window->show(argc, argv); - return Fl::run(); -} + while(true) { + printf("LOOP "); + // doesn't wait.... + Fl::wait(100.); + } -// -// End of "$Id$". -// + return 0; +} \ No newline at end of file