00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef __CR_NUM_H__
00032 #define __CR_NUM_H__
00033
00034 #include <glib.h>
00035 #include "cr-utils.h"
00036 #include "cr-parsing-location.h"
00037
00038 G_BEGIN_DECLS
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054 enum CRNumType
00055 {
00056 NUM_AUTO = 0,
00057 NUM_GENERIC,
00058 NUM_LENGTH_EM,
00059 NUM_LENGTH_EX,
00060 NUM_LENGTH_PX,
00061 NUM_LENGTH_IN,
00062 NUM_LENGTH_CM,
00063 NUM_LENGTH_MM,
00064 NUM_LENGTH_PT,
00065 NUM_LENGTH_PC,
00066 NUM_ANGLE_DEG,
00067 NUM_ANGLE_RAD,
00068 NUM_ANGLE_GRAD,
00069 NUM_TIME_MS,
00070 NUM_TIME_S,
00071 NUM_FREQ_HZ,
00072 NUM_FREQ_KHZ,
00073 NUM_PERCENTAGE,
00074 NUM_INHERIT,
00075 NUM_UNKNOWN_TYPE,
00076 NB_NUM_TYPE
00077 } ;
00078
00079
00080
00081
00082
00083
00084 typedef struct _CRNum CRNum ;
00085
00086
00087
00088
00089
00090 struct _CRNum
00091 {
00092 enum CRNumType type ;
00093 gdouble val ;
00094 CRParsingLocation location ;
00095 } ;
00096
00097 CRNum *
00098 cr_num_new (void) ;
00099
00100 CRNum *
00101 cr_num_new_with_val (gdouble a_val,
00102 enum CRNumType a_type) ;
00103
00104 CRNum *
00105 cr_num_dup (CRNum *a_this) ;
00106
00107 guchar *
00108 cr_num_to_string (CRNum *a_this) ;
00109
00110 enum CRStatus
00111 cr_num_copy (CRNum *a_dest, CRNum *a_src) ;
00112
00113 enum CRStatus
00114 cr_num_set (CRNum *a_this, gdouble a_val,
00115 enum CRNumType a_type) ;
00116
00117 gboolean
00118 cr_num_is_fixed_length (CRNum *a_this) ;
00119
00120 void
00121 cr_num_destroy (CRNum *a_this) ;
00122
00123
00124 G_END_DECLS
00125
00126
00127 #endif