[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]