summaryrefslogtreecommitdiff
path: root/gtk/gtkcssimageradialprivate.h
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2015-12-27 02:03:35 -0500
committerMatthias Clasen <mclasen@redhat.com>2016-01-04 13:59:24 -0500
commitf727ee568763c544fe4d28824b9c171b3ef2db7c (patch)
tree4ce77ad219467e656a6f6b8ed0146c05240cbf5a /gtk/gtkcssimageradialprivate.h
parentf66191346c997e9f45843f6d8f087aa555bde811 (diff)
downloadgtk+-f727ee568763c544fe4d28824b9c171b3ef2db7c.tar.gz
Implement CSS radial gradients
Implement parsing and drawing of radial gradients according to http://www.w3.org/TR/css3-images/#radial-gradients. Transitions are not implemented yet.
Diffstat (limited to 'gtk/gtkcssimageradialprivate.h')
-rw-r--r--gtk/gtkcssimageradialprivate.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/gtk/gtkcssimageradialprivate.h b/gtk/gtkcssimageradialprivate.h
new file mode 100644
index 0000000000..07d5e1f3f1
--- /dev/null
+++ b/gtk/gtkcssimageradialprivate.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright © 2015 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: Matthias Clasen <mclasen@redhat.com>
+ */
+
+#ifndef __GTK_CSS_IMAGE_RADIAL_PRIVATE_H__
+#define __GTK_CSS_IMAGE_RADIAL_PRIVATE_H__
+
+#include "gtk/gtkcssimageprivate.h"
+#include "gtk/gtkcssvalueprivate.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_CSS_IMAGE_RADIAL (_gtk_css_image_radial_get_type ())
+#define GTK_CSS_IMAGE_RADIAL(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, GTK_TYPE_CSS_IMAGE_RADIAL, GtkCssImageRadial))
+#define GTK_CSS_IMAGE_RADIAL_CLASS(cls) (G_TYPE_CHECK_CLASS_CAST (cls, GTK_TYPE_CSS_IMAGE_RADIAL, GtkCssImageRadialClass))
+#define GTK_IS_CSS_IMAGE_RADIAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, GTK_TYPE_CSS_IMAGE_RADIAL))
+#define GTK_IS_CSS_IMAGE_RADIAL_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE (obj, GTK_TYPE_CSS_IMAGE_RADIAL))
+#define GTK_CSS_IMAGE_RADIAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CSS_IMAGE_RADIAL, GtkCssImageRadialClass))
+
+typedef struct _GtkCssImageRadial GtkCssImageRadial;
+typedef struct _GtkCssImageRadialClass GtkCssImageRadialClass;
+typedef struct _GtkCssImageRadialColorStop GtkCssImageRadialColorStop;
+
+struct _GtkCssImageRadialColorStop {
+ GtkCssValue *offset;
+ GtkCssValue *color;
+};
+
+typedef enum {
+ GTK_CSS_EXPLICIT_SIZE,
+ GTK_CSS_CLOSEST_SIDE,
+ GTK_CSS_FARTHEST_SIDE,
+ GTK_CSS_CLOSEST_CORNER,
+ GTK_CSS_FARTHEST_CORNER
+} GtkCssRadialSize;
+
+struct _GtkCssImageRadial
+{
+ GtkCssImage parent;
+
+ GtkCssValue *position;
+ GtkCssValue *sizes[2];
+ GArray *stops;
+ GtkCssRadialSize size;
+ guint circle : 1;
+ guint repeating :1;
+};
+
+struct _GtkCssImageRadialClass
+{
+ GtkCssImageClass parent_class;
+};
+
+GType _gtk_css_image_radial_get_type (void) G_GNUC_CONST;
+
+G_END_DECLS
+
+#endif /* __GTK_CSS_IMAGE_RADIAL_PRIVATE_H__ */