diff options
author | Cosimo Cecchi <cosimoc@gnome.org> | 2011-05-26 15:53:28 -0400 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2011-06-09 05:51:53 +0200 |
commit | 9976530fe0a9d158df1b27b39f0db757a90c54b2 (patch) | |
tree | 1c602f6ced3a407e42da731265dbda7c24410992 /gtk/gtkborderimageprivate.h | |
parent | e45230ad39a773bc8eed64d5d7f9ebaf470ccc4c (diff) | |
download | gtk+-9976530fe0a9d158df1b27b39f0db757a90c54b2.tar.gz |
border-image: change Gtk9Slice to GtkBorderImage
It's a similar private type, which is much more powerful, and respects
the CSS rendering specification for border-image.
https://bugzilla.gnome.org/show_bug.cgi?id=651194
Diffstat (limited to 'gtk/gtkborderimageprivate.h')
-rw-r--r-- | gtk/gtkborderimageprivate.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/gtk/gtkborderimageprivate.h b/gtk/gtkborderimageprivate.h new file mode 100644 index 0000000000..2eddd9363a --- /dev/null +++ b/gtk/gtkborderimageprivate.h @@ -0,0 +1,80 @@ +/* GTK - The GIMP Toolkit + * Copyright (C) 2010 Carlos Garnacho <carlosg@gnome.org> + * Copyright (C) 2011 Red Hat, Inc. + * + * Authors: Carlos Garnacho <carlosg@gnome.org> + * Cosimo Cecchi <cosimoc@gnome.org> + * + * 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 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., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GTK_BORDER_IMAGE_H__ +#define __GTK_BORDER_IMAGE_H__ + +#include <gtk/gtkborder.h> +#include <gtk/gtkenums.h> +#include <gtk/gtkgradient.h> +#include <gtk/gtkstyleproperties.h> +#include <gtk/gtkthemingengine.h> + +G_BEGIN_DECLS + +#define GTK_TYPE_BORDER_IMAGE_REPEAT (_gtk_border_image_repeat_get_type ()) + +GType _gtk_border_image_repeat_get_type (void) G_GNUC_CONST; + +typedef struct { + GtkRepeatStyle vrepeat; + GtkRepeatStyle hrepeat; +} GtkBorderImageRepeat; + +typedef struct _GtkBorderImage GtkBorderImage; + +#define GTK_TYPE_BORDER_IMAGE (_gtk_border_image_get_type ()) + +GType _gtk_border_image_get_type (void) G_GNUC_CONST; + +GtkBorderImage * _gtk_border_image_new (cairo_pattern_t *source, + GtkBorder *slice, + GtkBorderImageRepeat *repeat); +GtkBorderImage * _gtk_border_image_new_for_gradient (GtkGradient *gradient, + GtkBorder *slice, + GtkBorderImageRepeat *repeat); + +GtkBorderImage * _gtk_border_image_resolve (GtkBorderImage *image, + GtkStyleProperties *props); +gboolean _gtk_border_image_get_resolved (GtkBorderImage *image); + +GtkBorderImage * _gtk_border_image_ref (GtkBorderImage *image); +void _gtk_border_image_unref (GtkBorderImage *image); + +void _gtk_border_image_render (GtkBorderImage *image, + GtkBorder *border_width, + cairo_t *cr, + gdouble x, + gdouble y, + gdouble width, + gdouble height); + +GParameter * _gtk_border_image_unpack (const GValue *value, + guint *n_params); +void _gtk_border_image_pack (GValue *value, + GtkStyleProperties *props, + GtkStateFlags state); + +G_END_DECLS + +#endif /* __GTK_BORDER_IMAGE_H__ */ |