mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 14:48:14 +00:00
CharacterMap: Add output box for copying arbitrary character sequences
This adds a TextBox along the bottom of the window. Double-clicking on a character will append it to this box, which you can edit as any other TextBox, or click the copy button to copy the output to the clipboard.
This commit is contained in:
parent
ff500ffcc4
commit
9ca8428238
3 changed files with 36 additions and 0 deletions
|
@ -14,6 +14,7 @@
|
|||
#include <LibGUI/Icon.h>
|
||||
#include <LibGUI/Label.h>
|
||||
#include <LibGUI/Menu.h>
|
||||
#include <LibGUI/TextBox.h>
|
||||
#include <LibGUI/Toolbar.h>
|
||||
#include <LibUnicode/CharacterTypes.h>
|
||||
|
||||
|
@ -24,6 +25,8 @@ CharacterMapWidget::CharacterMapWidget()
|
|||
m_toolbar = find_descendant_of_type_named<GUI::Toolbar>("toolbar");
|
||||
m_font_name_label = find_descendant_of_type_named<GUI::Label>("font_name");
|
||||
m_glyph_map = find_descendant_of_type_named<GUI::GlyphMapWidget>("glyph_map");
|
||||
m_output_box = find_descendant_of_type_named<GUI::TextBox>("output_box");
|
||||
m_copy_output_button = find_descendant_of_type_named<GUI::Button>("copy_output_button");
|
||||
m_statusbar = find_descendant_of_type_named<GUI::Statusbar>("statusbar");
|
||||
|
||||
m_choose_font_action = GUI::Action::create("Choose Font...", Gfx::Bitmap::try_load_from_file("/res/icons/16x16/app-font-editor.png").release_value_but_fixme_should_propagate_errors(), [&](auto&) {
|
||||
|
@ -54,6 +57,17 @@ CharacterMapWidget::CharacterMapWidget()
|
|||
update_statusbar();
|
||||
};
|
||||
|
||||
m_glyph_map->on_glyph_double_clicked = [&](int code_point) {
|
||||
StringBuilder builder;
|
||||
builder.append(m_output_box->text());
|
||||
builder.append_code_point(code_point);
|
||||
m_output_box->set_text(builder.string_view());
|
||||
};
|
||||
|
||||
m_copy_output_button->on_click = [&](auto) {
|
||||
GUI::Clipboard::the().set_plain_text(m_output_box->text());
|
||||
};
|
||||
|
||||
did_change_font();
|
||||
update_statusbar();
|
||||
}
|
||||
|
@ -77,6 +91,7 @@ void CharacterMapWidget::did_change_font()
|
|||
{
|
||||
m_glyph_map->set_font(font());
|
||||
m_font_name_label->set_text(font().qualified_name());
|
||||
m_output_box->set_font(font());
|
||||
}
|
||||
|
||||
void CharacterMapWidget::update_statusbar()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue