summaryrefslogtreecommitdiff
path: root/gtk/gtkcssstaticstyleprivate.h
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2014-10-26 05:07:06 +0100
committerBenjamin Otte <otte@redhat.com>2015-01-07 14:26:47 +0100
commitac215ffc8fbefe2493c071721d5cf72c916b6bc6 (patch)
tree9c4210c9208ab765b1d040fffbdbbb14e16de4fa /gtk/gtkcssstaticstyleprivate.h
parent4168e0385efd9231731ed35b96ce58bafc3eb03f (diff)
downloadgtk+-ac215ffc8fbefe2493c071721d5cf72c916b6bc6.tar.gz
cssstyle: Add GtkCssStaticStyle
For now, this is only an implementation detail of the animated style. The idea is to use GtkCssStaticStyle as the result of CSS queries and then put a GtkCssAnimatedStyle on top that manages the animations. The neat thing about this is that you can cache the static values.
Diffstat (limited to 'gtk/gtkcssstaticstyleprivate.h')
-rw-r--r--gtk/gtkcssstaticstyleprivate.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/gtk/gtkcssstaticstyleprivate.h b/gtk/gtkcssstaticstyleprivate.h
new file mode 100644
index 0000000000..390a9116f0
--- /dev/null
+++ b/gtk/gtkcssstaticstyleprivate.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright © 2012 Red Hat Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors: Benjamin Otte <otte@gnome.org>
+ */
+
+#ifndef __GTK_CSS_STATIC_STYLE_PRIVATE_H__
+#define __GTK_CSS_STATIC_STYLE_PRIVATE_H__
+
+#include "gtk/gtkcssstyleprivate.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_CSS_STATIC_STYLE (gtk_css_static_style_get_type ())
+#define GTK_CSS_STATIC_STYLE(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, GTK_TYPE_CSS_STATIC_STYLE, GtkCssStaticStyle))
+#define GTK_CSS_STATIC_STYLE_CLASS(cls) (G_TYPE_CHECK_CLASS_CAST (cls, GTK_TYPE_CSS_STATIC_STYLE, GtkCssStaticStyleClass))
+#define GTK_IS_CSS_STATIC_STYLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, GTK_TYPE_CSS_STATIC_STYLE))
+#define GTK_IS_CSS_STATIC_STYLE_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE (obj, GTK_TYPE_CSS_STATIC_STYLE))
+#define GTK_CSS_STATIC_STYLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CSS_STATIC_STYLE, GtkCssStaticStyleClass))
+
+typedef struct _GtkCssStaticStyle GtkCssStaticStyle;
+typedef struct _GtkCssStaticStyleClass GtkCssStaticStyleClass;
+
+struct _GtkCssStaticStyle
+{
+ GtkCssStyle parent;
+
+ GPtrArray *values; /* the values */
+ GPtrArray *sections; /* sections the values are defined in */
+
+ GtkBitmask *depends_on_parent; /* values that depend on parent values */
+ GtkBitmask *equals_parent; /* values that equal their parent values */
+ GtkBitmask *depends_on_color; /* values that depend on the color property */
+ GtkBitmask *depends_on_font_size; /* values that depend on the font-size property */
+};
+
+struct _GtkCssStaticStyleClass
+{
+ GtkCssStyleClass parent_class;
+};
+
+GType gtk_css_static_style_get_type (void) G_GNUC_CONST;
+
+GtkCssStyle * gtk_css_static_style_new (void);
+
+void gtk_css_static_style_compute_value (GtkCssStaticStyle *style,
+ GtkStyleProviderPrivate*provider,
+ int scale,
+ GtkCssStyle *parent_style,
+ guint id,
+ GtkCssValue *specified,
+ GtkCssSection *section);
+
+G_END_DECLS
+
+#endif /* __GTK_CSS_STATIC_STYLE_PRIVATE_H__ */