summaryrefslogtreecommitdiffstats
path: root/kwin/clients/quartz/quartz.h
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit4aed2c8219774f5d797760606b8489a92ddc5163 (patch)
tree3f8c130f7d269626bf6a9447407ef6c35954426a /kwin/clients/quartz/quartz.h
downloadtdebase-4aed2c8219774f5d797760606b8489a92ddc5163.tar.gz
tdebase-4aed2c8219774f5d797760606b8489a92ddc5163.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kwin/clients/quartz/quartz.h')
-rw-r--r--kwin/clients/quartz/quartz.h95
1 files changed, 95 insertions, 0 deletions
diff --git a/kwin/clients/quartz/quartz.h b/kwin/clients/quartz/quartz.h
new file mode 100644
index 000000000..37f3dff6e
--- /dev/null
+++ b/kwin/clients/quartz/quartz.h
@@ -0,0 +1,95 @@
+/*
+ * Gallium-Quartz KWin client
+ *
+ * Copyright (C) 2005 Sandro Giessl <[email protected]>
+ * Copyright 2001
+ * Karol Szwed <[email protected]>
+ * http://gallium.n3.net/
+ *
+ * Based on the KDE default client.
+ *
+ * Includes mini titlebars for ToolWindow Support.
+ * Button positions are now customizable.
+ *
+ */
+
+#ifndef __KDEGALLIUM_QUARTZ_H
+#define __KDEGALLIUM_QUARTZ_H
+
+#include <qbitmap.h>
+#include <kpixmap.h>
+#include "../../lib/kcommondecoration.h"
+#include "../../lib/kdecorationfactory.h"
+
+class QSpacerItem;
+class QBoxLayout;
+
+namespace Quartz {
+
+class QuartzClient;
+
+class QuartzHandler: public QObject, public KDecorationFactory
+{
+ Q_OBJECT
+ public:
+ QuartzHandler();
+ ~QuartzHandler();
+
+ virtual KDecoration* createDecoration( KDecorationBridge* );
+ virtual bool reset(unsigned long changed);
+ virtual bool supports( Ability ability );
+ virtual QValueList< BorderSize > borderSizes() const;
+
+ private:
+ void readConfig();
+ void createPixmaps();
+ void freePixmaps();
+ void drawBlocks(KPixmap* pi, KPixmap &p, const QColor &c1, const QColor &c2);
+};
+
+
+class QuartzButton : public KCommonDecorationButton
+{
+ public:
+ QuartzButton(ButtonType type, QuartzClient *parent, const char *name);
+ ~QuartzButton();
+ void setBitmap(const unsigned char *bitmap);
+
+ void reset(unsigned long changed);
+
+ protected:
+ void drawButton(QPainter *p);
+
+ QBitmap* deco;
+};
+
+
+class QuartzClient : public KCommonDecoration
+{
+ public:
+ QuartzClient(KDecorationBridge* bridge, KDecorationFactory* factory);
+ ~QuartzClient() {;}
+
+ virtual QString visibleName() const;
+ virtual QString defaultButtonsLeft() const;
+ virtual QString defaultButtonsRight() const;
+ virtual bool decorationBehaviour(DecorationBehaviour behaviour) const;
+ virtual int layoutMetric(LayoutMetric lm, bool respectWindowState = true, const KCommonDecorationButton * = 0) const;
+ virtual KCommonDecorationButton *createButton(ButtonType type);
+
+ virtual void init();
+
+ protected:
+ virtual void reset( unsigned long changed );
+ void paintEvent( QPaintEvent* );
+
+ private:
+ int titleHeight, borderSize;
+ bool largeButtons;
+};
+
+}
+
+#endif
+// vim: ts=4
+// kate: space-indent off; tab-width 4;