Serenity Operating System
1/*
2 * Copyright (c) 2022, Sam Atkins <atkinssj@serenityos.org>
3 * Copyright (c) 2022, the SerenityOS developers.
4 *
5 * SPDX-License-Identifier: BSD-2-Clause
6 */
7
8#pragma once
9
10#include <LibGUI/Button.h>
11#include <LibGUI/GlyphMapWidget.h>
12#include <LibGUI/Statusbar.h>
13
14class CharacterMapWidget final : public GUI::Widget {
15 C_OBJECT(CharacterMapWidget);
16
17public:
18 virtual ~CharacterMapWidget() override = default;
19
20 void initialize_menubar(GUI::Window& window);
21
22private:
23 CharacterMapWidget();
24
25 virtual void did_change_font() override;
26 void update_statusbar();
27
28 RefPtr<GUI::Toolbar> m_toolbar;
29 RefPtr<GUI::Label> m_font_name_label;
30 RefPtr<GUI::GlyphMapWidget> m_glyph_map;
31 RefPtr<GUI::TextBox> m_output_box;
32 RefPtr<GUI::Button> m_copy_output_button;
33 RefPtr<GUI::Statusbar> m_statusbar;
34 RefPtr<GUI::Window> m_find_window;
35 RefPtr<GUI::ListView> m_unicode_block_listview;
36 RefPtr<GUI::Model> m_unicode_block_model;
37
38 RefPtr<GUI::Action> m_choose_font_action;
39 RefPtr<GUI::Action> m_copy_selection_action;
40 RefPtr<GUI::Action> m_previous_glyph_action;
41 RefPtr<GUI::Action> m_next_glyph_action;
42 RefPtr<GUI::Action> m_go_to_glyph_action;
43 RefPtr<GUI::Action> m_find_glyphs_action;
44
45 Vector<DeprecatedString> m_unicode_block_list;
46 Unicode::CodePointRange m_range { 0x0000, 0x10FFFF };
47};