X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkstylepropertyprivate.h;h=a92afdc36a0783ce57968cdc0f5f7e17c2f3bb93;hb=aaedf5a35219b034a244730564b8fdf2b7d32540;hp=64789bc389fc0001d98a14838ef0600081050307;hpb=d14fbf32542ba37650a167886cef6bb796ea7a3b;p=~andy%2Fgtk diff --git a/gtk/gtkstylepropertyprivate.h b/gtk/gtkstylepropertyprivate.h index 64789bc38..a92afdc36 100644 --- a/gtk/gtkstylepropertyprivate.h +++ b/gtk/gtkstylepropertyprivate.h @@ -12,67 +12,77 @@ * 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., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . */ #ifndef __GTK_STYLEPROPERTY_PRIVATE_H__ #define __GTK_STYLEPROPERTY_PRIVATE_H__ #include "gtkcssparserprivate.h" +#include "gtkstylecontextprivate.h" +#include "gtkcssvalueprivate.h" G_BEGIN_DECLS -typedef struct _GtkStyleProperty GtkStyleProperty; +#define GTK_TYPE_STYLE_PROPERTY (_gtk_style_property_get_type ()) +#define GTK_STYLE_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, GTK_TYPE_STYLE_PROPERTY, GtkStyleProperty)) +#define GTK_STYLE_PROPERTY_CLASS(cls) (G_TYPE_CHECK_CLASS_CAST (cls, GTK_TYPE_STYLE_PROPERTY, GtkStylePropertyClass)) +#define GTK_IS_STYLE_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, GTK_TYPE_STYLE_PROPERTY)) +#define GTK_IS_STYLE_PROPERTY_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE (obj, GTK_TYPE_STYLE_PROPERTY)) +#define GTK_STYLE_PROPERTY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_STYLE_PROPERTY, GtkStylePropertyClass)) -typedef GParameter * (* GtkStyleUnpackFunc) (const GValue *value, - guint *n_params); -typedef void (* GtkStylePackFunc) (GValue *value, - GtkStyleProperties *props, - GtkStateFlags state); -typedef gboolean (* GtkStyleParseFunc) (GtkCssParser *parser, - GFile *base, - GValue *value); -typedef void (* GtkStylePrintFunc) (const GValue *value, - GString *string); +typedef struct _GtkStyleProperty GtkStyleProperty; +typedef struct _GtkStylePropertyClass GtkStylePropertyClass; +typedef GtkCssValue * (* GtkStyleQueryFunc) (guint id, + gpointer data); struct _GtkStyleProperty { - GParamSpec *pspec; - GtkStylePropertyParser property_parse_func; - GtkStyleUnpackFunc unpack_func; - GtkStylePackFunc pack_func; - GtkStyleParseFunc parse_func; - GtkStylePrintFunc print_func; -}; + GObject parent; -const GtkStyleProperty * _gtk_style_property_lookup (const char *name); - -void _gtk_style_property_register (GParamSpec *pspec, - GtkStylePropertyParser property_parse_func, - GtkStyleUnpackFunc unpack_func, - GtkStylePackFunc pack_func, - GtkStyleParseFunc parse_func, - GtkStylePrintFunc print_func); + char *name; + GType value_type; +}; -gboolean _gtk_style_property_is_shorthand (const GtkStyleProperty *property); -GParameter * _gtk_style_property_unpack (const GtkStyleProperty *property, - const GValue *value, - guint *n_params); -void _gtk_style_property_pack (const GtkStyleProperty *property, +struct _GtkStylePropertyClass +{ + GObjectClass parent_class; + + void (* assign) (GtkStyleProperty *property, GtkStyleProperties *props, GtkStateFlags state, - GValue *value); + const GValue *value); + void (* query) (GtkStyleProperty *property, + GValue *value, + GtkStyleQueryFunc query_func, + gpointer query_data); + GtkCssValue * (* parse_value) (GtkStyleProperty * property, + GtkCssParser *parser); + + GHashTable *properties; +}; -gboolean _gtk_style_property_parse_value (const GtkStyleProperty *property, +GType _gtk_style_property_get_type (void) G_GNUC_CONST; + +void _gtk_style_property_init_properties (void); + +GtkStyleProperty * _gtk_style_property_lookup (const char *name); + +const char * _gtk_style_property_get_name (GtkStyleProperty *property); + +GtkCssValue * _gtk_style_property_parse_value (GtkStyleProperty * property, + GtkCssParser *parser); + +GType _gtk_style_property_get_value_type(GtkStyleProperty * property); +void _gtk_style_property_query (GtkStyleProperty * property, GValue *value, - GtkCssParser *parser, - GFile *base); -void _gtk_style_property_print_value (const GtkStyleProperty *property, - const GValue *value, - GString *string); + GtkStyleQueryFunc query_func, + gpointer query_data); +void _gtk_style_property_assign (GtkStyleProperty *property, + GtkStyleProperties *props, + GtkStateFlags state, + const GValue *value); G_END_DECLS