summaryrefslogtreecommitdiff
path: root/src/mdecoratorframe.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mdecoratorframe.h')
-rw-r--r--src/mdecoratorframe.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/src/mdecoratorframe.h b/src/mdecoratorframe.h
new file mode 100644
index 0000000..1d3013a
--- /dev/null
+++ b/src/mdecoratorframe.h
@@ -0,0 +1,97 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (directui@nokia.com)
+**
+** This file is part of mcompositor.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at directui@nokia.com.
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+#ifndef DUIDECORATORFRAME_H
+#define DUIDECORATORFRAME_H
+
+#include <QObject>
+
+class MCompositeWindow;
+class MRmiClient;
+
+/*!
+ * MDecoratorFrame is a singleton class that represents the decorator process
+ * which draws the decorations for non-DirectUI applications.
+ * This class handles the communication as well to the decorator.
+ */
+class MDecoratorFrame: public QObject
+{
+ Q_OBJECT
+public:
+
+ /*!
+ * Singleton accessor
+ */
+ static MDecoratorFrame *instance();
+
+ /*!
+ * Retuns the window id of the managed window.
+ */
+ Qt::HANDLE managedWindow() const;
+
+ /*!
+ * Returns the window id of the decorator window.
+ */
+ Qt::HANDLE winId() const;
+
+ /*!
+ * Activates the window
+ */
+ void activate();
+
+ /*!
+ * Lowers the decorator window.
+ */
+ void lower();
+
+ /*!
+ * Raises the decorator window.
+ */
+ void raise();
+
+ /*!
+ * Sets the managed window.
+ */
+ void setManagedWindow(Qt::HANDLE window);
+
+ /*!
+ * Sets the decorator window and maps that window if it is unmapped.
+ */
+ void setDecoratorWindow(Qt::HANDLE window);
+
+ void setDecoratorItem(MCompositeWindow *window);
+
+ MCompositeWindow *decoratorItem() const;
+
+private slots:
+ void destroyDecorator();
+ void destroyClient();
+ void visualizeDecorator(bool visible);
+
+private:
+ explicit MDecoratorFrame(QObject *object = 0);
+ static MDecoratorFrame *d;
+
+ Qt::HANDLE client;
+ Qt::HANDLE decorator_window;
+ MCompositeWindow *decorator_item;
+ MRmiClient *remote_decorator;
+};
+
+#endif // DUIDECORATORFRAME_H