1 /* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 #ifndef _GNM_RENDERED_VALUE_H_
3 # define _GNM_RENDERED_VALUE_H_
6 #include <pango/pango.h>
10 struct _GnmRenderedValue
{
14 int layout_natural_width
, layout_natural_height
;
17 guint16 indent_left
, indent_right
;
19 GOColor go_fore_color
;
21 guint effective_halign
: 8;
22 guint effective_valign
: 5;
23 guint variable_width
: 1; /* result depends on the width of cell */
27 guint might_overflow
: 1; /* Subject to ####### treatment. */
28 guint numeric_overflow
: 1; /* ####### has happened. */
29 guint noborders
: 1; /* Valid for rotated only. */
30 guint drawn
: 1; /* Has drawing layout taken place? */
31 signed int rotation
: 10;
34 struct _GnmRenderedRotatedValue
{
38 struct GnmRenderedRotatedValueInfo
{
43 GnmRenderedValue
*gnm_rendered_value_new (GnmCell
const *cell
,
44 PangoContext
*context
,
45 gboolean variable_width
,
47 void gnm_rendered_value_destroy (GnmRenderedValue
*rv
);
49 void gnm_rendered_value_remeasure (GnmRenderedValue
*rv
);
51 /* Return the value as a single string without format infomation. */
52 char const *gnm_rendered_value_get_text (GnmRenderedValue
const * rv
);
54 GOColor
gnm_rendered_value_get_color (GnmRenderedValue
const * rv
);
56 /* ------------------------------------------------------------------------- */
58 struct _GnmRenderedValueCollection
{
59 PangoContext
*context
;
65 GnmRenderedValueCollection
*gnm_rvc_new (PangoContext
*context
,
67 void gnm_rvc_free (GnmRenderedValueCollection
*rvc
);
68 GnmRenderedValue
*gnm_rvc_query (GnmRenderedValueCollection
*rvc
,
70 void gnm_rvc_store (GnmRenderedValueCollection
*rvc
,
72 GnmRenderedValue
*rv
);
73 void gnm_rvc_remove (GnmRenderedValueCollection
*rvc
,
76 /* ------------------------------------------------------------------------- */
78 void gnm_rendered_value_init (void);
79 void gnm_rendered_value_shutdown (void);
83 #endif /* _GNM_RENDERED_VALUE_H_ */