Serenity Operating System
at master 57 lines 1.4 kB view raw
1/* 2 * Copyright (c) 2022, Martin Falisse <mfalisse@outlook.com> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#include "GridTrackPlacement.h" 8#include <AK/StringBuilder.h> 9 10namespace Web::CSS { 11 12GridTrackPlacement::GridTrackPlacement(int span_count_or_position, bool has_span) 13 : m_type(has_span ? Type::Span : Type::Position) 14 , m_span_count_or_position(span_count_or_position) 15{ 16} 17 18GridTrackPlacement::GridTrackPlacement(String line_name, int span_count_or_position, bool has_span) 19 : m_type(has_span ? Type::Span : Type::Position) 20 , m_span_count_or_position(span_count_or_position) 21 , m_line_name(line_name) 22{ 23} 24 25GridTrackPlacement::GridTrackPlacement(String line_name, bool has_span) 26 : m_type(has_span ? Type::Span : Type::Position) 27 , m_line_name(line_name) 28{ 29} 30 31GridTrackPlacement::GridTrackPlacement() 32 : m_type(Type::Auto) 33{ 34} 35 36ErrorOr<String> GridTrackPlacement::to_string() const 37{ 38 StringBuilder builder; 39 if (is_auto()) { 40 builder.append("auto"sv); 41 return builder.to_string(); 42 } 43 if (is_span()) { 44 builder.append("span"sv); 45 builder.append(" "sv); 46 } 47 if (m_span_count_or_position != 0) { 48 builder.append(TRY(String::number(m_span_count_or_position))); 49 builder.append(" "sv); 50 } 51 if (has_line_name()) { 52 builder.append(m_line_name); 53 } 54 return builder.to_string(); 55} 56 57}