]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtksizerequestcacheprivate.h
stylecontext: Do invalidation on first resize container
[~andy/gtk] / gtk / gtksizerequestcacheprivate.h
index 60c061bdfef2191ba8a8514ad2aaaeb2f5abd0b3..ac851dde74675c39e896796514755af0ecb51749 100644 (file)
@@ -26,6 +26,7 @@
 #define __GTK_SIZE_REQUEST_CACHE_PRIVATE_H__
 
 #include <glib.h>
+#include <gtk/gtkenums.h>
 
 G_BEGIN_DECLS
 
@@ -50,24 +51,33 @@ typedef struct
 } SizeRequest;
 
 typedef struct {
-  SizeRequest **widths;
-  SizeRequest **heights;
+  SizeRequest **requests[2];
 
-  CachedSize  cached_width;
-  CachedSize  cached_height;
+  CachedSize  cached_size[2];
 
-  guint       cached_widths      : 3;
-  guint       cached_heights     : 3;
-  guint       last_cached_width  : 3;
-  guint       last_cached_height : 3;
-  guint       cached_base_width  : 1;
-  guint       cached_base_height : 1;
+  GtkSizeRequestMode request_mode   : 3;
+  guint       request_mode_valid    : 1;
+  struct {
+    guint       n_cached_requests   : 3;
+    guint       last_cached_request : 3;
+    guint       cached_size_valid   : 1;
+  }           flags[2];
 } SizeRequestCache;
 
 void            _gtk_size_request_cache_init                    (SizeRequestCache       *cache);
 void            _gtk_size_request_cache_free                    (SizeRequestCache       *cache);
 
 void            _gtk_size_request_cache_clear                   (SizeRequestCache       *cache);
+void            _gtk_size_request_cache_commit                  (SizeRequestCache       *cache,
+                                                                 GtkOrientation          orientation,
+                                                                 gint                    for_size,
+                                                                 gint                    minimum_size,
+                                                                 gint                    natural_size);
+gboolean        _gtk_size_request_cache_lookup                  (SizeRequestCache       *cache,
+                                                                 GtkOrientation          orientation,
+                                                                 gint                    for_size,
+                                                                 gint                   *minimum,
+                                                                 gint                   *natural);
 
 G_END_DECLS