From e04ab263f964225c8b8af43d7be1dcb90f904bcc Mon Sep 17 00:00:00 2001 From: Alice Mikhaylenko Date: Tue, 23 Apr 2024 17:13:55 +0400 Subject: [PATCH] cssstaticstyle: Split property lists into a separate header We'll need to use them in GtkCssAnimatedStyle too. --- gtk/gtkcssstaticstyle.c | 125 +------------------------------ gtk/gtkcssvaluesprivate.h | 151 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 152 insertions(+), 124 deletions(-) create mode 100644 gtk/gtkcssvaluesprivate.h diff --git a/gtk/gtkcssstaticstyle.c b/gtk/gtkcssstaticstyle.c index d7e25c1811..9dfe7b9373 100644 --- a/gtk/gtkcssstaticstyle.c +++ b/gtk/gtkcssstaticstyle.c @@ -31,6 +31,7 @@ #include "gtkcssstringvalueprivate.h" #include "gtkcssstylepropertyprivate.h" #include "gtkcsstransitionprivate.h" +#include "gtkcssvaluesprivate.h" #include "gtkprivate.h" #include "gtksettings.h" #include "gtkstyleanimationprivate.h" @@ -45,130 +46,6 @@ static void gtk_css_static_style_compute_value (GtkCssStaticStyle *style, GtkCssValue *specified, GtkCssSection *section); -static const int core_props[] = { - GTK_CSS_PROPERTY_COLOR, - GTK_CSS_PROPERTY_DPI, - GTK_CSS_PROPERTY_FONT_SIZE, - GTK_CSS_PROPERTY_ICON_PALETTE -}; - -static const int background_props[] = { - GTK_CSS_PROPERTY_BACKGROUND_COLOR, - GTK_CSS_PROPERTY_BOX_SHADOW, - GTK_CSS_PROPERTY_BACKGROUND_CLIP, - GTK_CSS_PROPERTY_BACKGROUND_ORIGIN, - GTK_CSS_PROPERTY_BACKGROUND_SIZE, - GTK_CSS_PROPERTY_BACKGROUND_POSITION, - GTK_CSS_PROPERTY_BACKGROUND_REPEAT, - GTK_CSS_PROPERTY_BACKGROUND_IMAGE, - GTK_CSS_PROPERTY_BACKGROUND_BLEND_MODE -}; - -static const int border_props[] = { - 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_BORDER_TOP_COLOR, - GTK_CSS_PROPERTY_BORDER_RIGHT_COLOR, - GTK_CSS_PROPERTY_BORDER_BOTTOM_COLOR, - GTK_CSS_PROPERTY_BORDER_LEFT_COLOR, - GTK_CSS_PROPERTY_BORDER_IMAGE_SOURCE, - GTK_CSS_PROPERTY_BORDER_IMAGE_REPEAT, - GTK_CSS_PROPERTY_BORDER_IMAGE_SLICE, - GTK_CSS_PROPERTY_BORDER_IMAGE_WIDTH -}; - -static const int icon_props[] = { - GTK_CSS_PROPERTY_ICON_SIZE, - GTK_CSS_PROPERTY_ICON_SHADOW, - GTK_CSS_PROPERTY_ICON_STYLE, -}; - -static const int outline_props[] = { - GTK_CSS_PROPERTY_OUTLINE_STYLE, - GTK_CSS_PROPERTY_OUTLINE_WIDTH, - GTK_CSS_PROPERTY_OUTLINE_OFFSET, - GTK_CSS_PROPERTY_OUTLINE_COLOR, -}; - -static const int font_props[] = { - GTK_CSS_PROPERTY_FONT_FAMILY, - GTK_CSS_PROPERTY_FONT_STYLE, - GTK_CSS_PROPERTY_FONT_WEIGHT, - GTK_CSS_PROPERTY_FONT_STRETCH, - GTK_CSS_PROPERTY_LETTER_SPACING, - GTK_CSS_PROPERTY_TEXT_SHADOW, - GTK_CSS_PROPERTY_CARET_COLOR, - GTK_CSS_PROPERTY_SECONDARY_CARET_COLOR, - GTK_CSS_PROPERTY_FONT_FEATURE_SETTINGS, - GTK_CSS_PROPERTY_FONT_VARIATION_SETTINGS, - GTK_CSS_PROPERTY_LINE_HEIGHT, -}; -static const int font_variant_props[] = { - GTK_CSS_PROPERTY_TEXT_DECORATION_LINE, - GTK_CSS_PROPERTY_TEXT_DECORATION_COLOR, - GTK_CSS_PROPERTY_TEXT_DECORATION_STYLE, - GTK_CSS_PROPERTY_TEXT_TRANSFORM, - GTK_CSS_PROPERTY_FONT_KERNING, - GTK_CSS_PROPERTY_FONT_VARIANT_LIGATURES, - GTK_CSS_PROPERTY_FONT_VARIANT_POSITION, - GTK_CSS_PROPERTY_FONT_VARIANT_CAPS, - GTK_CSS_PROPERTY_FONT_VARIANT_NUMERIC, - GTK_CSS_PROPERTY_FONT_VARIANT_ALTERNATES, - GTK_CSS_PROPERTY_FONT_VARIANT_EAST_ASIAN, -}; - -static const int animation_props[] = { - 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, -}; - -static const int transition_props[] = { - GTK_CSS_PROPERTY_TRANSITION_PROPERTY, - GTK_CSS_PROPERTY_TRANSITION_DURATION, - GTK_CSS_PROPERTY_TRANSITION_TIMING_FUNCTION, - GTK_CSS_PROPERTY_TRANSITION_DELAY, -}; - -static const int size_props[] = { - 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_SPACING, - GTK_CSS_PROPERTY_MIN_WIDTH, - GTK_CSS_PROPERTY_MIN_HEIGHT, -}; - -static const int other_props[] = { - GTK_CSS_PROPERTY_ICON_SOURCE, - GTK_CSS_PROPERTY_ICON_TRANSFORM, - GTK_CSS_PROPERTY_ICON_FILTER, - GTK_CSS_PROPERTY_TRANSFORM, - GTK_CSS_PROPERTY_TRANSFORM_ORIGIN, - GTK_CSS_PROPERTY_OPACITY, - GTK_CSS_PROPERTY_FILTER, -}; - #define GET_VALUES(v) (GtkCssValue **)((guint8*)(v) + sizeof (GtkCssValues)) #define DEFINE_VALUES(ENUM, TYPE, NAME) \ diff --git a/gtk/gtkcssvaluesprivate.h b/gtk/gtkcssvaluesprivate.h new file mode 100644 index 0000000000..e212ee0b84 --- /dev/null +++ b/gtk/gtkcssvaluesprivate.h @@ -0,0 +1,151 @@ +/* + * Copyright © 2012 Red Hat Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * 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, see . + * + * Authors: Benjamin Otte + */ + +#pragma once + +#include + +G_BEGIN_DECLS + +static const int core_props[] = { + GTK_CSS_PROPERTY_COLOR, + GTK_CSS_PROPERTY_DPI, + GTK_CSS_PROPERTY_FONT_SIZE, + GTK_CSS_PROPERTY_ICON_PALETTE +}; + +static const int background_props[] = { + GTK_CSS_PROPERTY_BACKGROUND_COLOR, + GTK_CSS_PROPERTY_BOX_SHADOW, + GTK_CSS_PROPERTY_BACKGROUND_CLIP, + GTK_CSS_PROPERTY_BACKGROUND_ORIGIN, + GTK_CSS_PROPERTY_BACKGROUND_SIZE, + GTK_CSS_PROPERTY_BACKGROUND_POSITION, + GTK_CSS_PROPERTY_BACKGROUND_REPEAT, + GTK_CSS_PROPERTY_BACKGROUND_IMAGE, + GTK_CSS_PROPERTY_BACKGROUND_BLEND_MODE +}; + +static const int border_props[] = { + 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_BORDER_TOP_COLOR, + GTK_CSS_PROPERTY_BORDER_RIGHT_COLOR, + GTK_CSS_PROPERTY_BORDER_BOTTOM_COLOR, + GTK_CSS_PROPERTY_BORDER_LEFT_COLOR, + GTK_CSS_PROPERTY_BORDER_IMAGE_SOURCE, + GTK_CSS_PROPERTY_BORDER_IMAGE_REPEAT, + GTK_CSS_PROPERTY_BORDER_IMAGE_SLICE, + GTK_CSS_PROPERTY_BORDER_IMAGE_WIDTH +}; + +static const int icon_props[] = { + GTK_CSS_PROPERTY_ICON_SIZE, + GTK_CSS_PROPERTY_ICON_SHADOW, + GTK_CSS_PROPERTY_ICON_STYLE, +}; + +static const int outline_props[] = { + GTK_CSS_PROPERTY_OUTLINE_STYLE, + GTK_CSS_PROPERTY_OUTLINE_WIDTH, + GTK_CSS_PROPERTY_OUTLINE_OFFSET, + GTK_CSS_PROPERTY_OUTLINE_COLOR, +}; + +static const int font_props[] = { + GTK_CSS_PROPERTY_FONT_FAMILY, + GTK_CSS_PROPERTY_FONT_STYLE, + GTK_CSS_PROPERTY_FONT_WEIGHT, + GTK_CSS_PROPERTY_FONT_STRETCH, + GTK_CSS_PROPERTY_LETTER_SPACING, + GTK_CSS_PROPERTY_TEXT_SHADOW, + GTK_CSS_PROPERTY_CARET_COLOR, + GTK_CSS_PROPERTY_SECONDARY_CARET_COLOR, + GTK_CSS_PROPERTY_FONT_FEATURE_SETTINGS, + GTK_CSS_PROPERTY_FONT_VARIATION_SETTINGS, + GTK_CSS_PROPERTY_LINE_HEIGHT, +}; + +static const int font_variant_props[] = { + GTK_CSS_PROPERTY_TEXT_DECORATION_LINE, + GTK_CSS_PROPERTY_TEXT_DECORATION_COLOR, + GTK_CSS_PROPERTY_TEXT_DECORATION_STYLE, + GTK_CSS_PROPERTY_TEXT_TRANSFORM, + GTK_CSS_PROPERTY_FONT_KERNING, + GTK_CSS_PROPERTY_FONT_VARIANT_LIGATURES, + GTK_CSS_PROPERTY_FONT_VARIANT_POSITION, + GTK_CSS_PROPERTY_FONT_VARIANT_CAPS, + GTK_CSS_PROPERTY_FONT_VARIANT_NUMERIC, + GTK_CSS_PROPERTY_FONT_VARIANT_ALTERNATES, + GTK_CSS_PROPERTY_FONT_VARIANT_EAST_ASIAN, +}; + +static const int animation_props[] = { + 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, +}; + +static const int transition_props[] = { + GTK_CSS_PROPERTY_TRANSITION_PROPERTY, + GTK_CSS_PROPERTY_TRANSITION_DURATION, + GTK_CSS_PROPERTY_TRANSITION_TIMING_FUNCTION, + GTK_CSS_PROPERTY_TRANSITION_DELAY, +}; + +static const int size_props[] = { + 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_SPACING, + GTK_CSS_PROPERTY_MIN_WIDTH, + GTK_CSS_PROPERTY_MIN_HEIGHT, +}; + +static const int other_props[] = { + GTK_CSS_PROPERTY_ICON_SOURCE, + GTK_CSS_PROPERTY_ICON_TRANSFORM, + GTK_CSS_PROPERTY_ICON_FILTER, + GTK_CSS_PROPERTY_TRANSFORM, + GTK_CSS_PROPERTY_TRANSFORM_ORIGIN, + GTK_CSS_PROPERTY_OPACITY, + GTK_CSS_PROPERTY_FILTER, +}; + +G_END_DECLS