Commit graph

1867 commits

Author SHA1 Message Date
Nicolas Ramz
fda5590313 LibGfx/ILBM: Add an IFF-ILBM decoder :)
IFF was a generic container fileformat that was popular on the Amiga
since it was the only file format supported by Deluxe Paint.

ILBM is an image format popular in the late eighties/nineties
that uses the IFF container.

This is a very first version of the decoder that only supports
(byterun) compressed files with bpp <= 8.

Only the minimal chunks are decoded: CMAP, BODY, BMHD.

I am planning to add support for the following variants:

- EHB (32 colours + lighter 32 colours)
- HAM6 / HAM8 (special mode that allowed to display the whole Amiga
4096 colours / 262 144 colours palette)
- TrueColor (24bit)

Things that could be fun to do:

- Still images could be animated using color cycle information
2023-08-15 18:36:11 +01:00
Bastiaan van der Plaat
eafdb06d87 LibWeb: Add directory entries page when visiting a local directory 2023-08-15 10:41:54 +01:00
Bastiaan van der Plaat
e4c3a52cfa LibWeb: Add resource_directory_url for internal HTML pages
The error.html page now uses the resource_directory_url this
variable contains the relative path to /Base/res/ on the host
system as a file:// url. This is needed for future pages to load
resource files like icons. For the error.html page this was not
really needed because it lies over this own URL in FrameLoader.cpp.
2023-08-15 10:41:54 +01:00
Xexxa
8d17ede197 Base: Improve emoji
Remove unnecessary left/right padding

❣️ - U+2763 HEART EXCLAMATION
🚶 - U+1F6B6 PERSON WALKING
🚴 - U+1F6B4 PERSON BIKING
🌻 - U+1F33B SUNFLOWER
🪻 - U+1FABB HYACINTH
🍉 - U+1F349 WATERMELON
🍍 - U+1F34D PINEAPPLE
🫒 - U+1FAD2 OLIVE
🌽 - U+1F33D EAR OF CORN
🌯 - U+1F32F BURRITO
🍘 - U+1F358 RICE CRACKER
🧁 - U+1F9C1 CUPCAKE
🍫 - U+1F36B CHOCOLATE BAR
🍭 - U+1F36D LOLLIPOP
🍼 - U+1F37C BABY BOTTLE
🧋 - U+1F9CB BUBBLE TEA
🧃 - U+1F9C3 BEVERAGE BOX
🥢 - U+1F962 CHOPSTICKS
💈 - U+1F488 BARBER POLE
🌛 - U+1F31B FIRST QUARTER MOON FACE
🌜 - U+1F31C LAST QUARTER MOON FACE
🌡️ - U+1F321 THERMOMETER
🪐 - U+1FA90 RINGED PLANET
 - U+26A1 HIGH VOLTAGE
💧 - U+1F4A7 DROPLET
🧨 - U+1F9E8 FIRECRACKER
🥇 - U+1F947 1ST PLACE MEDAL
🥈 - U+1F948 2ND PLACE MEDAL
🥉 - U+1F949 3RD PLACE MEDAL
🏓 - U+1F3D3 PING PONG
🪀 - U+1FA80 YO-YO
♟️ - U+265F CHESS PAWN
🧦 - U+1F9E6 SOCKS
💄 - U+1F484 LIPSTICK
📱 - U+1F4F1 MOBILE PHONE
🔌 - U+1F50C ELECTRIC PLUG
💡 - U+1F4A1 LIGHT BULB
📍 - U+1F4CD ROUND PUSHPIN
🔩 - U+1F529 NUT AND BOLT
🪝 - U+1FA9D HOOK
🧪 - U+1F9EA TEST TUBE
🔭 - U+1F52D TELESCOPE
🩸 - U+1FA78 DROP OF BLOOD
💊 - U+1F48A PILL
🩹 - U+1FA79 ADHESIVE BANDAGE
🧼 - U+1F9FC SOAP
🪥 - U+1FAA5 TOOTHBRUSH
♀️ - U+2640 FEMALE SIGN
♂️ - U+2642 MALE SIGN
 - U+2795 PLUS
 - U+2797 DIVIDE
 - U+2753 RED QUESTION MARK
 - U+2754 WHITE QUESTION MARK
 - U+2755 WHITE EXCLAMATION MARK
 - U+2757 RED EXCLAMATION MARK
◼️ - U+25FC BLACK MEDIUM SQUARE
◻️ - U+25FB WHITE MEDIUM SQUARE
 - U+25FE BLACK MEDIUM-SMALL SQUARE
 - U+25FD WHITE MEDIUM-SMALL SQUARE
▪️ - U+25AA BLACK SMALL SQUARE
▫️ - U+25AB WHITE SMALL SQUARE
🚩 - U+1F6A9 TRIANGULAR FLAG
2023-08-10 07:52:36 -04:00
Xexxa
5b0b063d9b Base: Add emoji
🧑‍🌾 - U+1F9D1 U+200D U+1F33E FARMER
🏇 - U+1F3C7 HORSE RACING
🚵 - U+1F6B5 PERSON MOUNTAIN BIKING
🚵‍♂️ - U+1F6B5 U+200D U+2642 MAN MOUNTAIN BIKING
🚵‍♀️ - U+1F6B5 U+200D U+2640 WOMAN MOUNTAIN BIKING
🐺 - U+1F43A WOLF
🏟️ - U+1F3DF STADIUM
🏚️ - U+1F3DA DERELICT HOUSE
🏢 - U+1F3E2 OFFICE BUILDING
🏤 - U+1F3E4 POST OFFICE
🎠 - U+1F3A0 CAROUSEL HORSE
🚝 - U+1F69D MONORAIL
🚕 - U+1F695 TAXI
🏎️ - U+1F3CE RACING CAR
🧳 - U+1F9F3 LUGGAGE
🪁 - U+1FA81 KITE
👚 - U+1F45A WOMAN’S CLOTHES
🎒 - U+1F392 BACKPACK
🥾 - U+1F97E HIKING BOOT
🎻 - U+1F3BB VIOLIN
🎦 - U+1F3A6 CINEMA
2023-08-10 07:52:36 -04:00
Jelle Raaijmakers
bf927344fb Base: Teach ImageViewer and PixelPaint to open JXL, TGA images 2023-08-09 14:40:26 +02:00
Bastiaan van der Plaat
bba14f6014 LibWeb: Add Canvas Context2D basic font property support 2023-08-09 05:48:32 +02:00
Timothy Flynn
27fa029537 Base: Remove FrogFind from the new tab page
Search queries no longer work for this engine, and FireFox even issues a
security warning on their home page.
2023-08-09 05:33:24 +02:00
Tom L
325d1553ca Base+LibCards: Add basic set of playing card backs 2023-08-08 14:56:25 +01:00
Monroe Clinton
1b5b1e4153 Calendar: Implement saving, loading, and displaying of calendars
The user can now save, load, and view calendars. A calendar is made up
of an array of events which are saved in a JSON file. In the future we
should implement the iCalendar standard instead of using a custom
format.
2023-08-07 13:14:58 -06:00
Bastiaan van der Plaat
220e34b69d LibWeb: Add Canvas Context2D basic text align and text baseline support
Add the CanvasTextDrawingStyles mixin with the textAlign and
textBaseline attributes. Update fill_text in CanvasRenderingContext2D
to move the text rect by the text align and text baseline attributes.
Wrote a simple HTML example to showcase the new features.
2023-08-05 17:17:08 +02:00
Sam Atkins
73fa58da34 LibWeb: Implement the CSS outline-offset property
This allows you to push the outline a certain distance away from the
border (or inside it, if the offset is negative).
2023-08-03 05:25:48 +02:00
Sam Atkins
fe7e797483 LibWeb: Implement the CSS outline property :^)
...along with `outline-color`, `outline-style`, and `outline-width`.

This re-uses the existing border-painting code, which seems to work well
enough!

This replaces the previous code for drawing focus-outlines, with generic
outline painting for any elements that want it. Focus outlines are now
instead supported by this code in Default.css:

```css
:focus-visible {
    outline: auto;
}
```
2023-08-03 05:25:48 +02:00
Linus Groh
d923c2dd1b Base: Add a quote to the fortunes database 2023-08-02 13:08:59 +01:00
zhiyuang
94491ead67 LibWeb: Fix border painting with border-radius and zero-width sides
When joined border width is zero width, then the midpoint
of the joined corner is no longer need to be computed
anymore. Just set the mid point to be the endpoint of the
corner.
2023-07-26 08:38:54 +02:00
Xexxa
ea88242d1c Base: Add more emoji
🐹 - U+1F439 HAMSTER
🦂 - U+1F982 SCORPION
🥐 - U+1F950 CROISSANT
🫕 - U+1FAD5 FONDUE
🏫 - U+1F3EB SCHOOL
🚑 - U+1F691 AMBULANCE
🛺 - U+1F6FA AUTO RICKSHAW
🧧 - U+1F9E7 RED ENVELOPE
🥍 - U+1F94D LACROSSE
🤿 - U+1F93F DIVING MASK
🥽 - U+1F97D GOGGLES
🩺 - U+1FA7A STETHOSCOPE
2023-07-22 08:50:46 -04:00
Xexxa
ad645c7103 Base: Add more emoji
🏵️ - U+1F3F5 ROSETTE
🦠 - U+1F9A0 MICROBE
🪽 - U+1FABD WING

Co-authored-by: Ryan Liptak <squeek502@hotmail.com>
2023-07-22 08:50:46 -04:00
zhiyuang
97130a4e66 LibWeb: More correctly paint joins between borders
The refactor of the border painting mainly to handle:
1. Single border with minor border radius.
2. Different border widths and border colors joined situations.
This refactor only apply to solid border.

The main differece is to use Path.fill to paint each border,
not fill_rect anymore. There's a special case need to consider.
The Path.fill will leave shared edge blank between two borders.
To handle this, we decide to combine the borders with same color
to paint together.
2023-07-18 14:51:13 +01:00
Alan Kemp
3fd870a429 LibWeb: Create EdgeStyleValue for BackgroundPositionXY with no offset
When specifying either `background-position-x: right` or
`background-position-y: bottom` without an offset value no
EdgeStyleValue was created.

However, the spec says the offset should be optional.

Now, if you do not provide an offset, it creates the EdgeStyleValue
with a default offset of 0 pixels.
2023-07-17 14:53:52 +01:00
Ryan Liptak
074ea60bb6 Base: Add 2 new emojis
⚱️ U+26B1 - Funeral Urn
👼 U+1F47C - Baby Angel
2023-07-17 06:31:54 +01:00
Xexxa
ed67acb16d Base: Add more emoji
👣 - U+1F463 FOOTPRINTS
👕 - U+1F455 T-SHIRT
👝 - U+1F45D CLUTCH BAG
👒 - U+1F452 WOMAN’S HAT
🎸 - U+1F3B8 GUITAR
2023-07-15 09:33:54 +02:00
Xexxa
c03b788892 Base: Add more emoji
🧑‍🎓 - U+1F9D1 U+200D U+1F393 STUDENT
🏯 - U+1F3EF JAPANESE CASTLE
🏙️ - U+1F3D9 CITYSCAPE
🚓 - U+1F693 POLICE CAR
🚙 - U+1F699 SPORT UTILITY VEHICLE
2023-07-14 15:42:48 -04:00
Ali Mohammad Pur
0c14698028 LibWeb: Fully implement CSS animation-timing-function
This implements all the timing functions, and hopefully all their
quirks.
Also changes the animation demo to use some funny cubic timing
functions.
2023-07-13 05:10:41 +02:00
Xexxa
318a3a0822 Base: Add more emoji
🧑‍🦽 - U+1F9D1 U+200D U+1F9BD PERSON IN MANUAL WHEELCHAIR
👨‍🦽 - U+1F468 U+200D U+1F9BD MAN IN MANUAL WHEELCHAIR
👩‍🦽 - U+1F469 U+200D U+1F9BD WOMAN IN MANUAL WHEELCHAIR
🕺 - U+1F57A MAN DANCING
🤹 - U+1F939 PERSON JUGGLING
🤹‍♂️ - U+1F939 U+200D U+2642 MAN JUGGLING
🤹‍♀️ - U+1F939 U+200D U+2640 WOMAN JUGGLING
🦣 - U+1F9A3 MAMMOTH
🎡 - U+1F3A1 FERRIS WHEEL
🛵 - U+1F6F5 MOTOR SCOOTER
💺 - U+1F4BA SEAT
🚳 - U+1F6B3 NO BICYCLES
🚯 - U+1F6AF NO LITTERING
2023-07-13 00:03:24 +02:00
Xexxa
deb0c53779 Base: Add more emoji
🧎🏻 - U+1F9CE U+1F3FB PERSON KNEELING: LIGHT SKIN TONE
🧎🏼 - U+1F9CE U+1F3FC PERSON KNEELING: MEDIUM-LIGHT SKIN TONE
🧎🏽 - U+1F9CE U+1F3FD PERSON KNEELING: MEDIUM SKIN TONE
🧎🏾 - U+1F9CE U+1F3FE PERSON KNEELING: MEDIUM-DARK SKIN TONE
🧎🏿 - U+1F9CE U+1F3FF PERSON KNEELING: DARK SKIN TONE
🧎🏻‍♂️ - U+1F9CE U+1F3FB U+200D U+2642
MAN KNEELING: LIGHT SKIN TONE
🧎🏼‍♂️ - U+1F9CE U+1F3FC U+200D U+2642
MAN KNEELING: MEDIUM-LIGHT SKIN TONE
🧎🏽‍♂️ - U+1F9CE U+1F3FD U+200D U+2642
MAN KNEELING: MEDIUM SKIN TONE
🧎🏾‍♂️ - U+1F9CE U+1F3FE U+200D U+2642
MAN KNEELING: MEDIUM-DARK SKIN TONE
🧎🏿‍♂️ - U+1F9CE U+1F3FF U+200D U+2642
MAN KNEELING: DARK SKIN TONE
🧎🏻‍♀️ - U+1F9CE U+1F3FB U+200D U+2640
WOMAN KNEELING: LIGHT SKIN TONE
🧎🏼‍♀️ - U+1F9CE U+1F3FC U+200D U+2640
WOMAN KNEELING: MEDIUM-LIGHT SKIN TONE
🧎🏽‍♀️ - U+1F9CE U+1F3FD U+200D U+2640
WOMAN KNEELING: MEDIUM SKIN TONE
🧎🏾‍♀️ - U+1F9CE U+1F3FE U+200D U+2640
WOMAN KNEELING: MEDIUM-DARK SKIN TONE
🧎🏿‍♀️ - U+1F9CE U+1F3FF U+200D U+2640
WOMAN KNEELING: DARK SKIN TONE
🦫 - U+1F9AB BEAVER
2023-07-12 06:26:21 +02:00
Xexxa
d2637d54e5 Base: Add more emoji
🐏 - U+1F40F RAM
🐦‍⬛ - U+1F426 U+200D U+2B1B BLACK BIRD
📟 - U+1F4DF PAGER
🚻 - U+1F6BB RESTROOM
🚼 - U+1F6BC BABY SYMBOL
2023-07-10 19:47:19 -04:00
Timothy Flynn
af5eaf5edf Base: Add a test page to log KeyboardEvent data
This page prepends a row to a table with the last-received
KeyboardEvent.
2023-07-09 06:32:20 +02:00
Xexxa
c0528d4188 Base: Add more emoji
🫃 - U+1FAC3 PREGNANT MAN
🫄 - U+1FAC4 PREGNANT PERSON
🤺 - U+1F93A PERSON FENCING
🤾 - U+1F93E PERSON PLAYING HANDBALL
🤾‍♂️ - U+1F93E U+200D U+2642 MAN PLAYING HANDBALL
🤾‍♀️ - U+1F93E U+200D U+2640 WOMAN PLAYING HANDBALL
🧁 - U+1F9C1 CUPCAKE
🗼 - U+1F5FC TOKYO
🪈 - U+1FA88 FLUTE
2023-07-08 22:51:42 +01:00
Xexxa
74e77c205d Base: Adjust emoji
Align U+1F451 and U+1F450 vertically to better align with other emoji

👐 - U+1F450 OPEN HANDS
👑 - U+1F451 CROWN
2023-07-08 22:51:42 +01:00
Xexxa
6303285b1c Base: Adjust emoji
Make clothes color of U+1F930 match other emoji better

🤰 - U+1F930 PREGNANT WOMAN
2023-07-08 22:51:42 +01:00
Xexxa
c09bcc2f16 Base: Add more emoji
🦸 - U+1F9B8 SUPERHERO
🦹 - U+1F9B9 SUPERVILLAIN
🧍 - U+1F9CD PERSON STANDING
🧍‍♂️ - U+1F9CD U+200D U+2642 MAN STANDING
🧍‍♀️ - U+1F9CD U+200D U+2640 WOMAN STANDING
🦰 - U+1F9B0 RED HAIR (component)
🦱 - U+1F9B1 CURLY HAIR (component)
🦳 - U+1F9B3 WHITE HAIR (component)
🦲 - U+1F9B2 BALD (component)
🥯 - U+1F96F BAGEL
🚜 - U+1F69C TRACTOR
🪪 - U+1FAAA IDENTIFICATION CARD
2023-07-08 18:48:42 +01:00
MacDue
c63d66e32f Base: Add high-quality vectorized Buggie .tvg file
I could not find a vector graphic of Buggie, so I've now made one
and am adding it exclusively as a .tvg :^)

Should be easy to convert to an SVG too :)
2023-07-03 23:54:51 +02:00
MacDue
7a0e3474d6 Base: Setup file associations for .tvg 2023-07-03 23:54:51 +02:00
Kim Kulak
cfb6baf973 Base: Add Wiby Search To New Tab Page 2023-07-02 13:20:04 +01:00
kleines Filmröllchen
e7b7d1b347 Base: Add a new quote to the fortunes database 2023-06-24 19:13:42 +03:30
Simon Danner
45f86466bb LibWeb: Add initial implementation of CRC2D.globalAlpha
Works for fills and strokes (using colors, gradients, or patterns),
along with images.

fill_rect() has been updated to use fill_path(), which allows it to
easily transform the rect, and already supports opacity.

Co-authored-by: MacDue <macdue@dueutil.tech>
2023-06-18 20:31:11 +02:00
MacDue
a910c4d984 LibWeb: Fix end position for objectBoundingBox SVG <radialGradient>s
The translation to the bounding box location is handled by the gradient
transform, also doing it here breaks things.

This fixes the MDN <radialGradient> example.
2023-06-17 22:25:26 +01:00
Nico Weber
7302f8838c Base: Remove unused png file
See here: https://github.com/SerenityOS/serenity/pull/15234#issuecomment-1591477603
2023-06-15 17:44:44 -04:00
Nico Weber
31c9fe5c32 Base: Rename Cupertino window-close-modified-hover.jpg to .png
It's a png file, not a jpeg file, so give it the correct name.
If I read WindowFrame.cpp right, the hover bitmap only works if
the file is named .png, too.

(Noticed by running `find Base/res/icons -name '*.jpg'`.)
2023-06-14 06:40:44 +02:00
MacDue
e27081a8ca Base: Add an SVG fill-rule example page 2023-06-11 19:34:24 +02:00
MacDue
30c316a2bf LibWeb+LibGfx: Allow stroking with a paint style and opacity 2023-06-11 16:15:56 +02:00
MacDue
eb4a58528e LibWeb+LibGfx: Allow filling with a paint style and opacity 2023-06-11 16:15:56 +02:00
Timothy Flynn
e7faca4431 Base: Use a relative path to load the new tab page's browser icon
Similar to 59a1a3f463, this is to allow
using this page outside of Serenity.
2023-06-08 07:22:00 +02:00
MacDue
d259421b69 LibWeb: Allow paint style fills for CRC2D strokes 2023-06-08 07:17:43 +02:00
Luke Wilde
42a183720b LibWeb/SVG: Support url() in the stroke attribute
This allows you to draw gradients in strokes, for example.
2023-06-07 06:29:46 +02:00
Simon Danner
d41e6a0451 Base: Add Unicode arrows to Katica Italic 10
2190-4
2023-06-07 00:47:22 +02:00
Karol Kosek
6e5457d9e0 Base: Add .mkv file association to Video Player
Video Player can play VP9 videos inside Matroska. Double-clicking on
such files in File Manager will now open this application.
2023-06-05 06:56:06 +02:00
Ben Wiederhake
189af20294 Base: Remove unlicensed copy of BMFW
The creator of this site is most definitely not going to enforce his
copyright, yes, but it's still a bad idea to keep around an unlicensed
copy of someone else's work. We no longer use it to 'test' anything, so
let's just remove it entirely.
2023-06-03 14:29:19 +02:00
Ben Wiederhake
38f107685c Base: Replace GPL bmpsuite by link to original
bmpsuite on GitHub is licensed under the GPLv3:
https://github.com/jsummers/bmpsuite/blob/master/COPYING.txt

However, we did not "conspicuously and appropriately publish on each
copy an appropriate copyright notice", therefore we probably were in
violation with GPLv3 paragraph 4, "Conveying Verbatim Copies".

Let's just remove this entirely, because Ladybird can just access
the original pages instead.

At the time of writing, `bmpsuite.html` and the HTML response from the
linked URL are byte-identical.
2023-06-03 14:29:19 +02:00
Oskar Skog
a05f610278 Base: Extend the Finnish keymap and make capital Å type what it should 2023-05-31 16:42:09 +02:00