Add support for dbusmenu
[quassel.git] / src / qtui / statusnotifieritemdbus.cpp
index 5e67e69..e359c45 100644 (file)
 #include "statusnotifierwatcher.h"
 #include "statusnotifieritemadaptor.h"
 
+#ifdef Q_OS_WIN64
+__inline int toInt(WId wid)
+{
+        return (int)((__int64)wid);
+}
+
+#else
+__inline int toInt(WId wid)
+{
+        return (int)wid;
+}
+#endif
+
 // Marshall the ImageStruct data into a D-BUS argument
 const QDBusArgument &operator<<(QDBusArgument &argument, const DBusImageStruct &icon)
 {
@@ -157,6 +170,11 @@ StatusNotifierItemDBus::~StatusNotifierItemDBus()
     unregisterService();
 }
 
+QDBusConnection StatusNotifierItemDBus::dbusConnection() const
+{
+    return m_dbus;
+}
+
 // FIXME: prevent double registrations, also test this on platforms != KDE
 //
 void StatusNotifierItemDBus::registerService()
@@ -204,7 +222,7 @@ QString StatusNotifierItemDBus::Status() const
 
 int StatusNotifierItemDBus::WindowId() const
 {
-    return (int)QtUi::mainWindow()->winId();
+    return toInt(QtUi::mainWindow()->winId());
 }
 
 
@@ -262,6 +280,19 @@ DBusToolTipStruct StatusNotifierItemDBus::ToolTip() const
     return toolTip;
 }
 
+QString StatusNotifierItemDBus::IconThemePath() const
+{
+    return m_statusNotifierItem->iconThemePath();
+}
+
+//Menu
+
+QDBusObjectPath StatusNotifierItemDBus::Menu() const
+{
+    return QDBusObjectPath(m_statusNotifierItem->menuObjectPath());
+}
+
+
 //Interaction
 
 void StatusNotifierItemDBus::ContextMenu(int x, int y)