1 /* Fo
2  * fo-length-range.h: length-range datatype
3  *
4  * Copyright (C) 2001 Sun Microsystems
5  * Copyright (C) 2007 Menteith Consulting Ltd
6  *
7  * See COPYING for the status of this software.
8  */
9 
10 #ifndef __FO_LENGTH_RANGE_H__
11 #define __FO_LENGTH_RANGE_H__
12 
13 #include <libfo/fo-utils.h>
14 #include <libfo/datatype/fo-datatype.h>
15 
16 G_BEGIN_DECLS
17 
18 #define FO_TYPE_LENGTH_RANGE              (fo_length_range_get_type ())
19 #define FO_LENGTH_RANGE(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), FO_TYPE_LENGTH_RANGE, FoLengthRange))
20 #define FO_LENGTH_RANGE_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), FO_TYPE_LENGTH_RANGE, FoLengthRangeClass))
21 #define FO_IS_LENGTH_RANGE(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), FO_TYPE_LENGTH_RANGE))
22 #define FO_IS_LENGTH_RANGE_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), FO_TYPE_LENGTH_RANGE))
23 #define FO_LENGTH_RANGE_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), FO_TYPE_LENGTH_RANGE, FoLengthRangeClass))
24 
25 
26 typedef struct _FoLengthRange      FoLengthRange;
27 typedef struct _FoLengthRangeClass FoLengthRangeClass;
28 
29 GType        fo_length_range_get_type           (void) G_GNUC_CONST;
30 FoDatatype * fo_length_range_new_auto           (void);
31 FoDatatype * fo_length_range_new_with_value     (FoDatatype *datatype);
32 
33 FoDatatype * fo_length_range_get_minimum        (FoDatatype *datatype);
34 FoDatatype * fo_length_range_get_optimum        (FoDatatype *datatype);
35 FoDatatype * fo_length_range_get_maximum        (FoDatatype *datatype);
36 
37 FoDatatype * fo_length_range_resolve            (FoDatatype *shortform,
38 						 FoDatatype *minimum,
39 						 FoDatatype *optimum,
40 						 FoDatatype *maximum,
41 						 gfloat      hundred_percent,
42 						 GError    **error);
43 FoDatatype * fo_length_range_resolve_allow_auto (FoDatatype *shortform,
44 						 FoDatatype *minimum,
45 						 FoDatatype *optimum,
46 						 FoDatatype *maximum,
47 						 gfloat      hundred_percent,
48 						 GError    **error);
49 
50 FoDatatype * fo_length_range_get_length_range_hundred_percent (void);
51 
52 G_END_DECLS
53 
54 #endif /* !__FO_LENGTH_RANGE_H__ */
55