mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 10:32:43 +00:00 
			
		
		
		
	 0c14103025
			
		
	
	
		0c14103025
		
	
	
	
	
		
			
			This solves an awkward dependency cycle, where CalculatedStyleValue needs the definition of Percentage, but including that would also pull in PercentageOr, which in turn needs CalculatedStyleValue. Many places that previously included StyleValue.h no longer need to. :^)
		
			
				
	
	
		
			53 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2022-2023, MacDue <macdue@dueutil.tech>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <LibWeb/CSS/PercentageOr.h>
 | |
| #include <LibWeb/PixelUnits.h>
 | |
| 
 | |
| namespace Web::CSS {
 | |
| 
 | |
| // FIXME: Named PositionValue to avoid conflicts with enums, but this represents a <position>
 | |
| struct PositionValue {
 | |
|     enum class HorizontalPreset {
 | |
|         Left,
 | |
|         Center,
 | |
|         Right
 | |
|     };
 | |
| 
 | |
|     enum class VerticalPreset {
 | |
|         Top,
 | |
|         Center,
 | |
|         Bottom
 | |
|     };
 | |
| 
 | |
|     enum class HorizontalEdge {
 | |
|         Left,
 | |
|         Right
 | |
|     };
 | |
| 
 | |
|     enum class VerticalEdge {
 | |
|         Top,
 | |
|         Bottom
 | |
|     };
 | |
| 
 | |
|     static PositionValue center()
 | |
|     {
 | |
|         return PositionValue { HorizontalPreset::Center, VerticalPreset::Center };
 | |
|     }
 | |
| 
 | |
|     Variant<HorizontalPreset, LengthPercentage> horizontal_position { HorizontalPreset::Left };
 | |
|     Variant<VerticalPreset, LengthPercentage> vertical_position { VerticalPreset::Top };
 | |
|     HorizontalEdge x_relative_to { HorizontalEdge::Left };
 | |
|     VerticalEdge y_relative_to { VerticalEdge::Top };
 | |
| 
 | |
|     CSSPixelPoint resolved(Layout::Node const& node, CSSPixelRect const& rect) const;
 | |
|     ErrorOr<void> serialize(StringBuilder&) const;
 | |
|     bool operator==(PositionValue const&) const = default;
 | |
| };
 | |
| 
 | |
| }
 |