瀏覽代碼

LibGUI: Tweak GUI::Label API a bit and add did_change_text() virtual

Andreas Kling 4 年之前
父節點
當前提交
4e084793df
共有 2 個文件被更改,包括 10 次插入7 次删除
  1. 5 4
      Libraries/LibGUI/Label.cpp
  2. 5 3
      Libraries/LibGUI/Label.h

+ 5 - 4
Libraries/LibGUI/Label.cpp

@@ -32,8 +32,8 @@
 
 namespace GUI {
 
-Label::Label(const StringView& text)
-    : m_text(text)
+Label::Label(String text)
+    : m_text(move(text))
 {
     set_frame_thickness(0);
     set_frame_shadow(Gfx::FrameShadow::Plain);
@@ -66,14 +66,15 @@ void Label::set_icon(const Gfx::Bitmap* icon)
     update();
 }
 
-void Label::set_text(const StringView& text)
+void Label::set_text(String text)
 {
     if (text == m_text)
         return;
-    m_text = text;
+    m_text = move(text);
     if (m_autosize)
         size_to_fit();
     update();
+    did_change_text();
 }
 
 void Label::paint_event(PaintEvent& event)

+ 5 - 3
Libraries/LibGUI/Label.h

@@ -32,12 +32,13 @@
 namespace GUI {
 
 class Label : public Frame {
-    C_OBJECT(Label)
+    C_OBJECT(Label);
+
 public:
     virtual ~Label() override;
 
     String text() const { return m_text; }
-    void set_text(const StringView&);
+    void set_text(String);
 
     void set_icon(const Gfx::Bitmap*);
     const Gfx::Bitmap* icon() const { return m_icon.ptr(); }
@@ -53,9 +54,10 @@ public:
     void set_autosize(bool);
 
 protected:
-    explicit Label(const StringView& text = {});
+    explicit Label(String text = {});
 
     virtual void paint_event(PaintEvent&) override;
+    virtual void did_change_text() { }
 
 private:
     void size_to_fit();