X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkcsstypesprivate.h;h=b2881feaea72a14b67f7c9eb0403b92cd4b87cdf;hb=3b2182e711ace4a2d6843848208224cd7525d530;hp=7f239312df55414352f847b42e45451ba1f6c47e;hpb=ca07559672ffb7f3ee8d490d62083e191b7d695a;p=~andy%2Fgtk diff --git a/gtk/gtkcsstypesprivate.h b/gtk/gtkcsstypesprivate.h index 7f239312d..b2881feae 100644 --- a/gtk/gtkcsstypesprivate.h +++ b/gtk/gtkcsstypesprivate.h @@ -23,44 +23,161 @@ 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 { +/* 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_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_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_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), + 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 << 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) +#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) + +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_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_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_GTK_KEY_BINDINGS, + /* add more */ + GTK_CSS_PROPERTY_N_PROPERTIES +}; + +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, @@ -94,67 +211,16 @@ typedef enum /*< skip >*/ { GTK_CSS_RAD, GTK_CSS_DEG, GTK_CSS_GRAD, - GTK_CSS_TURN + GTK_CSS_TURN, + /* CSS term: