1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 16:37:35 +00:00

LibGUI: Add a ClipboardClient for GUI::Clipboard

Anyone who inherits from `GUI::Clipboard::ClipboardClient` will receive
clipboard notifications via `clipboard_content_did_change()`.

Update ClipboardHistoryModel, TextEditor and TerminalWidget to inherit
from this class.
This commit is contained in:
TheFightingCatfish 2021-07-27 03:19:56 +08:00 committed by Andreas Kling
parent 95f393ebcd
commit 0c53c2dfa2
8 changed files with 106 additions and 72 deletions

View file

@ -12,6 +12,8 @@
#include <LibCore/ElapsedTimer.h>
#include <LibCore/Timer.h>
#include <LibGUI/AbstractScrollableWidget.h>
#include <LibGUI/Action.h>
#include <LibGUI/Clipboard.h>
#include <LibGUI/Forward.h>
#include <LibGUI/TextDocument.h>
#include <LibGUI/TextRange.h>
@ -24,7 +26,8 @@ namespace GUI {
class TextEditor
: public AbstractScrollableWidget
, public TextDocument::Client
, public Syntax::HighlighterClient {
, public Syntax::HighlighterClient
, public Clipboard::ClipboardClient {
C_OBJECT(TextEditor);
public:
@ -252,6 +255,9 @@ private:
virtual GUI::TextDocument& highlighter_did_request_document() final { return document(); }
virtual GUI::TextPosition highlighter_did_request_cursor() const final { return m_cursor; }
// ^Clipboard::ClipboardClient
virtual void clipboard_content_did_change(String const& mime_type) override;
void create_actions();
void paint_ruler(Painter&);
void update_content_size();