diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-04-14 14:38:42 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-04-14 14:38:42 +0800 |
| commit | 10c3746a6df45dd154955a9e91e662260f36363f (patch) | |
| tree | 0c9c879439baf659d875ec1438154ca9ea71faf1 /include/ricochet/core/form_handler.hh | |
| parent | d4f78be6f231b5289eb1c658d1f67006b7d884dd (diff) | |
| download | rwebbrowser-10c3746a6df45dd154955a9e91e662260f36363f.tar.gz rwebbrowser-10c3746a6df45dd154955a9e91e662260f36363f.tar.xz | |
refactor: adjust code structure
Diffstat (limited to 'include/ricochet/core/form_handler.hh')
| -rw-r--r-- | include/ricochet/core/form_handler.hh | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/include/ricochet/core/form_handler.hh b/include/ricochet/core/form_handler.hh new file mode 100644 index 0000000..5abf148 --- /dev/null +++ b/include/ricochet/core/form_handler.hh @@ -0,0 +1,38 @@ +/* + * Ricochet - A minimalist CLI web browser for fast, distraction-free navigation. + * Copyright (C) 2026 Richard Qin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + */ + +#pragma once + +#include "ricochet/core/types.hh" +#include "ricochet/render/renderer.hh" +#include "ricochet/tui/terminal.hh" +#include <cstddef> +#include <string> +#include <vector> + +namespace ricochet::core { + +InputAction submit_form( const render::InputField& target_input, + const std::vector<render::InputField>& inputs, + const std::string& current_url, + std::vector<HttpRequest>& history, + std::size_t& history_idx ); + +void update_input_value( PageData& page_data, std::size_t index, const std::string& query ); +void update_single_line_ui( std::string& line, const std::string& marker, const render::InputField& in ); +void update_toggle_ui( PageData& page_data ); + +InputAction handle_form_input( const tui::Terminal& terminal, + PageData& page_data, + const std::string& current_url, + std::vector<HttpRequest>& history, + std::size_t& history_idx ); + +} // namespace ricochet::core |
