mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 17:37:47 +00:00
LibWeb+LibWebView+WebContent: Add support for <input type="color">
This commit introduces 3 things: - Support for the color type in HTMLInputElement itself - A mechanism for handling non event loop blocking dialogs in Page - The associated plumbing up to ViewImplementation Frontends may add support for the color picker with the ViewImplementation.on_request_color_picker function
This commit is contained in:
parent
759ad905de
commit
2995a2e212
14 changed files with 110 additions and 4 deletions
|
@ -892,6 +892,11 @@ void ConnectionFromClient::prompt_closed(Optional<String> const& response)
|
|||
m_page_host->prompt_closed(response);
|
||||
}
|
||||
|
||||
void ConnectionFromClient::color_picker_closed(Optional<Color> const& picked_color)
|
||||
{
|
||||
m_page_host->color_picker_closed(picked_color);
|
||||
}
|
||||
|
||||
void ConnectionFromClient::toggle_media_play_state()
|
||||
{
|
||||
m_page_host->toggle_media_play_state().release_value_but_fixme_should_propagate_errors();
|
||||
|
|
|
@ -97,6 +97,7 @@ private:
|
|||
virtual void alert_closed() override;
|
||||
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 toggle_media_play_state() override;
|
||||
virtual void toggle_media_mute_state() override;
|
||||
|
|
|
@ -358,6 +358,11 @@ void PageHost::prompt_closed(Optional<String> response)
|
|||
page().prompt_closed(move(response));
|
||||
}
|
||||
|
||||
void PageHost::color_picker_closed(Optional<Color> picked_color)
|
||||
{
|
||||
page().color_picker_closed(picked_color);
|
||||
}
|
||||
|
||||
Web::WebIDL::ExceptionOr<void> PageHost::toggle_media_play_state()
|
||||
{
|
||||
return page().toggle_media_play_state();
|
||||
|
@ -453,4 +458,9 @@ void PageHost::request_file(Web::FileRequest file_request)
|
|||
m_client.request_file(move(file_request));
|
||||
}
|
||||
|
||||
void PageHost::page_did_request_color_picker(Color current_color)
|
||||
{
|
||||
m_client.async_did_request_color_picker(current_color);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -48,6 +48,7 @@ public:
|
|||
void alert_closed();
|
||||
void confirm_closed(bool accepted);
|
||||
void prompt_closed(Optional<String> response);
|
||||
void color_picker_closed(Optional<Color> picked_color);
|
||||
|
||||
Web::WebIDL::ExceptionOr<void> toggle_media_play_state();
|
||||
void toggle_media_mute_state();
|
||||
|
@ -113,6 +114,7 @@ private:
|
|||
virtual void page_did_request_activate_tab() override;
|
||||
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_finish_text_test() override;
|
||||
|
||||
explicit PageHost(ConnectionFromClient&);
|
||||
|
|
|
@ -59,6 +59,7 @@ endpoint WebContentClient
|
|||
did_request_minimize_window() => (Gfx::IntRect window_rect)
|
||||
did_request_fullscreen_window() => (Gfx::IntRect window_rect)
|
||||
did_request_file(DeprecatedString path, i32 request_id) =|
|
||||
did_request_color_picker(Color current_color) =|
|
||||
did_finish_handling_input_event(bool event_was_accepted) =|
|
||||
|
||||
did_output_js_console_message(i32 message_index) =|
|
||||
|
|
|
@ -78,6 +78,7 @@ endpoint WebContentServer
|
|||
alert_closed() =|
|
||||
confirm_closed(bool accepted) =|
|
||||
prompt_closed(Optional<String> response) =|
|
||||
color_picker_closed(Optional<Color> picked_color) =|
|
||||
|
||||
toggle_media_play_state() =|
|
||||
toggle_media_mute_state() =|
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue