12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /*
- * Copyright (c) 2023, Bastiaan van der Plaat <bastiaan.v.d.plaat@gmail.com>
- *
- * SPDX-License-Identifier: BSD-2-Clause
- */
- #pragma once
- #include <AK/String.h>
- #include <LibIPC/Forward.h>
- #include <LibWeb/HTML/HTMLOptionElement.h>
- namespace Web::HTML {
- struct SelectItemOption {
- u32 id { 0 };
- bool selected { false };
- bool disabled { false };
- JS::GCPtr<HTMLOptionElement> option_element {};
- String label {};
- String value {};
- };
- struct SelectItemOptionGroup {
- String label = {};
- Vector<SelectItemOption> items = {};
- };
- struct SelectItemSeparator { };
- using SelectItem = Variant<SelectItemOption, SelectItemOptionGroup, SelectItemSeparator>;
- }
- namespace IPC {
- template<>
- ErrorOr<void> encode(Encoder&, Web::HTML::SelectItemOption const&);
- template<>
- ErrorOr<Web::HTML::SelectItemOption> decode(Decoder&);
- template<>
- ErrorOr<void> encode(Encoder&, Web::HTML::SelectItemOptionGroup const&);
- template<>
- ErrorOr<Web::HTML::SelectItemOptionGroup> decode(Decoder&);
- template<>
- ErrorOr<void> encode(Encoder&, Web::HTML::SelectItemSeparator const&);
- template<>
- ErrorOr<Web::HTML::SelectItemSeparator> decode(Decoder&);
- }
|