]> Pileus Git - ~andy/gtk/blob - gtk/gtkcsscomputedvaluesprivate.h
Add GtkBubbleWindow
[~andy/gtk] / gtk / gtkcsscomputedvaluesprivate.h
1 /*
2  * Copyright © 2012 Red Hat Inc.
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
16  *
17  * Authors: Benjamin Otte <otte@gnome.org>
18  */
19
20 #ifndef __GTK_CSS_COMPUTED_VALUES_PRIVATE_H__
21 #define __GTK_CSS_COMPUTED_VALUES_PRIVATE_H__
22
23 #include <glib-object.h>
24
25 #include "gtk/gtkbitmaskprivate.h"
26 #include "gtk/gtkcsssection.h"
27 #include "gtk/gtkcssvalueprivate.h"
28
29 G_BEGIN_DECLS
30
31 #define GTK_TYPE_CSS_COMPUTED_VALUES           (_gtk_css_computed_values_get_type ())
32 #define GTK_CSS_COMPUTED_VALUES(obj)           (G_TYPE_CHECK_INSTANCE_CAST (obj, GTK_TYPE_CSS_COMPUTED_VALUES, GtkCssComputedValues))
33 #define GTK_CSS_COMPUTED_VALUES_CLASS(cls)     (G_TYPE_CHECK_CLASS_CAST (cls, GTK_TYPE_CSS_COMPUTED_VALUES, GtkCssComputedValuesClass))
34 #define GTK_IS_CSS_COMPUTED_VALUES(obj)        (G_TYPE_CHECK_INSTANCE_TYPE (obj, GTK_TYPE_CSS_COMPUTED_VALUES))
35 #define GTK_IS_CSS_COMPUTED_VALUES_CLASS(obj)  (G_TYPE_CHECK_CLASS_TYPE (obj, GTK_TYPE_CSS_COMPUTED_VALUES))
36 #define GTK_CSS_COMPUTED_VALUES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CSS_COMPUTED_VALUES, GtkCssComputedValuesClass))
37
38 /* typedef struct _GtkCssComputedValues           GtkCssComputedValues; */
39 typedef struct _GtkCssComputedValuesClass      GtkCssComputedValuesClass;
40
41 struct _GtkCssComputedValues
42 {
43   GObject parent;
44
45   GPtrArray             *values;               /* the unanimated (aka intrinsic) values */
46   GPtrArray             *sections;             /* sections the values are defined in */
47
48   GPtrArray             *animated_values;      /* NULL or array of animated values/NULL if not animated */
49   gint64                 current_time;         /* the current time in our world */
50   GSList                *animations;           /* the running animations, least important one first */
51
52   GtkBitmask            *depends_on_parent;    /* for intrinsic values */
53   GtkBitmask            *equals_parent;        /* dito */
54   GtkBitmask            *depends_on_color;     /* dito */
55   GtkBitmask            *depends_on_font_size; /* dito */
56 };
57
58 struct _GtkCssComputedValuesClass
59 {
60   GObjectClass parent_class;
61 };
62
63 GType                   _gtk_css_computed_values_get_type             (void) G_GNUC_CONST;
64
65 GtkCssComputedValues *  _gtk_css_computed_values_new                  (void);
66
67 void                    _gtk_css_computed_values_compute_value        (GtkCssComputedValues     *values,
68                                                                        GtkStyleProviderPrivate  *provider,
69                                                                        GtkCssComputedValues     *parent_values,
70                                                                        guint                     id,
71                                                                        GtkCssValue              *specified,
72                                                                        GtkCssSection            *section);
73 void                    _gtk_css_computed_values_set_value            (GtkCssComputedValues     *values,
74                                                                        guint                     id,
75                                                                        GtkCssValue              *value,
76                                                                        GtkCssDependencies        dependencies,
77                                                                        GtkCssSection            *section);
78 void                    _gtk_css_computed_values_set_animated_value   (GtkCssComputedValues     *values,
79                                                                        guint                     id,
80                                                                        GtkCssValue              *value);
81                                                                         
82 GtkCssValue *           _gtk_css_computed_values_get_value            (GtkCssComputedValues     *values,
83                                                                        guint                     id);
84 GtkCssSection *         _gtk_css_computed_values_get_section          (GtkCssComputedValues     *values,
85                                                                        guint                     id);
86 GtkCssValue *           _gtk_css_computed_values_get_intrinsic_value  (GtkCssComputedValues     *values,
87                                                                        guint                     id);
88 GtkBitmask *            _gtk_css_computed_values_get_difference       (GtkCssComputedValues     *values,
89                                                                        GtkCssComputedValues     *other);
90 GtkBitmask *            _gtk_css_computed_values_compute_dependencies (GtkCssComputedValues     *values,
91                                                                        const GtkBitmask         *parent_changes);
92
93 void                    _gtk_css_computed_values_create_animations    (GtkCssComputedValues     *values,
94                                                                        GtkCssComputedValues     *parent_values,
95                                                                        gint64                    timestamp,
96                                                                        GtkStyleProviderPrivate  *provider,
97                                                                        GtkCssComputedValues     *source);
98 GtkBitmask *            _gtk_css_computed_values_advance              (GtkCssComputedValues     *values,
99                                                                        gint64                    timestamp);
100 void                    _gtk_css_computed_values_cancel_animations    (GtkCssComputedValues     *values);
101 gboolean                _gtk_css_computed_values_is_static            (GtkCssComputedValues     *values);
102
103 G_END_DECLS
104
105 #endif /* __GTK_CSS_COMPUTED_VALUES_PRIVATE_H__ */