| Goffice Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | ||||
GOFormat;
enum GOFormatFamily;
enum GOFormatMagic;
enum GOFormatNumberError;
GOFormatCurrency;
GOFormatDetails;
int (*GOFormatMeasure) (const GString *str,
PangoLayout *layout);
int go_format_measure_zero (const GString *str,
PangoLayout *layout);
int go_format_measure_pango (const GString *str,
PangoLayout *layout);
int go_format_measure_strlen (const GString *str,
PangoLayout *layout);
void go_render_general (PangoLayout *layout,
GString *str,
GOFormatMeasure measure,
const GOFontMetrics *metrics,
double val,
int col_width,
gboolean unicode_minus);
void go_render_generall (PangoLayout *layout,
GString *str,
GOFormatMeasure measure,
const GOFontMetrics *metrics,
long double val,
int col_width,
gboolean unicode_minus);
GOFormat * go_format_new_from_XL (char const *str);
GOFormat * go_format_new_markup (PangoAttrList *markup,
gboolean add_ref);
GOFormat * go_format_general (void);
GOFormat * go_format_empty (void);
GOFormat * go_format_default_date (void);
GOFormat * go_format_default_time (void);
GOFormat * go_format_default_date_time (void);
GOFormat * go_format_default_percentage (void);
GOFormat * go_format_default_money (void);
GOFormat * go_format_default_accounting (void);
void go_format_generate_number_str (GString *dst,
int min_digits,
int num_decimals,
gboolean thousands_sep,
gboolean negative_red,
gboolean negative_paren,
const char *prefix,
const char *postfix);
void go_format_details_init (GOFormatDetails *details,
GOFormatFamily family);
void go_format_generate_str (GString *dst,
GOFormatDetails const *details);
char * go_format_str_localize (char const *str);
char * go_format_str_delocalize (char const *str);
const char* go_format_as_XL (GOFormat const *fmt);
GOFormat * go_format_ref (GOFormat const *fmt);
void go_format_unref (GOFormat const *fmt);
gboolean go_format_is_invalid (GOFormat const *fmt);
gboolean go_format_is_general (GOFormat const *fmt);
gboolean go_format_is_markup (GOFormat const *fmt);
gboolean go_format_is_text (GOFormat const *fmt);
gboolean go_format_is_var_width (GOFormat const *fmt);
int go_format_is_date (GOFormat const *fmt);
int go_format_is_time (GOFormat const *fmt);
int go_format_month_before_day (GOFormat const *fmt);
gboolean go_format_has_hour (GOFormat const *fmt);
gboolean go_format_has_minute (GOFormat const *fmt);
GOFormatMagic go_format_get_magic (GOFormat const *fmt);
GOFormat * go_format_new_magic (GOFormatMagic m);
const GOFormat * go_format_specialize (GOFormat const *fmt,
double val,
char type,
gboolean *inhibit_minus);
const GOFormat * go_format_specializel (GOFormat const *fmt,
long double val,
char type,
gboolean *inhibit_minus);
GOFormatFamily go_format_get_family (GOFormat const *fmt);
void go_format_get_details (GOFormat const *fmt,
GOFormatDetails *dst,
gboolean *exact);
const PangoAttrList * go_format_get_markup (GOFormat const *fmt);
gboolean go_format_is_simple (GOFormat const *fmt);
GOFormatNumberError go_format_value_gstring (PangoLayout *layout,
GString *str,
const GOFormatMeasure measure,
const GOFontMetrics *metrics,
GOFormat const *fmt,
double val,
char type,
const char *sval,
GOColor *go_color,
int col_width,
GODateConventions const *date_conv,
gboolean unicode_minus);
char * go_format_value (GOFormat const *fmt,
double val);
GOFormatNumberError go_format_value_gstringl (PangoLayout *layout,
GString *str,
const GOFormatMeasure measure,
const GOFontMetrics *metrics,
GOFormat const *fmt,
long double val,
char type,
const char *sval,
GOColor *go_color,
int col_width,
GODateConventions const *date_conv,
gboolean unicode_minus);
char * go_format_valuel (GOFormat const *fmt,
long double val);
gboolean go_format_eq (GOFormat const *a,
GOFormat const *b);
GOFormat * go_format_inc_precision (GOFormat const *fmt);
GOFormat * go_format_dec_precision (GOFormat const *fmt);
GOFormat * go_format_toggle_1000sep (GOFormat const *fmt);
char * go_format_odf_style_map (GOFormat const *fmt,
int cond_part);
gboolean go_format_output_to_odf (GsfXMLOut *xout,
GOFormat const *fmt,
int cond_part,
char const *name,
gboolean with_extension);
GOFormatCurrency const * go_format_locale_currency (void);
typedef enum {
GO_FORMAT_UNKNOWN = -1,
GO_FORMAT_GENERAL = 0,
GO_FORMAT_NUMBER = 1,
GO_FORMAT_CURRENCY = 2,
GO_FORMAT_ACCOUNTING = 3,
GO_FORMAT_DATE = 4,
GO_FORMAT_TIME = 5,
GO_FORMAT_PERCENTAGE = 6,
GO_FORMAT_FRACTION = 7,
GO_FORMAT_SCIENTIFIC = 8,
GO_FORMAT_TEXT = 9,
GO_FORMAT_SPECIAL = 10,
GO_FORMAT_MARKUP = 11 /* Internal use only */
} GOFormatFamily;
typedef enum {
GO_FORMAT_MAGIC_NONE = 0,
GO_FORMAT_MAGIC_LONG_DATE = 0xf800, /* Official */
GO_FORMAT_MAGIC_MEDIUM_DATE = 0xf8f1,
GO_FORMAT_MAGIC_SHORT_DATE = 0xf8f2,
GO_FORMAT_MAGIC_SHORT_DATETIME = 0xf8fa,
GO_FORMAT_MAGIC_LONG_TIME = 0xf400, /* Official */
GO_FORMAT_MAGIC_MEDIUM_TIME = 0xf4f1,
GO_FORMAT_MAGIC_SHORT_TIME = 0xf4f2
} GOFormatMagic;
typedef enum {
GO_FORMAT_NUMBER_OK = 0,
GO_FORMAT_NUMBER_INVALID_FORMAT,
GO_FORMAT_NUMBER_DATE_ERROR
} GOFormatNumberError;
typedef struct {
gchar const *symbol;
gchar const *description;
gboolean precedes;
gboolean has_space;
} GOFormatCurrency;
typedef struct {
GOFormatFamily family;
GOFormatMagic magic;
/* NUMBER, SCIENTIFIC, CURRENCY, ACCOUNTING, PERCENTAGE: */
int min_digits;
int num_decimals;
/* NUMBER, CURRENCY, ACCOUNTING, PERCENTAGE: */
gboolean thousands_sep;
/* NUMBER, CURRENCY, ACCOUNTING, PERCENTAGE: */
gboolean negative_red;
gboolean negative_paren;
/* CURRENCY, ACCOUNTING: */
GOFormatCurrency const *currency;
/* CURRENCY: */
gboolean force_quoted;
/* SCIENTIFIC: */
int exponent_step;
gboolean use_markup;
gboolean simplify_mantissa;
} GOFormatDetails;
int (*GOFormatMeasure) (const GString *str, PangoLayout *layout);
|
|
|
|
Returns : |
int go_format_measure_zero (const GString *str, PangoLayout *layout);
|
|
|
|
Returns : |
int go_format_measure_pango (const GString *str, PangoLayout *layout);
|
|
|
|
Returns : |
int go_format_measure_strlen (const GString *str, PangoLayout *layout);
|
|
|
|
Returns : |
void go_render_general (PangoLayout *layout, GString *str, GOFormatMeasure measure, const GOFontMetrics *metrics, double val, int col_width, gboolean unicode_minus);
|
|
|
|
|
|
|
|
|
|
|
|
|
void go_render_generall (PangoLayout *layout, GString *str, GOFormatMeasure measure, const GOFontMetrics *metrics, long double val, int col_width, gboolean unicode_minus);
|
|
|
|
|
|
|
|
|
|
|
|
|
GOFormat * go_format_new_from_XL (char const *str);
|
XL descriptor in UTF-8 encoding. |
Returns : |
Looks up and potentially creates a GOFormat from the supplied string in XL format. |
GOFormat * go_format_new_markup (PangoAttrList *markup, gboolean add_ref);
If add_ref is FALSE absorb the reference to markup, otherwise add a
reference.
|
PangoAttrList |
|
boolean |
Returns : |
A new format. |
void go_format_generate_number_str (GString *dst, int min_digits, int num_decimals, gboolean thousands_sep, gboolean negative_red, gboolean negative_paren, const char *prefix, const char *postfix);
Generates a format string for a number format with the given
parameters and appends it to dst.
|
GString to append format string to. |
|
minimum number of digits before decimal separator. |
|
number of decimals |
|
if true, use a thousands separator. |
|
if true, make negative values red. |
|
if true, enclose negative values in parentheses. |
|
optional string to place before number part of the format |
|
optional string to place after number part of the format |
void go_format_details_init (GOFormatDetails *details, GOFormatFamily family);
|
|
|
void go_format_generate_str (GString *dst, GOFormatDetails const *details);
|
|
|
char * go_format_str_localize (char const *str);
Localizes the given format string, i.e., changes decimal dots to the locale's notion of that and performs other such transformations.
|
A *valid* format string |
Returns : |
a localized format string, or NULL if the format was not valid. |
char * go_format_str_delocalize (char const *str);
De-localizes the given format string, i.e., changes locale's decimal separators to dots and performs other such transformations.
|
A *valid* localized format string |
Returns : |
a non-local format string, or NULL if the format was not valid. |
const char* go_format_as_XL (GOFormat const *fmt);
|
a GOFormat |
Returns : |
the XL style format strint. |
GOFormat * go_format_ref (GOFormat const *fmt);
Adds a reference to a GOFormat.
|
a GOFormat |
Returns : |
gf
|
void go_format_unref (GOFormat const *fmt);
Removes a reference to fmt, freeing when it goes to zero.
|
a GOFormat |
gboolean go_format_is_invalid (GOFormat const *fmt);
|
Format to query |
Returns : |
TRUE if, and if only, the format is invalid |
gboolean go_format_is_general (GOFormat const *fmt);
|
Format to query |
Returns : |
TRUE if the format is "General", possibly with condition, color, and/or locale. ("xGeneral" is thus not considered to be General for the purpose of this function.) Returns FALSE otherwise. |
gboolean go_format_is_markup (GOFormat const *fmt);
|
Format to query |
Returns : |
TRUE if the format is a markup format Returns FALSE otherwise. |
gboolean go_format_is_text (GOFormat const *fmt);
|
Format to query |
Returns : |
TRUE if the format is a text format Returns FALSE otherwise. |
gboolean go_format_is_var_width (GOFormat const *fmt);
|
Format to query |
Returns : |
TRUE if the format is variable width, i.e., can stretch. Returns FALSE otherwise. |
int go_format_is_date (GOFormat const *fmt);
|
Format to query |
Returns : |
TRUE if the format is a date format. Returns FALSE if the format is not a date format. Returns -1 if the format is inconsistent. |
int go_format_is_time (GOFormat const *fmt);
|
Format to query |
Returns : |
+2 if the format is a time format with elapsed hour/minute/second +1 if the format is any other time format 0 if the format is not a time format -1 if the format is inconsistent. |
int go_format_month_before_day (GOFormat const *fmt);
|
Format to query |
Returns : |
0, if format is a date format with day and month in that order 1, if format is a date format with month and day in that order, unless 2, if format is a date with year before month before day -1, otherwise. |
gboolean go_format_has_hour (GOFormat const *fmt);
|
Format to query |
Returns : |
TRUE if format is a number format with an hour specifier FALSE otherwise. |
gboolean go_format_has_minute (GOFormat const *fmt);
|
Format to query |
Returns : |
TRUE if format is a number format with a minute specifier FALSE otherwise. |
GOFormatMagic go_format_get_magic (GOFormat const *fmt);
|
Format to query |
Returns : |
a non-zero magic code for certain formats, such as system date. |
const GOFormat * go_format_specialize (GOFormat const *fmt, double val, char type, gboolean *inhibit_minus);
|
|
|
|
|
|
|
|
Returns : |
const GOFormat * go_format_specializel (GOFormat const *fmt, long double val, char type, gboolean *inhibit_minus);
|
|
|
|
|
|
|
|
Returns : |
void go_format_get_details (GOFormat const *fmt, GOFormatDetails *dst, gboolean *exact);
|
|
|
|
|
const PangoAttrList * go_format_get_markup (GOFormat const *fmt);
|
|
Returns : |
GOFormatNumberError go_format_value_gstring (PangoLayout *layout, GString *str, const GOFormatMeasure measure, const GOFontMetrics *metrics, GOFormat const *fmt, double val, char type, const char *sval, GOColor *go_color, int col_width, GODateConventions const *date_conv, gboolean unicode_minus);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Returns : |
char * go_format_value (GOFormat const *fmt, double val);
Converts val into a string using format specified by fmt.
|
a GOFormat |
|
value to format |
Returns : |
a newly allocated string containing formated value. |
GOFormatNumberError go_format_value_gstringl (PangoLayout *layout, GString *str, const GOFormatMeasure measure, const GOFontMetrics *metrics, GOFormat const *fmt, long double val, char type, const char *sval, GOColor *go_color, int col_width, GODateConventions const *date_conv, gboolean unicode_minus);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Returns : |
char * go_format_valuel (GOFormat const *fmt, long double val);
|
|
|
|
Returns : |
GOFormat * go_format_inc_precision (GOFormat const *fmt);
Increases the displayed precision for fmt by one digit.
|
GOFormat |
Returns : |
NULL if the new format would not change things |
GOFormat * go_format_dec_precision (GOFormat const *fmt);
Decreases the displayed precision for fmt by one digit.
|
GOFormat |
Returns : |
NULL if the new format would not change things |
GOFormat * go_format_toggle_1000sep (GOFormat const *fmt);
|
|
Returns : |
char * go_format_odf_style_map (GOFormat const *fmt, int cond_part);
|
|
|
|
Returns : |
gboolean go_format_output_to_odf (GsfXMLOut *xout, GOFormat const *fmt, int cond_part, char const *name, gboolean with_extension);
|
|
|
|
|
|
|
|
|
|
Returns : |