summaryrefslogtreecommitdiff
path: root/Userland/Libraries
AgeCommit message (Collapse)Author
2023-04-30LibGUI: Don't fix ImageWidget's size when disabling auto_resize()thankyouverycool
2023-04-30LibGUI: Propagate construction errors in LinkLabelthankyouverycool
2023-04-30LibGUI+Userland: Port Labels to Stringthankyouverycool
2023-04-30LibGfx: Return StringView for SystemTheme Rolesthankyouverycool
This will simplify upcoming Label porting in ThemeEditor.
2023-04-30ICC: Add Profile::to_lab()Nico Weber
This can be used to convert a profile-dependent color to the L*a*b* color space. (I'd like to use this to implement the DeltaE (CIE 2000) algorithm, which is a metric for how similar two colors are perceived. (And I'd like to use that to evaluate color conversion roundtrip quality, once I've implemented full conversions.)
2023-04-30LibTest: Add a EXPECT_APPROXIMATE_WITH_ERROR macro with custom errorNico Weber
2023-04-29LibC: Add Ipv6 address checking macros to netinet/in.hNicolas Josef Zunker
To be able to port c-ares the IN6_IS_ADDR_V4COMPAT and various macros of the form IN6_IS_ADDR_MC_XX_LOCAL were added as well as the IN_CLASS{A,B} macros
2023-04-29LibWeb: Split `Length::relative_length_to_px()` by typeSam Atkins
Length units are either relative to the font, or to the viewport, but never both. So we can save some work by not gathering font metrics for a viewport unit, and not retrieving the viewport for a font unit. Currently this is only helpful when the `to_px(Layout::Node)` method is called, but since that is 208 places according to CLion, (plus 33 indirect uses via `Length::resolved()`) it still seems worthwhile. :^)
2023-04-29LibWeb: Add even more viewport-based Length unitsSam Atkins
`*vi` and `*vb` vary on which direction they check depending on whether the writing mode is horizontal or vertical, so they will need some modification once we support that.
2023-04-29LibWeb: Add *lots* of viewport-based Length unitsSam Atkins
`sfoo` `lfoo` and `dfoo` are, for our purposes, identical to `foo`, because we don't have dynamic GUI elements that cover the page content.
2023-04-29LibWeb: Add `ic` and `ric` Length unitsSam Atkins
Using the rough heuristic instead of the actual spec measurement. It's allowed by the spec, but not ideal: > In the cases where it is impossible or impractical to determine the ideographic advance measure, it must be assumed to be 1em.
2023-04-29LibWeb: Add `cap` and `rcap` Length unitsSam Atkins
As noted, the ascent of the font is not the best heuristic for this, but it is one that's listed as OK to use by the spec: > In the cases where it is impossible or impractical to determine the cap-height, the fontโ€™s ascent must be used.
2023-04-29LibWeb: Add `rex` and `rch` Length unitsSam Atkins
These are the same as `ex` and `ch`, but using the root element's metrics. We now have this information available, so let's use it. :^)
2023-04-29LibWeb: Merge StyleComputer root-element font-metric calculation methodsSam Atkins
This saves us from doing a lot of the same work multiple times, when we want both the root font size and its line height.
2023-04-29LibWeb: Wrap font metrics into a structSam Atkins
Rather than passing an increasingly-unwieldy number of font parameters individually to every function that resolves lengths, let's wrap them up. This is frustratingly close to being `Gfx::FontPixelMetrics`, but bitmap fonts cause issues: We choose the closest font to what the CSS requests, but that might have a wildly different size than what the page expects, so we have to fudge the numbers. No behaviour changes.
2023-04-29LibWeb: Categorize relative length unitsSam Atkins
2023-04-29LibWeb: Add some font-related properties to the resolved styleSam Atkins
2023-04-29LibWeb: Remove outdated commentSam Atkins
I missed this when removing calc() from Length. Oops!
2023-04-29LibWeb: Sort and group CSS Length units as they are in the specSam Atkins
They previously weren't sorted at all. Alphabetical would be nice, but then things like `em` and `rem` would be separated. So, let's copy the spec's order. That way it's easier to keep track of which units we have or haven't implemented. (Since there are so many...)
2023-04-29LibWeb: Exclude borders from width available for table columnsAliaksandr Kalenik
Fix table box width calculation to minus horizonal borders from space available for columns.
2023-04-29LibGfx: Add support to draw radial gradients with an rotation angleTorstennator
2023-04-29ICC: Add a missing " at the end of a commentNico Weber
2023-04-29ICC: Rename XYZ and XYZNumber fields to uppercaseNico Weber
Given that XYZ and xyz are distinct things, let's use the correct case for these member variables. No behavior change.
2023-04-29ICC: Add comment with a link to WellKnownProfiles.cppNico Weber
2023-04-29ICC: Add method to convert a color to the profile connection spaceNico Weber
Only implemented for matrix profiles so far. This API won't be fast enough to color manage images, but let's get something working before getting something fast.
2023-04-29ICC: Make number_of_components_in_color_space() externalNico Weber
...and make its return type unsigned.
2023-04-29ICC: Make struct XYZ store float instead of doubleNico Weber
Should be good enough.
2023-04-29LibWeb: Implement "distribute height to rows" step in TFCAliaksandr Kalenik
This commit implements following missing steps in table layout: - Calculate final table height - Resolve percentage height of cells and rows using final table height - Distribute avilable height to table rows
2023-04-29LibWeb: Fix division by zero in table columns width distributionAliaksandr Kalenik
If total max columns width (grid_max) is zero then available width should be divided equally between columns. Previously there was division by zero: `column.max_width / grid_max`.
2023-04-28LibWeb: Compute inset for relative positioned inline-blockEmil Militzer
2023-04-28LibWeb: Implement "get all used history steps" for traversablesAliaksandr Kalenik
https://html.spec.whatwg.org/multipage/browsing-the-web.html#getting-all-used-history-steps
2023-04-28LibWeb: Implement "get the target history entry" for navigablesAliaksandr Kalenik
2023-04-28LibWeb: Implement "get session history entries" for navigablesAliaksandr Kalenik
https://html.spec.whatwg.org/multipage/browsing-the-web.html#getting-session-history-entries
2023-04-28LibWeb: Change Navigable::traversable_navigable() to be constAliaksandr Kalenik
2023-04-28LibWeb: Add non-const session_history_entries getter in traversableAliaksandr Kalenik
2023-04-28LibWeb: Add NestedHistory in DocumentStateAliaksandr Kalenik
2023-04-28LibWeb: Resolve and paint SVG gradient fillsMacDue
This bit is mostly ad-hoc for now. This simply turns fill: url(#grad1) into document().get_element_by_id('grad1') then resolves the gradient. This seems to do the trick for most use cases, but this is not attempting to follow the spec yet to keep things simple.
2023-04-28LibWeb: Implement SVGLinearGradientElement (<linearGradient>)MacDue
This represents the SVG <linearGradient>. The actual gradient is converted to a Gfx::PaintStyle for use in SVG fills... There is a little guesswork in the implementation, but it seems to match Chrome/Firefox. Note: Still not hooked up to actual painting in this commit.
2023-04-28LibGfx: Implement PaintStyle for SVG linear gradientsMacDue
2023-04-28LibWeb: Implement SVGGradientElementMacDue
This is the base class for all SVG gradient types. This supports: - The `gradientUnits` attribute - The `gradientTransform` attribute - And following `xlink:hrefs` for inheriting <stops>/attributes
2023-04-28LibWeb: Allow specifying a URL for an SVG fillMacDue
This does not do anything yet, but will allow for gradients later!
2023-04-28LibWeb: Add URLStyleValue to represent general url() valuesMacDue
This is primarily being added to support `fill: url(#gradient)` for SVGs.
2023-04-28LibWeb: Implement SVGStopElement (<stop>)MacDue
This is used to specify the color/position of color stops for SVG gradients.
2023-04-28LibWeb: Add stop-color as a CSS propertyMacDue
(This is to set the color of a stop for an SVG gradient)
2023-04-28LibWeb: Allow doing .to_color() on a StyleValue without a layout nodeMacDue
This will be needed to access the color of a stop from a SVG gradient <stop> element (which does not participate in layout, so does not have a layout node).
2023-04-28LibWeb: Add SVG tag names for <linearGradient>sMacDue
2023-04-28LibWeb: Implement SVGAnimatedNumberMacDue
See https://www.w3.org/TR/2013/WD-SVG2-20130409/types.html#InterfaceSVGAnimatedNumber
2023-04-28AK+LibTimeZone: Add debug only formatter for OptionalMacDue
I found this handy for debugging, and so might others. This now also adds a formatter for TimeZone::TimeZone. This is needed for FormatIfSupported<Optional<TimeZone::TimeZone>> to compile. As FormatIfSupported sees a formatter for Optional exists, but not that there's not one for TimeZone::TimeZone.
2023-04-28LibWeb: Consider cell computed height in total row min height of tableAliaksandr Kalenik
Previously, the minimum height of a table row was calculated based on the automatic height of the cells inner layout. This change makes computed height of a cell boxes also be considered if it has definite value.
2023-04-28LibWeb: Consider row computed height in total row min height of tableAliaksandr Kalenik
Fixes the issue that currently we do not consider table rows height while calculating min row height even if it is definite value.