[gnote] Add abstract classes for embeding widgets
- From: Aurimas Äernius <aurimasc src gnome org>
- To: commits-list gnome org
- Cc: 
- Subject: [gnote] Add abstract classes for embeding widgets
- Date: Sat,  6 Oct 2012 13:20:31 +0000 (UTC)
commit 113b393660a0ff53de24e6f9ad5e8b529f7e63d0
Author: Aurimas Äernius <aurisc4 gmail com>
Date:   Sat Oct 6 13:37:24 2012 +0300
    Add abstract classes for embeding widgets
 src/utils.hpp |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 47 insertions(+), 0 deletions(-)
---
diff --git a/src/utils.hpp b/src/utils.hpp
index 82094c6..92b2657 100644
--- a/src/utils.hpp
+++ b/src/utils.hpp
@@ -243,6 +243,53 @@ namespace gnote {
       void release_button();        
     };
 
+    class EmbedableWidget;
+    class EmbedableWidgetHost
+    {
+    public:
+      virtual void embed_widget(EmbedableWidget &) = 0;
+      virtual void unembed_widget(EmbedableWidget &) = 0;
+      virtual void foreground_embeded(EmbedableWidget &) = 0;
+      virtual void background_embeded(EmbedableWidget &) = 0;
+    };
+
+    class EmbedableWidget
+    {
+    public:
+      EmbedableWidget() : m_host(NULL) {}
+      virtual std::string get_name() const = 0;
+      virtual void embed(EmbedableWidgetHost *h)
+        {
+          m_host = h;
+          signal_embeded();
+        }
+      virtual void unembed()
+        {
+          m_host = NULL;
+          signal_unembeded();
+        }
+      virtual void foreground()
+        {
+          signal_foregrounded();
+        }
+      virtual void background()
+        {
+          signal_backgrounded();
+        }
+      EmbedableWidgetHost *host() const
+        {
+          return m_host;
+        }
+
+      sigc::signal<void, const std::string &> signal_name_changed;
+      sigc::signal<void> signal_embeded;
+      sigc::signal<void> signal_unembeded;
+      sigc::signal<void> signal_foregrounded;
+      sigc::signal<void> signal_backgrounded;
+    private:
+      EmbedableWidgetHost *m_host;
+    };
+
 
   }
 }
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]