123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /*
- * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
- *
- * SPDX-License-Identifier: BSD-2-Clause
- */
- #pragma once
- #include <AK/URL.h>
- #include <AK/Vector.h>
- namespace WebView {
- class History {
- public:
- struct URLTitlePair {
- URL url;
- DeprecatedString title;
- };
- void dump() const;
- Vector<URLTitlePair> get_all_history_entries();
- void push(const URL& url, DeprecatedString const& title);
- void replace_current(const URL& url, DeprecatedString const& title);
- void update_title(DeprecatedString const& title);
- URLTitlePair current() const;
- Vector<StringView> const get_back_title_history();
- Vector<StringView> const get_forward_title_history();
- void go_back(int steps = 1);
- void go_forward(int steps = 1);
- bool can_go_back(int steps = 1) { return (m_current - steps) >= 0; }
- bool can_go_forward(int steps = 1) { return (m_current + steps) < static_cast<int>(m_items.size()); }
- void clear();
- bool is_empty() const { return m_items.is_empty(); }
- private:
- Vector<URLTitlePair> m_items;
- int m_current { -1 };
- };
- }
|