]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkstylepropertyprivate.h
entrycompletion: Don't reconnect signals all the time
[~andy/gtk] / gtk / gtkstylepropertyprivate.h
index 57dd0d98df874455307ad47f422d2c34ce19dd2c..a92afdc36a0783ce57968cdc0f5f7e17c2f3bb93 100644 (file)
  * 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 <http://www.gnu.org/licenses/>.
  */
 
 #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 struct _GtkStyleProperty           GtkStyleProperty;
+typedef struct _GtkStylePropertyClass      GtkStylePropertyClass;
+
+typedef GtkCssValue *   (* GtkStyleQueryFunc)        (guint                   id,
+                                                     gpointer                data);
 
 struct _GtkStyleProperty
 {
-  GParamSpec             *pspec;
-  GtkStylePropertyParser  parse_func;
+  GObject parent;
+
+  char *name;
+  GType value_type;
+};
+
+struct _GtkStylePropertyClass
+{
+  GObjectClass  parent_class;
+  
+  void              (* assign)                             (GtkStyleProperty       *property,
+                                                            GtkStyleProperties     *props,
+                                                            GtkStateFlags           state,
+                                                            const GValue           *value);
+  void              (* query)                              (GtkStyleProperty       *property,
+                                                            GValue                 *value,
+                                                            GtkStyleQueryFunc       query_func,
+                                                            gpointer                query_data);
+  GtkCssValue *     (* parse_value)                        (GtkStyleProperty *      property,
+                                                            GtkCssParser           *parser);
+
+  GHashTable   *properties;
 };
 
-const GtkStyleProperty * _gtk_style_property_lookup        (const char         *name);
+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);
 
-void                     _gtk_style_property_register      (GParamSpec             *pspec,
-                                                            GtkStylePropertyParser  parse_func);
+GtkCssValue *            _gtk_style_property_parse_value   (GtkStyleProperty *      property,
+                                                            GtkCssParser           *parser);
 
-gboolean                _gtk_css_value_parse              (GValue        *value,
-                                                           GtkCssParser  *parser,
-                                                           GFile         *base);
-char *                  _gtk_css_value_to_string          (const GValue  *value);
+GType                    _gtk_style_property_get_value_type(GtkStyleProperty *      property);
+void                     _gtk_style_property_query         (GtkStyleProperty *      property,
+                                                            GValue                 *value,
+                                                            GtkStyleQueryFunc       query_func,
+                                                            gpointer                query_data);
+void                     _gtk_style_property_assign        (GtkStyleProperty       *property,
+                                                            GtkStyleProperties     *props,
+                                                            GtkStateFlags           state,
+                                                            const GValue           *value);
 
 G_END_DECLS