1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 10:17:35 +00:00

Ladybird+LibWeb: Add basic select element support

This commit is contained in:
Bastiaan van der Plaat 2023-12-07 15:53:49 +01:00 committed by Andreas Kling
parent b439431488
commit 466153e680
28 changed files with 641 additions and 4 deletions

View file

@ -0,0 +1,31 @@
/*
* Copyright (c) 2023, Bastiaan van der Plaat <bastiaan.v.d.plaat@gmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include "SelectItem.h"
#include <LibIPC/Decoder.h>
#include <LibIPC/Encoder.h>
template<>
ErrorOr<void> IPC::encode(Encoder& encoder, Web::HTML::SelectItem const& select_item)
{
TRY(encoder.encode(select_item.type));
TRY(encoder.encode(select_item.label));
TRY(encoder.encode(select_item.value));
TRY(encoder.encode(select_item.items));
TRY(encoder.encode(select_item.selected));
return {};
}
template<>
ErrorOr<Web::HTML::SelectItem> IPC::decode(Decoder& decoder)
{
auto type = TRY(decoder.decode<Web::HTML::SelectItem::Type>());
auto label = TRY(decoder.decode<Optional<String>>());
auto value = TRY(decoder.decode<Optional<String>>());
auto items = TRY(decoder.decode<Optional<Vector<Web::HTML::SelectItem>>>());
auto selected = TRY(decoder.decode<bool>());
return Web::HTML::SelectItem { type, move(label), move(value), move(items), selected };
}