|  |  |  | 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 : |