1 #ifndef _GNM_RENDERED_VALUE_H_ 2 # define _GNM_RENDERED_VALUE_H_ 3 4 #include <gnumeric.h> 5 #include <pango/pango.h> 6 7 G_BEGIN_DECLS 8 9 struct _GnmRenderedValue { 10 PangoLayout *layout; 11 12 /* In pango units: */ 13 int layout_natural_width, layout_natural_height; 14 15 /* In pixels: */ 16 guint16 indent_left, indent_right; 17 18 GOColor go_fore_color; 19 20 guint effective_halign : 8; 21 guint effective_valign : 5; 22 guint variable_width : 1; /* result depends on the width of cell */ 23 guint hfilled : 1; 24 guint vfilled : 1; 25 guint wrap_text : 1; 26 guint might_overflow : 1; /* Subject to ####### treatment. */ 27 guint numeric_overflow : 1; /* ####### has happened. */ 28 guint noborders : 1; /* Valid for rotated only. */ 29 guint drawn : 1; /* Has drawing layout taken place? */ 30 signed int rotation : 10; 31 }; 32 33 struct _GnmRenderedRotatedValue { 34 GnmRenderedValue rv; 35 guint sin_a_neg : 1; 36 int linecount; 37 struct GnmRenderedRotatedValueInfo { 38 int dx, dy; 39 } *lines; 40 }; 41 42 GnmRenderedValue *gnm_rendered_value_new (GnmCell const *cell, 43 PangoContext *context, 44 gboolean variable_width, 45 double zoom); 46 void gnm_rendered_value_destroy (GnmRenderedValue *rv); 47 48 void gnm_rendered_value_remeasure (GnmRenderedValue *rv); 49 50 /* Return the value as a single string without format infomation. */ 51 char const *gnm_rendered_value_get_text (GnmRenderedValue const * rv); 52 53 GOColor gnm_rendered_value_get_color (GnmRenderedValue const * rv); 54 55 /* ------------------------------------------------------------------------- */ 56 57 struct _GnmRenderedValueCollection { 58 PangoContext *context; 59 60 gsize size; 61 GHashTable *values; 62 }; 63 64 GnmRenderedValueCollection *gnm_rvc_new (PangoContext *context, 65 gsize size); 66 void gnm_rvc_free (GnmRenderedValueCollection *rvc); 67 GnmRenderedValue *gnm_rvc_query (GnmRenderedValueCollection *rvc, 68 GnmCell const *cell); 69 void gnm_rvc_store (GnmRenderedValueCollection *rvc, 70 GnmCell const *cell, 71 GnmRenderedValue *rv); 72 void gnm_rvc_remove (GnmRenderedValueCollection *rvc, 73 GnmCell const *cell); 74 75 /* ------------------------------------------------------------------------- */ 76 77 void gnm_rendered_value_init (void); 78 void gnm_rendered_value_shutdown (void); 79 80 G_END_DECLS 81 82 #endif /* _GNM_RENDERED_VALUE_H_ */ 83