/* * Copyright (c) 2023, Bastiaan van der Plaat * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include "MapWidget.h" #include #include #include #include #include #include #include namespace Maps { class SearchPanel final : public GUI::Widget { C_OBJECT(SearchPanel) public: static ErrorOr> try_create(); ErrorOr initialize(); void search(StringView query); void reset(); struct Place { String name; MapWidget::LatLng latlng; int zoom; }; Function const&)> on_places_change; Function on_selected_place_change; private: SearchPanel() = default; RefPtr m_request_client; RefPtr m_request; RefPtr m_search_textbox; RefPtr m_search_button; RefPtr m_start_container; RefPtr m_empty_container; RefPtr m_places_list; Vector m_places; Vector m_places_names; }; }