index c08de58efcab9e5a5966cd5393febdfa6dfa0ffc..0025f2d07b73e51911e79c174cfb4766b72761a7 100644 (file)
--- a/src/number-opt-number.h
+++ b/src/number-opt-number.h
* Released under GNU GPL, read the file 'COPYING' for more information
*/
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
#include <glib.h>
#include <glib/gprintf.h>
//todo: use glib instead of stdlib
#include <stdlib.h>
+#include "svg/stringstream.h"
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
+
+gdouble fixed_g_ascii_strtod (const gchar *nptr, gchar **endptr);
class NumberOptNumber {
}
gfloat getNumber()
- { return number; }
+ {
+ if(_set)
+ return number;
+ return -1;
+ }
gfloat getOptNumber()
- { return optNumber; }
+ {
+ if(optNumber_set)
+ return optNumber;
+ return -1;
+ }
+
+ void setOptNumber(gfloat num)
+ {
+ optNumber_set = true;
+ optNumber = num;
+ }
+
+ void setNumber(gfloat num)
+ {
+ _set = true;
+ number = num;
+ }
+
+ bool optNumIsSet(){
+ return optNumber_set;
+ }
+
+ bool numIsSet(){
+ return _set;
+ }
+
+ gchar *getValueString()
+ {
+ Inkscape::SVGOStringStream os;
- gchar *getValueString(gchar *str)
- {
if( _set )
{
if( optNumber_set )
{
- g_sprintf(str, "%lf %lf", number, optNumber);
+ os << number << " " << optNumber;
}
else {
- g_sprintf(str, "%lf", number);
+ os << number;
}
}
- return str;
+ return g_strdup(os.str().c_str());
}
void set(gchar const *str)
if( values[0] != NULL )
{
- number = strtof(values[0], NULL);
+ number = g_ascii_strtod(values[0], NULL);
_set = TRUE;
if( values[1] != NULL )
{
- // optNumber = g_ascii_strtod(values[1], NULL);
- optNumber = strtof(values[1], NULL);
+ optNumber = g_ascii_strtod(values[1], NULL);
optNumber_set = TRUE;
}
else