/* * Copyright (c) 2023, Bastiaan van der Plaat * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace Web::HTML { struct SelectItemOption { u32 id { 0 }; bool selected { false }; bool disabled { false }; GC::Ptr option_element {}; String label {}; String value {}; }; struct SelectItemOptionGroup { String label = {}; Vector items = {}; }; struct SelectItemSeparator { }; using SelectItem = Variant; } namespace IPC { template<> ErrorOr encode(Encoder&, Web::HTML::SelectItemOption const&); template<> ErrorOr decode(Decoder&); template<> ErrorOr encode(Encoder&, Web::HTML::SelectItemOptionGroup const&); template<> ErrorOr decode(Decoder&); template<> ErrorOr encode(Encoder&, Web::HTML::SelectItemSeparator const&); template<> ErrorOr decode(Decoder&); }