1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 09:14:58 +00:00

LibWeb+Browser+WebContent: Convert BoxModelMetrics to new pixel units

This commit is contained in:
Sam Atkins 2022-11-08 11:48:31 +00:00 committed by Linus Groh
parent 5d8e3f5122
commit 02cd853eee
4 changed files with 23 additions and 22 deletions

View file

@ -26,11 +26,11 @@ void ElementSizePreviewWidget::paint_event(GUI::PaintEvent& event)
int inner_content_width = max(100, font().width(content_size_text) + 2 * content_width_padding);
int inner_content_height = max(15, font().glyph_height() + 2 * content_height_padding);
auto format_size_text = [&](float size) {
auto format_size_text = [&](Web::CSSPixels size) {
return DeprecatedString::formatted("{:.4f}", size);
};
auto compute_text_string_width = [&](float size) {
auto compute_text_string_width = [&](Web::CSSPixels size) {
return font().width(format_size_text(size)) + 2 * text_width_padding;
};

View file

@ -7,14 +7,15 @@
#pragma once
#include <LibGfx/Size.h>
#include <LibWeb/PixelUnits.h>
namespace Web::Layout {
struct PixelBox {
float top { 0 };
float right { 0 };
float bottom { 0 };
float left { 0 };
CSSPixels top { 0 };
CSSPixels right { 0 };
CSSPixels bottom { 0 };
CSSPixels left { 0 };
};
struct BoxModelMetrics {

View file

@ -44,13 +44,13 @@ void InlinePaintable::paint(PaintContext& context, Painting::PaintPhase phase) c
CSSPixelRect absolute_fragment_rect { containing_block_position_in_absolute_coordinates.translated(fragment.offset()), fragment.size() };
if (is_first_fragment) {
float extra_start_width = box_model().padding.left;
auto extra_start_width = box_model().padding.left;
absolute_fragment_rect.translate_by(-extra_start_width, 0);
absolute_fragment_rect.set_width(absolute_fragment_rect.width() + extra_start_width);
}
if (is_last_fragment) {
float extra_end_width = box_model().padding.right;
auto extra_end_width = box_model().padding.right;
absolute_fragment_rect.set_width(absolute_fragment_rect.width() + extra_end_width);
}
@ -95,13 +95,13 @@ void InlinePaintable::paint(PaintContext& context, Painting::PaintPhase phase) c
CSSPixelRect absolute_fragment_rect { containing_block_position_in_absolute_coordinates.translated(fragment.offset()), fragment.size() };
if (is_first_fragment) {
float extra_start_width = box_model().padding.left;
auto extra_start_width = box_model().padding.left;
absolute_fragment_rect.translate_by(-extra_start_width, 0);
absolute_fragment_rect.set_width(absolute_fragment_rect.width() + extra_start_width);
}
if (is_last_fragment) {
float extra_end_width = box_model().padding.right;
auto extra_end_width = box_model().padding.right;
absolute_fragment_rect.set_width(absolute_fragment_rect.width() + extra_end_width);
}

View file

@ -342,18 +342,18 @@ Messages::WebContentServer::InspectDomNodeResponse ConnectionFromClient::inspect
auto box_model = box->box_model();
StringBuilder builder;
auto serializer = MUST(JsonObjectSerializer<>::try_create(builder));
MUST(serializer.add("padding_top"sv, box_model.padding.top));
MUST(serializer.add("padding_right"sv, box_model.padding.right));
MUST(serializer.add("padding_bottom"sv, box_model.padding.bottom));
MUST(serializer.add("padding_left"sv, box_model.padding.left));
MUST(serializer.add("margin_top"sv, box_model.margin.top));
MUST(serializer.add("margin_right"sv, box_model.margin.right));
MUST(serializer.add("margin_bottom"sv, box_model.margin.bottom));
MUST(serializer.add("margin_left"sv, box_model.margin.left));
MUST(serializer.add("border_top"sv, box_model.border.top));
MUST(serializer.add("border_right"sv, box_model.border.right));
MUST(serializer.add("border_bottom"sv, box_model.border.bottom));
MUST(serializer.add("border_left"sv, box_model.border.left));
MUST(serializer.add("padding_top"sv, box_model.padding.top.value()));
MUST(serializer.add("padding_right"sv, box_model.padding.right.value()));
MUST(serializer.add("padding_bottom"sv, box_model.padding.bottom.value()));
MUST(serializer.add("padding_left"sv, box_model.padding.left.value()));
MUST(serializer.add("margin_top"sv, box_model.margin.top.value()));
MUST(serializer.add("margin_right"sv, box_model.margin.right.value()));
MUST(serializer.add("margin_bottom"sv, box_model.margin.bottom.value()));
MUST(serializer.add("margin_left"sv, box_model.margin.left.value()));
MUST(serializer.add("border_top"sv, box_model.border.top.value()));
MUST(serializer.add("border_right"sv, box_model.border.right.value()));
MUST(serializer.add("border_bottom"sv, box_model.border.bottom.value()));
MUST(serializer.add("border_left"sv, box_model.border.left.value()));
if (auto* paint_box = box->paint_box()) {
MUST(serializer.add("content_width"sv, paint_box->content_width().value()));
MUST(serializer.add("content_height"sv, paint_box->content_height().value()));