This is a combination of running clang-tidy with modernize-use-nullptr check for some ports (GTK, X11, OSX) and manual changes to the ports for which it couldn't be used easily (MSW, DFB) and also manually updating the docs. Also replace NULL with null or nullptr in the comments as this is more consistent with the use of nullptr in the code and makes it simpler to grep for the remaining occurrences of NULL itself. And also use null in the assert messages. Only a few occurrences of "NULL" are still left in non-C files, mostly corresponding to unclear comments or string output which it might not be safe to change.
88 lines
3.6 KiB
C++
88 lines
3.6 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/numformatter.h
|
|
// Purpose: wxNumberFormatter class
|
|
// Author: Fulvio Senore, Vadim Zeitlin
|
|
// Created: 2010-11-06
|
|
// Copyright: (c) 2010 wxWidgets team
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_NUMFORMATTER_H_
|
|
#define _WX_NUMFORMATTER_H_
|
|
|
|
#include "wx/string.h"
|
|
|
|
// Helper class for formatting numbers with thousands separators which also
|
|
// supports parsing the numbers formatted by it.
|
|
class WXDLLIMPEXP_BASE wxNumberFormatter
|
|
{
|
|
public:
|
|
// Bit masks for ToString()
|
|
enum Style
|
|
{
|
|
Style_None = 0x00,
|
|
Style_WithThousandsSep = 0x01,
|
|
Style_NoTrailingZeroes = 0x02 // Only for floating point numbers
|
|
};
|
|
|
|
// Format a number as a string. By default, the thousands separator is
|
|
// used, specify Style_None to prevent this. For floating point numbers,
|
|
// precision can also be specified.
|
|
static wxString ToString(long val,
|
|
int style = Style_WithThousandsSep);
|
|
#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG
|
|
static wxString ToString(wxLongLong_t val,
|
|
int style = Style_WithThousandsSep);
|
|
#endif // wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG
|
|
static wxString ToString(wxULongLong_t val,
|
|
int style = Style_WithThousandsSep);
|
|
static wxString ToString(double val,
|
|
int precision,
|
|
int style = Style_WithThousandsSep);
|
|
|
|
// Format the given number using one of the floating point formats and
|
|
// ensure that the result uses the correct decimal separator.
|
|
// Prefer using ToString() if possible, i.e. if format is "%g" or "%.Nf"
|
|
// which are supported by it directly.
|
|
static wxString Format(const wxString& format, double val);
|
|
|
|
|
|
// Parse a string representing a number, possibly with thousands separator.
|
|
//
|
|
// Return true on success and stores the result in the provided location
|
|
// which must be a valid non-null pointer.
|
|
static bool FromString(wxString s, long *val);
|
|
#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG
|
|
static bool FromString(wxString s, wxLongLong_t *val);
|
|
#endif // wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG
|
|
static bool FromString(wxString s, wxULongLong_t *val);
|
|
static bool FromString(wxString s, double *val);
|
|
|
|
|
|
// Get the decimal separator for the current locale. It is always defined
|
|
// and we fall back to returning '.' in case of an error.
|
|
static wxChar GetDecimalSeparator();
|
|
|
|
// Get the thousands separator if grouping of the digits is used by the
|
|
// current locale. The value returned in sep should be only used if the
|
|
// function returns true.
|
|
static bool GetThousandsSeparatorIfUsed(wxChar *sep);
|
|
|
|
private:
|
|
// Post-process the string representing an integer.
|
|
static wxString PostProcessIntString(wxString s, int style);
|
|
|
|
// Add the thousands separators to a string representing a number without
|
|
// the separators. This is used by ToString(Style_WithThousandsSep).
|
|
static void AddThousandsSeparators(wxString& s);
|
|
|
|
// Remove trailing zeroes and, if there is nothing left after it, the
|
|
// decimal separator itself from a string representing a floating point
|
|
// number. Also used by ToString().
|
|
static void RemoveTrailingZeroes(wxString& s);
|
|
|
|
// Remove all thousands separators from a string representing a number.
|
|
static void RemoveThousandsSeparators(wxString& s);
|
|
};
|
|
|
|
#endif // _WX_NUMFORMATTER_H_
|