summaryrefslogtreecommitdiffstats
path: root/subsurface-core
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2015-10-09 18:16:34 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-10-30 10:36:51 -0700
commit6930c689b7b5449a98f91430cbd96627050d8e2e (patch)
tree416e4626e4975d127e7a233ba4e104c88ee4cdd9 /subsurface-core
parentc1b2907071432f6a313605950fa95c8eff000a55 (diff)
downloadsubsurface-6930c689b7b5449a98f91430cbd96627050d8e2e.tar.gz
Add an interface for Social Network Interfaces
The Social Network plugins need an interface file to describe the expected behavior of it, this little header file will serve for that. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'subsurface-core')
-rw-r--r--subsurface-core/isocialnetworkintegration.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/subsurface-core/isocialnetworkintegration.h b/subsurface-core/isocialnetworkintegration.h
new file mode 100644
index 000000000..e20ab646f
--- /dev/null
+++ b/subsurface-core/isocialnetworkintegration.h
@@ -0,0 +1,67 @@
+#ifndef ISOCIALNETWORKINTEGRATION_H
+#define ISOCIALNETWORKINTEGRATION_H
+
+/* This Interface represents a Plugin for Social Network integration,
+ * with it you may be able to create plugins for facebook, instagram,
+ * twitpic, google plus and any other thing you may imagine.
+ *
+ * We bundle facebook integration as an example.
+ */
+
+class ISocialNetworkIntegration {
+ /*!
+ * @name socialNetworkName
+ * @brief The name of this social network
+ * @return The name of this social network
+ *
+ * The name of this social network will be used to populate the Menu to toggle states
+ * between connected/disconnected, and also submit stuff to it.
+ */
+ QString socialNetworkName() const = 0;
+
+ /*!
+ * @name socialNetworkIcon
+ * @brief The icon of this social network
+ * @return The icon of this social network
+ *
+ * The icon of this social network will be used to populate the menu, and can also be
+ * used on a toolbar if requested.
+ */
+ QIcon socialNetworkIcon() const = 0;
+
+ /*!
+ * @name isConnected
+ * @brief returns true if connected to this social network, false otherwise
+ * @return true if connected to this social network, false otherwise
+ */
+ bool isConnected() = 0;
+
+ /*!
+ * @name requestLogin
+ * @brief try to login on this social network.
+ *
+ * Try to login on this social network. All widget implementation that
+ * manages login should be done inside this function.
+ */
+ void requestLogin() = 0;
+
+ /*!
+ * @name requestLogoff
+ * @brief tries to logoff from this social network
+ *
+ * Try to logoff from this social network.
+ */
+ void requestLogoff() = 0;
+
+ /*!
+ * @name uploadCurrentDive
+ * @brief send the current dive info to the Social Network
+ *
+ * Should format all the options and pixmaps from the current dive
+ * to update to the social network. All widget stuff related to sendint
+ * dive information should be executed inside this function.
+ */
+ void uploadCurrentDive() = 0;
+};
+
+#endif \ No newline at end of file