ssdiff: move comparison engine into its own file.
[gnumeric.git] / src / rendered-value.h
blob1b45b94ec820722e69568ceaebfa01500707726e
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_
5 #include "gnumeric.h"
6 #include <pango/pango.h>
8 G_BEGIN_DECLS
10 struct _GnmRenderedValue {
11 PangoLayout *layout;
13 /* In pango units: */
14 int layout_natural_width, layout_natural_height;
16 /* In pixels: */
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 */
24 guint hfilled : 1;
25 guint vfilled : 1;
26 guint wrap_text : 1;
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 {
35 GnmRenderedValue rv;
36 guint sin_a_neg : 1;
37 int linecount;
38 struct GnmRenderedRotatedValueInfo {
39 int dx, dy;
40 } *lines;
43 GnmRenderedValue *gnm_rendered_value_new (GnmCell const *cell,
44 PangoContext *context,
45 gboolean variable_width,
46 double zoom);
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;
61 gsize size;
62 GHashTable *values;
65 GnmRenderedValueCollection *gnm_rvc_new (PangoContext *context,
66 gsize size);
67 void gnm_rvc_free (GnmRenderedValueCollection *rvc);
68 GnmRenderedValue *gnm_rvc_query (GnmRenderedValueCollection *rvc,
69 GnmCell const *cell);
70 void gnm_rvc_store (GnmRenderedValueCollection *rvc,
71 GnmCell const *cell,
72 GnmRenderedValue *rv);
73 void gnm_rvc_remove (GnmRenderedValueCollection *rvc,
74 GnmCell const *cell);
76 /* ------------------------------------------------------------------------- */
78 void gnm_rendered_value_init (void);
79 void gnm_rendered_value_shutdown (void);
81 G_END_DECLS
83 #endif /* _GNM_RENDERED_VALUE_H_ */