]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkcssimageprivate.h
entrycompletion: Don't reconnect signals all the time
[~andy/gtk] / gtk / gtkcssimageprivate.h
index 20a09a40734b90132e8c016705b42a51786cf9f8..f9e4e41b75c62a56c11dd3f51c36d67151b797d5 100644 (file)
@@ -12,8 +12,7 @@
  * 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
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  *
  * Authors: Benjamin Otte <otte@gnome.org>
  */
@@ -24,8 +23,8 @@
 #include <cairo.h>
 #include <glib-object.h>
 
-#include "gtk/gtkstylecontext.h"
 #include "gtk/gtkcssparserprivate.h"
+#include "gtk/gtkcsstypesprivate.h"
 
 G_BEGIN_DECLS
 
@@ -49,49 +48,82 @@ struct _GtkCssImageClass
   GObjectClass parent_class;
 
   /* width of image or 0 if it has no width (optional) */
-  int          (* get_width)                       (GtkCssImage        *image);
+  int          (* get_width)                       (GtkCssImage                *image);
   /* height of image or 0 if it has no height (optional) */
-  int          (* get_height)                      (GtkCssImage        *image);
+  int          (* get_height)                      (GtkCssImage                *image);
   /* aspect ratio (width / height) of image or 0 if it has no aspect ratio (optional) */
-  double       (* get_aspect_ratio)                (GtkCssImage        *image);
+  double       (* get_aspect_ratio)                (GtkCssImage                *image);
 
   /* create "computed value" in CSS terms, returns a new reference */
-  GtkCssImage *(* compute)                         (GtkCssImage        *image,
-                                                    GtkStyleContext    *context);
+  GtkCssImage *(* compute)                         (GtkCssImage                *image,
+                                                    guint                       property_id,
+                                                    GtkStyleProviderPrivate    *provider,
+                                                    GtkCssComputedValues       *values,
+                                                    GtkCssComputedValues       *parent_values,
+                                                    GtkCssDependencies         *dependencies);
+  /* compare two images for equality */
+  gboolean     (* equal)                           (GtkCssImage                *image1,
+                                                    GtkCssImage                *image2);
+  /* transition between start and end image (end may be NULL), returns new reference */
+  GtkCssImage *(* transition)                      (GtkCssImage                *start,
+                                                    GtkCssImage                *end,
+                                                    guint                       property_id,
+                                                    double                      progress);
 
   /* draw to 0,0 with the given width and height */
-  void         (* draw)                            (GtkCssImage        *image,
-                                                    cairo_t            *cr,
-                                                    double              width,
-                                                    double              height);
+  void         (* draw)                            (GtkCssImage                *image,
+                                                    cairo_t                    *cr,
+                                                    double                      width,
+                                                    double                      height);
   /* parse CSS, return TRUE on success */
-  gboolean     (* parse)                           (GtkCssImage        *image,
-                                                    GtkCssParser       *parser,
-                                                    GFile              *base);
+  gboolean     (* parse)                           (GtkCssImage                *image,
+                                                    GtkCssParser               *parser);
   /* print to CSS */
-  void         (* print)                           (GtkCssImage        *image,
-                                                    GString            *string);
+  void         (* print)                           (GtkCssImage                *image,
+                                                    GString                    *string);
 };
 
 GType          _gtk_css_image_get_type             (void) G_GNUC_CONST;
 
-GtkCssImage *  _gtk_css_image_new_parse            (GtkCssParser       *parser,
-                                                    GFile              *base);
-
-int            _gtk_css_image_get_width            (GtkCssImage        *image);
-int            _gtk_css_image_get_height           (GtkCssImage        *image);
-double         _gtk_css_image_get_aspect_ratio     (GtkCssImage        *image);
-
-GtkCssImage *  _gtk_css_image_compute              (GtkCssImage        *image,
-                                                    GtkStyleContext    *context);
-
-void           _gtk_css_image_draw                 (GtkCssImage        *image,
-                                                    cairo_t            *cr,
-                                                    double              width,
-                                                    double              height);
-void           _gtk_css_image_print                (GtkCssImage        *image,
-                                                    GString            *string);
-
+gboolean       _gtk_css_image_can_parse            (GtkCssParser               *parser);
+GtkCssImage *  _gtk_css_image_new_parse            (GtkCssParser               *parser);
+
+int            _gtk_css_image_get_width            (GtkCssImage                *image);
+int            _gtk_css_image_get_height           (GtkCssImage                *image);
+double         _gtk_css_image_get_aspect_ratio     (GtkCssImage                *image);
+
+GtkCssImage *  _gtk_css_image_compute              (GtkCssImage                *image,
+                                                    guint                       property_id,
+                                                    GtkStyleProviderPrivate    *provider,
+                                                    GtkCssComputedValues       *values,
+                                                    GtkCssComputedValues       *parent_values,
+                                                    GtkCssDependencies         *dependencies);
+gboolean       _gtk_css_image_equal                (GtkCssImage                *image1,
+                                                    GtkCssImage                *image2);
+GtkCssImage *  _gtk_css_image_transition           (GtkCssImage                *start,
+                                                    GtkCssImage                *end,
+                                                    guint                       property_id,
+                                                    double                      progress);
+
+void           _gtk_css_image_draw                 (GtkCssImage                *image,
+                                                    cairo_t                    *cr,
+                                                    double                      width,
+                                                    double                      height);
+void           _gtk_css_image_print                (GtkCssImage                *image,
+                                                    GString                    *string);
+
+void           _gtk_css_image_get_concrete_size    (GtkCssImage                *image,
+                                                    double                      specified_width,
+                                                    double                      specified_height,
+                                                    double                      default_width,
+                                                    double                      default_height,
+                                                    double                     *concrete_width,
+                                                    double                     *concrete_height);
+cairo_surface_t *
+               _gtk_css_image_get_surface          (GtkCssImage                *image,
+                                                    cairo_surface_t            *target,
+                                                    int                         surface_width,
+                                                    int                         surface_height);
 
 G_END_DECLS