]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkcsstypesprivate.h
level-bar: introduce GtkLevelBar
[~andy/gtk] / gtk / gtkcsstypesprivate.h
index 7f239312df55414352f847b42e45451ba1f6c47e..b0db18d0b9bd4e384355a4c8e175c3692b642267 100644 (file)
 
 G_BEGIN_DECLS
 
-typedef enum {
-  GTK_CSS_INHERIT,
-  GTK_CSS_INITIAL
-} GtkCssSpecialValue;
-
-/* 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_CHANGE_CLASS                    = (1 <<  0),
+  GTK_CSS_CHANGE_NAME                     = (1 <<  1),
+  GTK_CSS_CHANGE_ID                       = GTK_CSS_CHANGE_NAME,
+  GTK_CSS_CHANGE_REGION                   = GTK_CSS_CHANGE_NAME,
+  GTK_CSS_CHANGE_POSITION                 = (1 <<  2),
+  GTK_CSS_CHANGE_STATE                    = (1 <<  3),
+  GTK_CSS_CHANGE_SIBLING_CLASS            = (1 <<  4),
+  GTK_CSS_CHANGE_SIBLING_NAME             = (1 <<  5),
+  GTK_CSS_CHANGE_SIBLING_POSITION         = (1 <<  6),
+  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_POSITION          = (1 << 10),
+  GTK_CSS_CHANGE_PARENT_STATE             = (1 << 11),
+  GTK_CSS_CHANGE_PARENT_SIBLING_CLASS     = (1 << 12),
+  GTK_CSS_CHANGE_PARENT_SIBLING_NAME      = (1 << 13),
+  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)
+} GtkCssChange;
+
+#define GTK_CSS_CHANGE_ANY ((1 << 18) - 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)
+#define GTK_CSS_CHANGE_ANY_PARENT (GTK_CSS_CHANGE_PARENT_CLASS | GTK_CSS_CHANGE_PARENT_SIBLING_CLASS | \
+                                   GTK_CSS_CHANGE_PARENT_NAME | GTK_CSS_CHANGE_PARENT_SIBLING_NAME | \
+                                   GTK_CSS_CHANGE_PARENT_POSITION | GTK_CSS_CHANGE_PARENT_SIBLING_POSITION | \
+                                   GTK_CSS_CHANGE_PARENT_STATE | GTK_CSS_CHANGE_PARENT_SIBLING_STATE)
+
+enum { /*< skip >*/
+  GTK_CSS_PROPERTY_COLOR,
+  GTK_CSS_PROPERTY_FONT_SIZE,
+  GTK_CSS_PROPERTY_BACKGROUND_COLOR,
+  GTK_CSS_PROPERTY_FONT_FAMILY,
+  GTK_CSS_PROPERTY_FONT_STYLE,
+  GTK_CSS_PROPERTY_FONT_VARIANT,
+  GTK_CSS_PROPERTY_FONT_WEIGHT,
+  GTK_CSS_PROPERTY_TEXT_SHADOW,
+  GTK_CSS_PROPERTY_ICON_SHADOW,
+  GTK_CSS_PROPERTY_BOX_SHADOW,
+  GTK_CSS_PROPERTY_MARGIN_TOP,
+  GTK_CSS_PROPERTY_MARGIN_LEFT,
+  GTK_CSS_PROPERTY_MARGIN_BOTTOM,
+  GTK_CSS_PROPERTY_MARGIN_RIGHT,
+  GTK_CSS_PROPERTY_PADDING_TOP,
+  GTK_CSS_PROPERTY_PADDING_LEFT,
+  GTK_CSS_PROPERTY_PADDING_BOTTOM,
+  GTK_CSS_PROPERTY_PADDING_RIGHT,
+  GTK_CSS_PROPERTY_BORDER_TOP_STYLE,
+  GTK_CSS_PROPERTY_BORDER_TOP_WIDTH,
+  GTK_CSS_PROPERTY_BORDER_LEFT_STYLE,
+  GTK_CSS_PROPERTY_BORDER_LEFT_WIDTH,
+  GTK_CSS_PROPERTY_BORDER_BOTTOM_STYLE,
+  GTK_CSS_PROPERTY_BORDER_BOTTOM_WIDTH,
+  GTK_CSS_PROPERTY_BORDER_RIGHT_STYLE,
+  GTK_CSS_PROPERTY_BORDER_RIGHT_WIDTH,
+  GTK_CSS_PROPERTY_BORDER_TOP_LEFT_RADIUS,
+  GTK_CSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS,
+  GTK_CSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS,
+  GTK_CSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS,
+  GTK_CSS_PROPERTY_OUTLINE_STYLE,
+  GTK_CSS_PROPERTY_OUTLINE_WIDTH,
+  GTK_CSS_PROPERTY_OUTLINE_OFFSET,
+  GTK_CSS_PROPERTY_BACKGROUND_CLIP,
+  GTK_CSS_PROPERTY_BACKGROUND_ORIGIN,
+  GTK_CSS_PROPERTY_BACKGROUND_SIZE,
+  GTK_CSS_PROPERTY_BACKGROUND_POSITION,
+  GTK_CSS_PROPERTY_BORDER_TOP_COLOR,
+  GTK_CSS_PROPERTY_BORDER_RIGHT_COLOR,
+  GTK_CSS_PROPERTY_BORDER_BOTTOM_COLOR,
+  GTK_CSS_PROPERTY_BORDER_LEFT_COLOR,
+  GTK_CSS_PROPERTY_OUTLINE_COLOR,
+  GTK_CSS_PROPERTY_BACKGROUND_REPEAT,
+  GTK_CSS_PROPERTY_BACKGROUND_IMAGE,
+  GTK_CSS_PROPERTY_BORDER_IMAGE_SOURCE,
+  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_ENGINE,
+  GTK_CSS_PROPERTY_GTK_KEY_BINDINGS,
+  /* add more */
+  GTK_CSS_PROPERTY_N_PROPERTIES
+};
 
-typedef enum {
+typedef enum /*< skip >*/ {
   GTK_CSS_AREA_BORDER_BOX,
   GTK_CSS_AREA_PADDING_BOX,
   GTK_CSS_AREA_CONTENT_BOX
@@ -94,67 +154,14 @@ typedef enum /*< skip >*/ {
   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 ()
-#define GTK_TYPE_CSS_NUMBER _gtk_css_number_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);
-GType           _gtk_css_number_get_type                        (void);
-
-#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);
 
 
 G_END_DECLS