X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkcsstypesprivate.h;h=b2881feaea72a14b67f7c9eb0403b92cd4b87cdf;hb=1074aa0c49f647ed4b2a969618051c59da5aad01;hp=244f98db7608ff11c86d84d389972d8e392b3d2a;hpb=4c8e9ee6b6f4049e34f16e889be7992862e4f029;p=~andy%2Fgtk diff --git a/gtk/gtkcsstypesprivate.h b/gtk/gtkcsstypesprivate.h index 244f98db7..b2881feae 100644 --- a/gtk/gtkcsstypesprivate.h +++ b/gtk/gtkcsstypesprivate.h @@ -12,56 +12,172 @@ * 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 . */ #ifndef __GTK_CSS_TYPES_PRIVATE_H__ #define __GTK_CSS_TYPES_PRIVATE_H__ #include +#include G_BEGIN_DECLS -typedef enum { - GTK_CSS_INHERIT, - GTK_CSS_INITIAL -} GtkCssSpecialValue; +/* 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) -/* 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 { +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, @@ -77,24 +193,35 @@ typedef enum /*< skip >*/ { GTK_CSS_BOTTOM_LEFT } GtkCssCorner; -typedef struct _GtkCssBorderCornerRadius GtkCssBorderCornerRadius; -typedef struct _GtkCssBorderImageRepeat GtkCssBorderImageRepeat; - -struct _GtkCssBorderCornerRadius { - double horizontal; - double vertical; -}; - -struct _GtkCssBorderImageRepeat { - GtkCssBorderRepeatStyle vrepeat; - GtkCssBorderRepeatStyle hrepeat; -}; - -#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 () +typedef enum /*< skip >*/ { + /* CSS term: */ + GTK_CSS_NUMBER, + /* CSS term: */ + GTK_CSS_PERCENT, + /* CSS term: */ + GTK_CSS_PX, + GTK_CSS_PT, + GTK_CSS_EM, + GTK_CSS_EX, + GTK_CSS_PC, + GTK_CSS_IN, + GTK_CSS_CM, + GTK_CSS_MM, + /* CSS term: */ + GTK_CSS_RAD, + GTK_CSS_DEG, + GTK_CSS_GRAD, + GTK_CSS_TURN, + /* CSS term: