diff options
author | Benjamin Otte <otte@redhat.com> | 2011-12-31 13:43:31 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2012-01-09 18:37:51 +0100 |
commit | f9485241b1b9dde6604ec6aa92ae25f3c27e80c4 (patch) | |
tree | c7d2384d98c763ec4830a3cad9738cfaef5c3dfe | |
parent | f62c79b41c08654b54f830de756cc8fc51c16bfc (diff) | |
download | gtk+-f9485241b1b9dde6604ec6aa92ae25f3c27e80c4.tar.gz |
styleproperty: Split into shorthand and real style properties
-rw-r--r-- | gtk/Makefile.am | 4 | ||||
-rw-r--r-- | gtk/gtkcssshorthandproperty.c | 36 | ||||
-rw-r--r-- | gtk/gtkcssshorthandpropertyprivate.h | 55 | ||||
-rw-r--r-- | gtk/gtkcssstyleproperty.c | 36 | ||||
-rw-r--r-- | gtk/gtkcssstylepropertyprivate.h | 53 | ||||
-rw-r--r-- | gtk/gtkstyleproperty.c | 9 |
6 files changed, 191 insertions, 2 deletions
diff --git a/gtk/Makefile.am b/gtk/Makefile.am index c976a61ca9..5407674b76 100644 --- a/gtk/Makefile.am +++ b/gtk/Makefile.am @@ -416,6 +416,8 @@ gtk_private_h_sources = \ gtkcssproviderprivate.h \ gtkcsssectionprivate.h \ gtkcssselectorprivate.h \ + gtkcssshorthandpropertyprivate.h \ + gtkcssstylepropertyprivate.h \ gtkcustompaperunixdialog.h \ gtkdndcursors.h \ gtkentryprivate.h \ @@ -589,6 +591,8 @@ gtk_base_c_sources = \ gtkcssprovider.c \ gtkcsssection.c \ gtkcssselector.c \ + gtkcssshorthandproperty.c \ + gtkcssstyleproperty.c \ gtkcsstypes.c \ gtkdialog.c \ gtkdrawingarea.c \ diff --git a/gtk/gtkcssshorthandproperty.c b/gtk/gtkcssshorthandproperty.c new file mode 100644 index 0000000000..6c29a69049 --- /dev/null +++ b/gtk/gtkcssshorthandproperty.c @@ -0,0 +1,36 @@ +/* + * Copyright © 2011 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, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Benjamin Otte <otte@gnome.org> + */ + +#include "config.h" + +#include "gtkcssshorthandpropertyprivate.h" + +G_DEFINE_TYPE (GtkCssShorthandProperty, _gtk_css_shorthand_property, GTK_TYPE_STYLE_PROPERTY) + +static void +_gtk_css_shorthand_property_class_init (GtkCssShorthandPropertyClass *klass) +{ +} + +static void +_gtk_css_shorthand_property_init (GtkCssShorthandProperty *shorthand) +{ +} + diff --git a/gtk/gtkcssshorthandpropertyprivate.h b/gtk/gtkcssshorthandpropertyprivate.h new file mode 100644 index 0000000000..d93a8f3837 --- /dev/null +++ b/gtk/gtkcssshorthandpropertyprivate.h @@ -0,0 +1,55 @@ +/* + * Copyright © 2011 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, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Benjamin Otte <otte@gnome.org> + */ + +#ifndef __GTK_CSS_SHORTHAND_PROPERTY_PRIVATE_H__ +#define __GTK_CSS_SHORTHAND_PROPERTY_PRIVATE_H__ + +#include <glib-object.h> + +#include "gtk/gtkstylepropertyprivate.h" + +G_BEGIN_DECLS + +#define GTK_TYPE_CSS_SHORTHAND_PROPERTY (_gtk_css_shorthand_property_get_type ()) +#define GTK_CSS_SHORTHAND_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, GTK_TYPE_CSS_SHORTHAND_PROPERTY, GtkCssShorthandProperty)) +#define GTK_CSS_SHORTHAND_PROPERTY_CLASS(cls) (G_TYPE_CHECK_CLASS_CAST (cls, GTK_TYPE_CSS_SHORTHAND_PROPERTY, GtkCssShorthandPropertyClass)) +#define GTK_IS_CSS_SHORTHAND_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, GTK_TYPE_CSS_SHORTHAND_PROPERTY)) +#define GTK_IS_CSS_SHORTHAND_PROPERTY_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE (obj, GTK_TYPE_CSS_SHORTHAND_PROPERTY)) +#define GTK_CSS_SHORTHAND_PROPERTY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CSS_SHORTHAND_PROPERTY, GtkCssShorthandPropertyClass)) + +typedef struct _GtkCssShorthandProperty GtkCssShorthandProperty; +typedef struct _GtkCssShorthandPropertyClass GtkCssShorthandPropertyClass; + +struct _GtkCssShorthandProperty +{ + GtkStyleProperty parent; +}; + +struct _GtkCssShorthandPropertyClass +{ + GtkStylePropertyClass parent_class; +}; + +GType _gtk_css_shorthand_property_get_type (void) G_GNUC_CONST; + + +G_END_DECLS + +#endif /* __GTK_CSS_SHORTHAND_PROPERTY_PRIVATE_H__ */ diff --git a/gtk/gtkcssstyleproperty.c b/gtk/gtkcssstyleproperty.c new file mode 100644 index 0000000000..45b3125acf --- /dev/null +++ b/gtk/gtkcssstyleproperty.c @@ -0,0 +1,36 @@ +/* + * Copyright © 2011 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, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Benjamin Otte <otte@gnome.org> + */ + +#include "config.h" + +#include "gtkcssstylepropertyprivate.h" + +G_DEFINE_TYPE (GtkCssStyleProperty, _gtk_css_style_property, GTK_TYPE_STYLE_PROPERTY) + +static void +_gtk_css_style_property_class_init (GtkCssStylePropertyClass *klass) +{ +} + +static void +_gtk_css_style_property_init (GtkCssStyleProperty *style_property) +{ +} + diff --git a/gtk/gtkcssstylepropertyprivate.h b/gtk/gtkcssstylepropertyprivate.h new file mode 100644 index 0000000000..923bd236d2 --- /dev/null +++ b/gtk/gtkcssstylepropertyprivate.h @@ -0,0 +1,53 @@ +/* + * Copyright © 2011 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, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Benjamin Otte <otte@gnome.org> + */ + +#ifndef __GTK_CSS_STYLE_PROPERTY_PRIVATE_H__ +#define __GTK_CSS_STYLE_PROPERTY_PRIVATE_H__ + +#include "gtk/gtkstylepropertyprivate.h" + +G_BEGIN_DECLS + +#define GTK_TYPE_CSS_STYLE_PROPERTY (_gtk_css_style_property_get_type ()) +#define GTK_CSS_STYLE_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, GTK_TYPE_CSS_STYLE_PROPERTY, GtkCssStyleProperty)) +#define GTK_CSS_STYLE_PROPERTY_CLASS(cls) (G_TYPE_CHECK_CLASS_CAST (cls, GTK_TYPE_CSS_STYLE_PROPERTY, GtkCssStylePropertyClass)) +#define GTK_IS_CSS_STYLE_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, GTK_TYPE_CSS_STYLE_PROPERTY)) +#define GTK_IS_CSS_STYLE_PROPERTY_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE (obj, GTK_TYPE_CSS_STYLE_PROPERTY)) +#define GTK_CSS_STYLE_PROPERTY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CSS_STYLE_PROPERTY, GtkCssStylePropertyClass)) + +typedef struct _GtkCssStyleProperty GtkCssStyleProperty; +typedef struct _GtkCssStylePropertyClass GtkCssStylePropertyClass; + +struct _GtkCssStyleProperty +{ + GtkStyleProperty parent; +}; + +struct _GtkCssStylePropertyClass +{ + GtkStylePropertyClass parent_class; +}; + +GType _gtk_css_style_property_get_type (void) G_GNUC_CONST; + + +G_END_DECLS + +#endif /* __GTK_CSS_STYLE_PROPERTY_PRIVATE_H__ */ diff --git a/gtk/gtkstyleproperty.c b/gtk/gtkstyleproperty.c index 0f70738ee8..7364e9912e 100644 --- a/gtk/gtkstyleproperty.c +++ b/gtk/gtkstyleproperty.c @@ -31,6 +31,8 @@ #include "gtkcssprovider.h" #include "gtkcssparserprivate.h" +#include "gtkcssshorthandpropertyprivate.h" +#include "gtkcssstylepropertyprivate.h" #include "gtkcsstypesprivate.h" #include "gtkprivatetypebuiltins.h" #include "gtkstylepropertiesprivate.h" @@ -55,7 +57,7 @@ static GHashTable *print_funcs = NULL; static GHashTable *properties = NULL; static GPtrArray *__style_property_array = NULL; -G_DEFINE_TYPE (GtkStyleProperty, _gtk_style_property, G_TYPE_OBJECT) +G_DEFINE_ABSTRACT_TYPE (GtkStyleProperty, _gtk_style_property, G_TYPE_OBJECT) static void gtk_style_property_finalize (GObject *object) @@ -3253,7 +3255,10 @@ _gtk_style_property_register (GParamSpec *pspec, return; } - node = g_object_new (GTK_TYPE_STYLE_PROPERTY, NULL); + if (pack_func == NULL) + node = g_object_new (GTK_TYPE_CSS_STYLE_PROPERTY, NULL); + else + node = g_object_new (GTK_TYPE_CSS_SHORTHAND_PROPERTY, NULL); node->flags = flags; node->pspec = pspec; node->property_parse_func = property_parse_func; |