#pragma once #include #include #include #include #include #include class GButton; class GTextBox; class GTextEditor; class GStatusBar; class TextEditorWidget final : public GWidget { public: TextEditorWidget(); virtual ~TextEditorWidget() override; void open_sesame(const String& path); bool request_close(); private: void set_path(const FileSystemPath& file); void update_title(); ObjectPtr m_editor; String m_path; String m_name; String m_extension; RefPtr m_new_action; RefPtr m_open_action; RefPtr m_save_action; RefPtr m_save_as_action; RefPtr m_find_action; RefPtr m_line_wrapping_setting_action; RefPtr m_find_next_action; RefPtr m_find_previous_action; ObjectPtr m_statusbar; ObjectPtr m_find_textbox; GButton* m_find_previous_button { nullptr }; GButton* m_find_next_button { nullptr }; ObjectPtr m_find_widget; bool m_document_dirty { false }; };