summaryrefslogtreecommitdiff
path: root/Userland/Libraries
AgeCommit message (Collapse)Author
2022-09-06LibWeb: Make CSSRuleList GC-allocatedAndreas Kling
2022-09-06LibWeb: Make StyleSheetList GC-allocatedAndreas Kling
2022-09-06LibWeb: Make StyleSheet and CSSStyleSheet GC-allocatedAndreas Kling
2022-09-06LibWeb: Add an "internal" JS realm & window objectAndreas Kling
These will be used to host JS objects that don't belong in one of the web-facing global objects.
2022-09-06LibWeb: Add Bindings::LegacyPlatformObject base classAndreas Kling
This will be inherited by "legacy platform objects", i.e objects that need to hijack indexed and/or named property access as described in the IDL spec: https://webidl.spec.whatwg.org/#dfn-legacy-platform-object Instead of overriding JS::Object virtuals, subclasses only need to implement a very simple interface for property queries. Note that this code is taken verbatim from code generator output. I didn't write any of this now, so it's effectively "moved" code.
2022-09-06LibWeb: Add PlatformObject classAndreas Kling
This represents the "platform object" concept from the IDL spec, which refers to an object that implements an IDL interface.
2022-09-05LibLocale: Move locale source files to the LibLocale libraryTimothy Flynn
Everything is now setup to create the LibLocale library and link it where needed.
2022-09-05LibUnicode: Generate a separate Locale enumeration for special casingTimothy Flynn
The UCD only cares about a few locales for special casing rules (az, lt, and tr). Unfortunately, LibUnicode cannot use LibLocale once the libraries are separate because LibLocale will need to use LibUnicode for many more things; thus there would be a circular dependency. Instead, just generate the small enum needed for this one use case.
2022-09-05LibLocale: Move locale source files to the LibLocale folderTimothy Flynn
These are still included in LibUnicode, but this updates their location and the include paths of other files which include them.
2022-09-05Userland: Move files destined for LibLocale to the Locale namespaceTimothy Flynn
2022-09-05LibUnicode+LibJS: Move Unicode::get_available_currencies() to Locale.hTimothy Flynn
This is generated by GenerateLocaleData, which will soon be in the Locale namespace. Move it out of CurrencyCode.h, as that will continue to live in the Unicode namespace.
2022-09-05LibLocale+LibUnicode: Move generated CLDR data files to LibLocale folderTimothy Flynn
They are still included into LibUnicode, but this moves their generated location to be under LibLocale.
2022-09-05LibUnicode+Userland: Migrate generated CLDR data to LibLocaleDataTimothy Flynn
Currently, LibUnicodeData contains the generated UCD and CLDR data. Move the UCD data to the main LibUnicode library, and rename LibUnicodeData to LibLocaleData. This is another prepatory change to migrate to LibLocale.
2022-09-05LibUnicode: Move CLDR data generators to a LibLocale subfolderTimothy Flynn
To prepare for placing all CLDR generated data in a new library, LibLocale, this moves the code generators for the CLDR data to the LibLocale subfolder.
2022-09-05LibUnicode: Fully qualify use of AK::Variant in Locale.hTimothy Flynn
The generated locale data contains an enum also named Variant, as variants are part of locale strings. This hasn't been an issue, but as includes are reordered, the order in which the enum and AK::Variant are included may cause an ambiguity error.
2022-09-05LibJS: Remove unused include from JS::Temporal::CalendarTimothy Flynn
2022-09-05LibC: Move `dlfcn_integration.h` to the `bits` directoryTim Schumacher
2022-09-05LibC: Reduce reliance on the dlfcn internals for `regex` functionsTim Schumacher
2022-09-05LibC: Remove the `LibDl` interface targetTim Schumacher
2022-09-05Everywhere: Fully remove the separate LibDl directoryTim Schumacher
2022-09-05LibDl: Move the `dlfcn` implementation to LibCTim Schumacher
2022-09-05Everywhere: Refer to `dlfcn*.h` by its non-prefixed nameTim Schumacher
2022-09-05LibGUI: Implement basic rubber band selections in ColumnsViewnetworkException
This patch adds the ability to select multiple entries in a column using a rubber band selection. Currently the implementation is lacking support for expanding a selection using the ctrl modifier.
2022-09-05LibGUI: Add granular ColumnView helpers for column and index at eventsnetworkException
This patch extracts logic for getting colum at an event position and for getting an index in a column at an event position from index_at_event_position into separate functions.
2022-09-05LibVT: Handle non file urls in on hover tooltipsnetworkException
Previously we would simply compute the basename of the hovered url's path and display it as the resource that will be opened. This patch adds a fallback for non file urls to simply show the full url, making http urls show up properly.
2022-09-04LibGUI: Add Widgets before the ResizeCorner by default in StatusbarFrHun
Before this, any Widgets added through e.g. GML appeared after the ResizeCorner, which didn't make sense. (see FileManager)
2022-09-03LibGfx: Add AntiAliasingPainter::fill_rectMacDue
This function is able to draw rectangles of floating-point pixel precision.
2022-09-03LibGfx: Add saturation modification functions to Colorkleines Filmröllchen
This operates via the HSV color space; I'm not 100% sure whether the conversions are lossless.
2022-09-03LibGfx: Add YUV conversion functions to Colorkleines Filmröllchen
2022-09-03LibGfx: Make Color::set_alpha constexprkleines Filmröllchen
2022-09-03LibJS: Don't use a Handle<Realm> in FinalizationRegistryAndreas Kling
Instead just treat it like a normal GC cell edge.
2022-09-03LibJS: Make Handle<T> more user-friendlyAndreas Kling
Allow *handle, !handle, handle.ptr(), assignment from compatible pointer types, etc. This is in preparation for using Handles in more generated code.
2022-09-03LibJS: Add Cell::Visitor::visit(Cell&)Andreas Kling
2022-09-03LibJS: Add GCPtr and NonnullGCPtrAndreas Kling
These are two new smart pointers that are really just raw pointers under the hood. The initial benefit is all in the names, they allow us to declare that we're pointing at something in the GC heap. Later we may also find ways to add debugging logic or static analysis to these types.
2022-09-02CMake: Quote all CMAKE_COMMAND occurencesdemostanis
Building might fail if the cmake command path contains whitespace. See https://stackoverflow.com/a/35853080.
2022-09-03LibGfx: Ignore incorrect .font files when building the Font DatabaseKarol Kosek
Previously every GUI application would crash if we had an incorrect (or empty) .font file in /res/fonts.
2022-09-03LibGL: Implement `glGetTexImage`Jelle Raaijmakers
The plumbing was already there in LibGPU, so all that was left was to implement the API :^)
2022-09-03LibGL: Correct `GL_BLEND_*_ALPHA` constant valuesJelle Raaijmakers
They were plain wrong; while we're here, also add the `*_EXT` variants.
2022-09-03LibGL: Improve constants and types compatibilityJelle Raaijmakers
When compiling with SDL_opengl, all kinds of differences between LibGL and OpenGL constants and types popped up as redefinition warnings and errors. This fixes all LibGL-related warnings when compiling PrBoom+ :^)
2022-09-03LibGUI: Stop auto repeat timer for Buttons on EnabledChange eventsthankyouverycool
Since 5064b58 SpinBox buttons are disabled if value reaches the min or max allowed. Consequently this swallows the final MouseUp event, leaving the repeat timer running. Fixes SpinBoxes {dec,inc}rementing their value in perpetuity after min/max value is reached through button clicking.
2022-09-02LibJS: Fix incorrect check in ValidateAndApplyPropertyDescriptorLinus Groh
This is an editorial change in the ECMA-262 spec. See: https://github.com/tc39/ecma262/commit/f0e4ae8
2022-09-02LibJS: Assert Proxy target is a function in [[Call]] and [[Construct]]Linus Groh
As the TODOs suggested for a long time. :^)
2022-09-02LibJS: Allow anonymous functions as default exportsdavidot
This requires a special case with names as the default function is supposed to have a unique name ("*default*" in our case) but when checked should have name "default".
2022-09-02LibJS: Make indirect bindings of module behave like normal bindingsdavidot
Before this we attempted to hack around this by only overriding has_binding. However this did not cover all cases, for example when assigning to variables before their declaration it didn't throw. By using the new find_binding_and_index virtual method we can just pretend the indirect bindings are real. Since indirect binding do come from a normal environment we need to ensure you cannot modify the binding and that properties like mutable are false as expected by the spec for such an indirect binding.
2022-09-02LibJS: Make DeclarativeEnvironment based on bindings instead of indicesdavidot
This will allow other environments which extend DeclarativeEnvironment to provide their own custom bindings.
2022-09-02LibJS: Allow exporting any imported bindingsdavidot
2022-09-02LibJS: Only check for duplicate exports if they have a namedavidot
Together with removing an incorrect VERIFY this allows multiple star imports in a single module.
2022-09-02LibJS: Put exports before symbols in keys of module namespace objectdavidot
2022-09-02LibJS: Call resolve instead of reject in AsyncFromSyncIteratorPrototypedavidot
2022-09-02LibJS: Handle empty named exportdavidot
This is an export which looks like `export {} from "module"`, and although it doesn't have any real export entries it should still add "module" to the required modules to load.