G_BEGIN_DECLS
+/* forward declaration for GtkCssValue */
+typedef struct _GtkCssComputedValues GtkCssComputedValues;
+typedef struct _GtkStyleProviderPrivate GtkStyleProviderPrivate; /* dummy typedef */
+
typedef enum { /*< skip >*/
GTK_CSS_CHANGE_CLASS = (1 << 0),
GTK_CSS_CHANGE_NAME = (1 << 1),
GTK_CSS_CHANGE_SIBLING_STATE = (1 << 7),
GTK_CSS_CHANGE_PARENT_CLASS = (1 << 8),
GTK_CSS_CHANGE_PARENT_NAME = (1 << 9),
+ GTK_CSS_CHANGE_PARENT_REGION = GTK_CSS_CHANGE_PARENT_NAME,
GTK_CSS_CHANGE_PARENT_POSITION = (1 << 10),
GTK_CSS_CHANGE_PARENT_STATE = (1 << 11),
GTK_CSS_CHANGE_PARENT_SIBLING_CLASS = (1 << 12),
GTK_CSS_CHANGE_PARENT_SIBLING_POSITION = (1 << 14),
GTK_CSS_CHANGE_PARENT_SIBLING_STATE = (1 << 15),
/* add more */
+ GTK_CSS_CHANGE_SOURCE = (1 << 16),
+ GTK_CSS_CHANGE_ANIMATE = (1 << 17),
+ GTK_CSS_CHANGE_FORCE_INVALIDATE = (1 << 18),
+
+ GTK_CSS_CHANGE_RESERVED_BIT = (1 << 31) /* Used internally in gtkcssselector.c */
} GtkCssChange;
-#define GTK_CSS_CHANGE_ANY ((1 << 16) - 1)
+#define GTK_CSS_CHANGE_ANY ((1 << 19) - 1)
#define GTK_CSS_CHANGE_ANY_SELF (GTK_CSS_CHANGE_CLASS | GTK_CSS_CHANGE_NAME | GTK_CSS_CHANGE_POSITION | GTK_CSS_CHANGE_STATE)
#define GTK_CSS_CHANGE_ANY_SIBLING (GTK_CSS_CHANGE_SIBLING_CLASS | GTK_CSS_CHANGE_SIBLING_NAME | \
GTK_CSS_CHANGE_SIBLING_POSITION | GTK_CSS_CHANGE_SIBLING_STATE)
GTK_CSS_CHANGE_PARENT_POSITION | GTK_CSS_CHANGE_PARENT_SIBLING_POSITION | \
GTK_CSS_CHANGE_PARENT_STATE | GTK_CSS_CHANGE_PARENT_SIBLING_STATE)
+typedef enum /*< skip >*/ {
+ GTK_CSS_DEPENDS_ON_PARENT = (1 << 0),
+ GTK_CSS_EQUALS_PARENT = (1 << 1),
+ GTK_CSS_DEPENDS_ON_COLOR = (1 << 2),
+ GTK_CSS_DEPENDS_ON_FONT_SIZE = (1 << 3)
+} GtkCssDependencies;
+
enum { /*< skip >*/
GTK_CSS_PROPERTY_COLOR,
GTK_CSS_PROPERTY_FONT_SIZE,
GTK_CSS_PROPERTY_BORDER_IMAGE_REPEAT,
GTK_CSS_PROPERTY_BORDER_IMAGE_SLICE,
GTK_CSS_PROPERTY_BORDER_IMAGE_WIDTH,
+ GTK_CSS_PROPERTY_TRANSITION_PROPERTY,
+ GTK_CSS_PROPERTY_TRANSITION_DURATION,
+ GTK_CSS_PROPERTY_TRANSITION_TIMING_FUNCTION,
+ GTK_CSS_PROPERTY_TRANSITION_DELAY,
+ GTK_CSS_PROPERTY_ANIMATION_NAME,
+ GTK_CSS_PROPERTY_ANIMATION_DURATION,
+ GTK_CSS_PROPERTY_ANIMATION_TIMING_FUNCTION,
+ GTK_CSS_PROPERTY_ANIMATION_ITERATION_COUNT,
+ GTK_CSS_PROPERTY_ANIMATION_DIRECTION,
+ GTK_CSS_PROPERTY_ANIMATION_PLAY_STATE,
+ GTK_CSS_PROPERTY_ANIMATION_DELAY,
+ GTK_CSS_PROPERTY_ANIMATION_FILL_MODE,
+ GTK_CSS_PROPERTY_OPACITY,
GTK_CSS_PROPERTY_ENGINE,
- GTK_CSS_PROPERTY_TRANSITION,
GTK_CSS_PROPERTY_GTK_KEY_BINDINGS,
/* add more */
GTK_CSS_PROPERTY_N_PROPERTIES
};
-/* We encode horizontal and vertical repeat in one enum value.
- * This eases parsing and storage, but you need to be aware that
- * you have to "unpack" this value.
- */
-#define GTK_CSS_BACKGROUND_REPEAT_SHIFT (8)
-#define GTK_CSS_BACKGROUND_REPEAT_MASK ((1 << GTK_CSS_BACKGROUND_REPEAT_SHIFT) - 1)
-#define GTK_CSS_BACKGROUND_HORIZONTAL(repeat) ((repeat) & GTK_CSS_BACKGROUND_REPEAT_MASK)
-#define GTK_CSS_BACKGROUND_VERTICAL(repeat) (((repeat) >> GTK_CSS_BACKGROUND_REPEAT_SHIFT) & GTK_CSS_BACKGROUND_REPEAT_MASK)
-typedef enum /*< enum >*/
-{
- GTK_CSS_BACKGROUND_INVALID, /*< skip >*/
- GTK_CSS_BACKGROUND_REPEAT, /* start at one so we know if a value has been set */
- GTK_CSS_BACKGROUND_SPACE,
- GTK_CSS_BACKGROUND_ROUND,
- GTK_CSS_BACKGROUND_NO_REPEAT,
- /* need to hardcode the numer or glib-mkenums makes us into a flags type */
- GTK_CSS_BACKGROUND_REPEAT_X = 1025,
- GTK_CSS_BACKGROUND_REPEAT_Y = 260
-} GtkCssBackgroundRepeat;
-
-typedef enum {
- GTK_CSS_REPEAT_STYLE_STRETCH,
- GTK_CSS_REPEAT_STYLE_REPEAT,
- GTK_CSS_REPEAT_STYLE_ROUND,
- GTK_CSS_REPEAT_STYLE_SPACE
-} GtkCssBorderRepeatStyle;
-
typedef enum /*< skip >*/ {
GTK_CSS_AREA_BORDER_BOX,
GTK_CSS_AREA_PADDING_BOX,
GTK_CSS_AREA_CONTENT_BOX
} GtkCssArea;
+typedef enum /*< skip >*/ {
+ GTK_CSS_DIRECTION_NORMAL,
+ GTK_CSS_DIRECTION_REVERSE,
+ GTK_CSS_DIRECTION_ALTERNATE,
+ GTK_CSS_DIRECTION_ALTERNATE_REVERSE
+} GtkCssDirection;
+
+typedef enum /*< skip >*/ {
+ GTK_CSS_PLAY_STATE_RUNNING,
+ GTK_CSS_PLAY_STATE_PAUSED
+} GtkCssPlayState;
+
+typedef enum /*< skip >*/ {
+ GTK_CSS_FILL_NONE,
+ GTK_CSS_FILL_FORWARDS,
+ GTK_CSS_FILL_BACKWARDS,
+ GTK_CSS_FILL_BOTH
+} GtkCssFillMode;
+
+typedef enum /*< skip >*/ {
+ /* relative font sizes */
+ GTK_CSS_FONT_SIZE_SMALLER,
+ GTK_CSS_FONT_SIZE_LARGER,
+ /* absolute font sizes */
+ GTK_CSS_FONT_SIZE_XX_SMALL,
+ GTK_CSS_FONT_SIZE_X_SMALL,
+ GTK_CSS_FONT_SIZE_SMALL,
+ GTK_CSS_FONT_SIZE_MEDIUM,
+ GTK_CSS_FONT_SIZE_LARGE,
+ GTK_CSS_FONT_SIZE_X_LARGE,
+ GTK_CSS_FONT_SIZE_XX_LARGE
+} GtkCssFontSize;
+
/* for the order in arrays */
typedef enum /*< skip >*/ {
GTK_CSS_TOP,
GTK_CSS_RAD,
GTK_CSS_DEG,
GTK_CSS_GRAD,
- GTK_CSS_TURN
+ GTK_CSS_TURN,
+ /* CSS term: <time> */
+ GTK_CSS_S,
+ GTK_CSS_MS,
} GtkCssUnit;
-typedef struct _GtkCssNumber GtkCssNumber;
-typedef struct _GtkCssBackgroundSize GtkCssBackgroundSize;
-typedef struct _GtkCssBackgroundPosition GtkCssBackgroundPosition;
-typedef struct _GtkCssBorderCornerRadius GtkCssBorderCornerRadius;
-typedef struct _GtkCssBorderImageRepeat GtkCssBorderImageRepeat;
-
-struct _GtkCssNumber {
- gdouble value;
- GtkCssUnit unit;
-};
-
-struct _GtkCssBackgroundSize {
- GtkCssNumber width; /* 0 means auto here */
- GtkCssNumber height; /* 0 means auto here */
- guint cover :1;
- guint contain :1;
-};
-
-struct _GtkCssBackgroundPosition {
- GtkCssNumber x;
- GtkCssNumber y;
-};
-
-struct _GtkCssBorderCornerRadius {
- GtkCssNumber horizontal;
- GtkCssNumber vertical;
-};
-
-struct _GtkCssBorderImageRepeat {
- GtkCssBorderRepeatStyle vrepeat;
- GtkCssBorderRepeatStyle hrepeat;
-};
-
-#define GTK_TYPE_CSS_BACKGROUND_SIZE _gtk_css_background_size_get_type ()
-#define GTK_TYPE_CSS_BACKGROUND_POSITION _gtk_css_background_position_get_type ()
-#define GTK_TYPE_CSS_BORDER_CORNER_RADIUS _gtk_css_border_corner_radius_get_type ()
-#define GTK_TYPE_CSS_BORDER_IMAGE_REPEAT _gtk_css_border_image_repeat_get_type ()
-
-GType _gtk_css_background_size_get_type (void);
-GType _gtk_css_background_position_get_type (void);
-GType _gtk_css_border_corner_radius_get_type (void);
-GType _gtk_css_border_image_repeat_get_type (void);
-
-GtkCssChange _gtk_css_change_for_sibling (GtkCssChange match);
-GtkCssChange _gtk_css_change_for_child (GtkCssChange match);
-
-#define GTK_CSS_NUMBER_INIT(_value,_unit) { (_value), (_unit) }
-void _gtk_css_number_init (GtkCssNumber *number,
- double value,
- GtkCssUnit unit);
-gboolean _gtk_css_number_equal (const GtkCssNumber *one,
- const GtkCssNumber *two);
-double _gtk_css_number_get (const GtkCssNumber *number,
- double one_hundred_percent);
-gboolean _gtk_css_number_compute (GtkCssNumber *dest,
- const GtkCssNumber *src,
- GtkStyleContext *context);
-void _gtk_css_number_print (const GtkCssNumber *number,
- GString *string);
+GtkCssChange _gtk_css_change_for_sibling (GtkCssChange match);
+GtkCssChange _gtk_css_change_for_child (GtkCssChange match);
+GtkCssDependencies _gtk_css_dependencies_union (GtkCssDependencies first,
+ GtkCssDependencies second);
G_END_DECLS