1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-29 00:57:36 +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

@ -1052,6 +1052,11 @@ void ConnectionFromClient::color_picker_closed(Optional<Color> const& picked_col
page().page().color_picker_closed(picked_color);
}
void ConnectionFromClient::select_dropdown_closed(Optional<String> const& value)
{
page().page().select_dropdown_closed(value);
}
void ConnectionFromClient::toggle_media_play_state()
{
page().page().toggle_media_play_state().release_value_but_fixme_should_propagate_errors();

View file

@ -110,6 +110,7 @@ private:
virtual void confirm_closed(bool accepted) override;
virtual void prompt_closed(Optional<String> const& response) override;
virtual void color_picker_closed(Optional<Color> const& picked_color) override;
virtual void select_dropdown_closed(Optional<String> const& value) override;
virtual void toggle_media_play_state() override;
virtual void toggle_media_mute_state() override;

View file

@ -404,6 +404,11 @@ void PageClient::color_picker_closed(Optional<Color> picked_color)
page().color_picker_closed(picked_color);
}
void PageClient::select_dropdown_closed(Optional<String> value)
{
page().select_dropdown_closed(value);
}
Web::WebIDL::ExceptionOr<void> PageClient::toggle_media_play_state()
{
return page().toggle_media_play_state();
@ -504,6 +509,11 @@ void PageClient::page_did_request_color_picker(Color current_color)
client().async_did_request_color_picker(current_color);
}
void PageClient::page_did_request_select_dropdown(Gfx::IntPoint content_position, i32 minimum_width, Vector<Web::HTML::SelectItem> items)
{
client().async_did_request_select_dropdown(content_position, minimum_width, items);
}
void PageClient::page_did_change_theme_color(Gfx::Color color)
{
client().async_did_change_theme_color(color);

View file

@ -53,6 +53,7 @@ public:
void confirm_closed(bool accepted);
void prompt_closed(Optional<String> response);
void color_picker_closed(Optional<Color> picked_color);
void select_dropdown_closed(Optional<String> value);
[[nodiscard]] Gfx::Color background_color() const;
@ -118,6 +119,7 @@ private:
virtual void page_did_close_browsing_context(Web::HTML::BrowsingContext const&) override;
virtual void request_file(Web::FileRequest) override;
virtual void page_did_request_color_picker(Color current_color) override;
virtual void page_did_request_select_dropdown(Gfx::IntPoint content_position, i32 minimum_width, Vector<Web::HTML::SelectItem> items) override;
virtual void page_did_finish_text_test() override;
virtual void page_did_change_theme_color(Gfx::Color color) override;
virtual void page_did_insert_clipboard_entry(String data, String presentation_style, String mime_type) override;

View file

@ -6,6 +6,7 @@
#include <LibWeb/Cookie/ParsedCookie.h>
#include <LibWeb/CSS/Selector.h>
#include <LibWeb/HTML/ActivateTab.h>
#include <LibWeb/HTML/SelectItem.h>
#include <LibWeb/Page/Page.h>
#include <LibWebView/Attribute.h>
@ -62,6 +63,7 @@ endpoint WebContentClient
did_request_fullscreen_window() => (Gfx::IntRect window_rect)
did_request_file(DeprecatedString path, i32 request_id) =|
did_request_color_picker(Color current_color) =|
did_request_select_dropdown(Gfx::IntPoint content_position, i32 minimum_width, Vector<Web::HTML::SelectItem> items) =|
did_finish_handling_input_event(bool event_was_accepted) =|
did_change_theme_color(Gfx::Color color) =|
did_insert_clipboard_entry(String data, String presentation_style, String mime_type) =|

View file

@ -91,6 +91,7 @@ endpoint WebContentServer
confirm_closed(bool accepted) =|
prompt_closed(Optional<String> response) =|
color_picker_closed(Optional<Color> picked_color) =|
select_dropdown_closed(Optional<String> value) =|
toggle_media_play_state() =|
toggle_media_mute_state() =|