summaryrefslogtreecommitdiffstats
path: root/malloryclient/pixmaps.cpp
diff options
context:
space:
mode:
authorMavridis Philippe <[email protected]>2024-10-03 20:32:40 +0300
committerMavridis Philippe <[email protected]>2024-10-03 20:32:40 +0300
commit19097d1bb96f8d52743121fb8f00d90029f1dfc0 (patch)
tree30a179f283f71a8bb8e6f9db9c9b3a3ce9198376 /malloryclient/pixmaps.cpp
downloadtwin-style-mallory-19097d1bb96f8d52743121fb8f00d90029f1dfc0.tar.gz
twin-style-mallory-19097d1bb96f8d52743121fb8f00d90029f1dfc0.zip
Initial commit
Sourced from https://www.pling.com/p/1100385 Signed-off-by: Mavridis Philippe <[email protected]>
Diffstat (limited to 'malloryclient/pixmaps.cpp')
-rw-r--r--malloryclient/pixmaps.cpp925
1 files changed, 925 insertions, 0 deletions
diff --git a/malloryclient/pixmaps.cpp b/malloryclient/pixmaps.cpp
new file mode 100644
index 0000000..f32e45c
--- /dev/null
+++ b/malloryclient/pixmaps.cpp
@@ -0,0 +1,925 @@
+//
+// C++ Implementation: pixmaps
+//
+// Description:
+//
+//
+// Author: Remi Villatel <[email protected]>, (C) 2005
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+
+#include "pixmaps.h"
+#include "malloryhandler.h"
+
+#include <kdecoration.h>
+#include <qpainter.h>
+#include <kpixmapeffect.h>
+#include <kpixmap.h>
+#include <kpixmapio.h>
+#include <qimage.h>
+#include <qpixmap.h>
+
+// Static declarations for linking.
+QPixmap *Pixmaps::active_button_ground = 0;
+QPixmap *Pixmaps::inactive_button_ground = 0;
+
+QImage *Pixmaps::active_help_normal = 0;
+QImage *Pixmaps::active_max_normal = 0;
+QImage *Pixmaps::active_restore_normal = 0;
+QImage *Pixmaps::active_min_normal = 0;
+QImage *Pixmaps::active_close_normal = 0;
+QImage *Pixmaps::active_sticky_normal = 0;
+QImage *Pixmaps::active_unsticky_normal = 0;
+QImage *Pixmaps::active_above_normal = 0;
+QImage *Pixmaps::active_below_normal = 0;
+
+QImage *Pixmaps::active_help_hover = 0;
+QImage *Pixmaps::active_max_hover = 0;
+QImage *Pixmaps::active_restore_hover = 0;
+QImage *Pixmaps::active_min_hover = 0;
+QImage *Pixmaps::active_close_hover = 0;
+QImage *Pixmaps::active_sticky_hover = 0;
+QImage *Pixmaps::active_unsticky_hover = 0;
+QImage *Pixmaps::active_above_hover = 0;
+QImage *Pixmaps::active_below_hover = 0;
+
+QImage *Pixmaps::active_help_sunken = 0;
+QImage *Pixmaps::active_max_sunken = 0;
+QImage *Pixmaps::active_restore_sunken = 0;
+QImage *Pixmaps::active_min_sunken = 0;
+QImage *Pixmaps::active_close_sunken = 0;
+QImage *Pixmaps::active_sticky_sunken = 0;
+QImage *Pixmaps::active_unsticky_sunken = 0;
+QImage *Pixmaps::active_above_sunken = 0;
+QImage *Pixmaps::active_below_sunken = 0;
+
+QImage *Pixmaps::inactive_help_normal = 0;
+QImage *Pixmaps::inactive_max_normal = 0;
+QImage *Pixmaps::inactive_restore_normal = 0;
+QImage *Pixmaps::inactive_min_normal = 0;
+QImage *Pixmaps::inactive_close_normal = 0;
+QImage *Pixmaps::inactive_sticky_normal = 0;
+QImage *Pixmaps::inactive_unsticky_normal = 0;
+QImage *Pixmaps::inactive_above_normal = 0;
+QImage *Pixmaps::inactive_below_normal = 0;
+
+QImage *Pixmaps::inactive_help_hover = 0;
+QImage *Pixmaps::inactive_max_hover = 0;
+QImage *Pixmaps::inactive_restore_hover = 0;
+QImage *Pixmaps::inactive_min_hover = 0;
+QImage *Pixmaps::inactive_close_hover = 0;
+QImage *Pixmaps::inactive_sticky_hover = 0;
+QImage *Pixmaps::inactive_unsticky_hover = 0;
+QImage *Pixmaps::inactive_above_hover = 0;
+QImage *Pixmaps::inactive_below_hover = 0;
+
+QImage *Pixmaps::inactive_help_sunken = 0;
+QImage *Pixmaps::inactive_max_sunken = 0;
+QImage *Pixmaps::inactive_restore_sunken = 0;
+QImage *Pixmaps::inactive_min_sunken = 0;
+QImage *Pixmaps::inactive_close_sunken = 0;
+QImage *Pixmaps::inactive_sticky_sunken = 0;
+QImage *Pixmaps::inactive_unsticky_sunken = 0;
+QImage *Pixmaps::inactive_above_sunken = 0;
+QImage *Pixmaps::inactive_below_sunken = 0;
+
+QPixmap *Pixmaps::active_titlebar = 0;
+QPixmap *Pixmaps::active_titlebar_left = 0;
+QPixmap *Pixmaps::active_titlebar_right = 0;
+QPixmap *Pixmaps::inactive_titlebar = 0;
+QPixmap *Pixmaps::inactive_titlebar_left = 0;
+QPixmap *Pixmaps::inactive_titlebar_right = 0;
+
+bool Pixmaps::pixmapsCreated = false;
+
+//
+static int round_help[] = {
+0xF,0xF,0xF,0x8,0x4,0x0,0x0,0x4,0x8,0xF,0xF,0xF,
+0xF,0xF,0x4,0x0,0x0,0x8,0x8,0x0,0x0,0x4,0xF,0xF,
+0xF,0x8,0x0,0x4,0xF,0xF,0xF,0xF,0x4,0x0,0x8,0xF,
+0xF,0x0,0x0,0xF,0xF,0xF,0xF,0xF,0xF,0x0,0x0,0xF,
+0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,0x0,0xF,
+0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x4,0x0,0x8,0xF,
+0xF,0xF,0xF,0xF,0xF,0xF,0x8,0x0,0x0,0x4,0xF,0xF,
+0xF,0xF,0xF,0xF,0xF,0xF,0x0,0x4,0x8,0xF,0xF,0xF,
+0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,
+0xF,0xF,0xF,0xF,0xC,0x0,0x0,0xC,0xF,0xF,0xF,0xF,
+0xF,0xF,0xF,0xF,0x8,0x0,0x0,0x8,0xF,0xF,0xF,0xF,
+0xF,0xF,0xF,0xF,0xC,0x0,0x0,0xC,0xF,0xF,0xF,0xF
+};
+//
+static int round_max[] = {
+0xF,0xF,0xF,0xC,0x4,0x0,0x0,0x4,0xC,0xF,0xF,0xF,
+0xF,0xF,0x4,0x0,0x6,0xC,0x8,0x4,0x0,0x4,0xF,0xF,
+0xF,0x4,0x3,0xC,0xC,0x6,0x4,0xE,0xE,0x4,0x4,0xF,
+0xC,0x0,0xC,0xC,0xC,0x0,0xC,0xF,0xF,0xE,0x0,0xC,
+0x4,0x6,0xC,0xC,0xC,0x0,0xC,0xF,0xF,0xE,0x4,0x4,
+0x0,0xC,0xC,0xC,0xC,0x6,0x4,0xC,0xC,0x4,0x8,0x0,
+0x0,0xC,0xC,0xC,0xC,0xC,0x6,0x0,0x0,0x6,0xC,0x0,
+0x4,0x6,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0x6,0x4,
+0xC,0x0,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0x0,0xC,
+0xF,0x4,0x3,0xC,0xC,0xC,0xC,0xC,0xC,0x3,0x4,0xF,
+0xF,0xF,0x4,0x0,0x6,0xC,0xC,0x6,0x0,0x4,0xF,0xF,
+0xF,0xF,0xF,0xC,0x4,0x0,0x0,0x4,0xC,0xF,0xF,0xF
+};
+//
+static int round_restore[] = {
+0xF,0xF,0xF,0xC,0x4,0x0,0x0,0x4,0xC,0xF,0xF,0xF,
+0xF,0xF,0x4,0x0,0x8,0xF,0xF,0x8,0x0,0x4,0xF,0xF,
+0xF,0x4,0x4,0xF,0xF,0xF,0xF,0xF,0xF,0x4,0x4,0xF,
+0xC,0x0,0xF,0xF,0x8,0x0,0x0,0x8,0xF,0xF,0x0,0xC,
+0x4,0x8,0xF,0x8,0x4,0xC,0xC,0x4,0x8,0xF,0x8,0x4,
+0x0,0xF,0xF,0x0,0xC,0xF,0xF,0xC,0x0,0xF,0xF,0x0,
+0x0,0xF,0xF,0x0,0xC,0xF,0xF,0xC,0x0,0xF,0xF,0x0,
+0x4,0x8,0xF,0x8,0x4,0xC,0xC,0x4,0x8,0xF,0x8,0x4,
+0xC,0x0,0xF,0xF,0x8,0x0,0x0,0x8,0xF,0xF,0x0,0xC,
+0xF,0x4,0x4,0xF,0xF,0xF,0xF,0xF,0xF,0x4,0x4,0xF,
+0xF,0xF,0x4,0x0,0x8,0xF,0xF,0x8,0x0,0x4,0xF,0xF,
+0xF,0xF,0xF,0xC,0x4,0x0,0x0,0x4,0xC,0xF,0xF,0xF
+};
+//
+static int round_min[] = {
+0xF,0xF,0xF,0xC,0x4,0x0,0x0,0x4,0xC,0xF,0xF,0xF,
+0xF,0xF,0x4,0x4,0x8,0xF,0xF,0x8,0x4,0x4,0xF,0xF,
+0xF,0x4,0x4,0xF,0xF,0xF,0xF,0xF,0xF,0x4,0x4,0xF,
+0xC,0x4,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x4,0xC,
+0x4,0x8,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x8,0x4,
+0x0,0xF,0x8,0x0,0x0,0x8,0xF,0xF,0xF,0xF,0xF,0x0,
+0x2,0x8,0x3,0x9,0x9,0x3,0x8,0xF,0xF,0xF,0xF,0x0,
+0xA,0x0,0x9,0xC,0xC,0x9,0x0,0xF,0xF,0xF,0x8,0x4,
+0xE,0x0,0x9,0xC,0xC,0x9,0x0,0xF,0xF,0xF,0x4,0xC,
+0xF,0x6,0x3,0x9,0x9,0x3,0x8,0xF,0xF,0x4,0x4,0xF,
+0xF,0xF,0x6,0x0,0x0,0x8,0xF,0x8,0x4,0x4,0xF,0xF,
+0xF,0xF,0xF,0xE,0xA,0x2,0x0,0x4,0xC,0xF,0xF,0xF
+};
+//
+static int round_close[] = {
+0xF,0xF,0xF,0xC,0x4,0x0,0x0,0x4,0xC,0xF,0xF,0xF,
+0xF,0xF,0x4,0x0,0x6,0xC,0xC,0x6,0x0,0x4,0xF,0xF,
+0xF,0x4,0x3,0xC,0xC,0xC,0xC,0xC,0xC,0x3,0x4,0xF,
+0xC,0x0,0xC,0x3,0x9,0xC,0xC,0x9,0x3,0xC,0x0,0xC,
+0x4,0x6,0xC,0x9,0x0,0x9,0x9,0x0,0x9,0xC,0x6,0x4,
+0x0,0xC,0xC,0xC,0x9,0x0,0x0,0x9,0xC,0xC,0xC,0x0,
+0x0,0xC,0xC,0xC,0x9,0x0,0x0,0x9,0xC,0xC,0xC,0x0,
+0x4,0x6,0xC,0x9,0x0,0x9,0x9,0x0,0x9,0xC,0x6,0x4,
+0xC,0x0,0xC,0x3,0x9,0xC,0xC,0x9,0x3,0xC,0x0,0xC,
+0xF,0x4,0x3,0xC,0xC,0xC,0xC,0xC,0xC,0x3,0x4,0xF,
+0xF,0xF,0x4,0x0,0x6,0xC,0xC,0x6,0x0,0x4,0xF,0xF,
+0xF,0xF,0xF,0xC,0x4,0x0,0x0,0x4,0xC,0xF,0xF,0xF
+};
+//
+static int round_sticky[] = {
+0xF,0xF,0xF,0xC,0x4,0x0,0x0,0x4,0xC,0xF,0xF,0xF,
+0xF,0xF,0x4,0x0,0x8,0xF,0xF,0x8,0x0,0x4,0xF,0xF,
+0xF,0x4,0x4,0xF,0xF,0xF,0xF,0xF,0xF,0x4,0x4,0xF,
+0xC,0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,0xC,
+0x4,0x8,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x8,0x4,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x4,0x8,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x8,0x4,
+0xC,0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,0xC,
+0xF,0x4,0x4,0xF,0xF,0xF,0xF,0xF,0xF,0x4,0x4,0xF,
+0xF,0xF,0x4,0x0,0x8,0xF,0xF,0x8,0x0,0x4,0xF,0xF,
+0xF,0xF,0xF,0xC,0x4,0x0,0x0,0x4,0xC,0xF,0xF,0xF
+};
+//
+static int round_unsticky[] = {
+0xF,0xF,0xF,0xC,0x4,0x0,0x0,0x4,0xC,0xF,0xF,0xF,
+0xF,0xF,0x4,0x0,0x8,0xF,0xF,0x8,0x0,0x4,0xF,0xF,
+0xF,0x4,0x4,0xF,0xC,0x0,0x0,0xC,0xF,0x4,0x4,0xF,
+0xC,0x0,0xF,0xF,0x8,0x6,0x6,0x8,0xF,0xF,0x0,0xC,
+0x4,0x8,0xC,0x8,0x4,0x6,0x6,0x4,0x8,0xC,0x8,0x4,
+0x0,0xF,0x0,0x6,0x6,0x9,0x9,0x6,0x6,0x0,0xF,0x0,
+0x0,0xF,0x0,0x6,0x6,0x9,0x9,0x6,0x6,0x0,0xF,0x0,
+0x4,0x8,0xC,0x8,0x4,0x6,0x6,0x4,0x8,0xC,0x8,0x4,
+0xC,0x0,0xF,0xF,0x8,0x6,0x6,0x8,0xF,0xF,0x0,0xC,
+0xF,0x4,0x4,0xF,0xC,0x0,0x0,0xC,0xF,0x4,0x4,0xF,
+0xF,0xF,0x4,0x0,0x8,0xF,0xF,0x8,0x0,0x4,0xF,0xF,
+0xF,0xF,0xF,0xC,0x4,0x0,0x0,0x4,0xC,0xF,0xF,0xF
+};
+//
+static int round_above[] = {
+0xF,0xF,0xF,0xC,0x4,0x0,0x0,0x4,0xC,0xF,0xF,0xF,
+0xF,0xF,0x4,0x0,0x8,0xF,0xF,0x8,0x0,0x4,0xF,0xF,
+0xF,0x4,0x4,0xF,0xF,0xC,0xC,0xF,0xF,0x4,0x4,0xF,
+0xC,0x0,0xF,0xF,0xF,0x4,0x4,0xF,0xF,0xF,0x0,0xC,
+0x4,0x8,0xF,0xF,0xC,0x0,0x0,0xC,0xF,0xF,0x8,0x4,
+0x0,0xF,0xF,0xF,0x4,0x0,0x0,0x4,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xC,0x0,0x0,0x0,0x0,0xC,0xF,0xF,0x0,
+0x4,0x8,0xF,0x4,0x0,0x0,0x0,0x0,0x4,0xF,0x8,0x4,
+0xC,0x0,0xF,0x8,0x8,0x8,0x8,0x8,0x8,0xF,0x0,0xC,
+0xF,0x4,0x4,0xF,0xF,0xF,0xF,0xF,0xF,0x4,0x4,0xF,
+0xF,0xF,0x4,0x0,0x8,0xF,0xF,0x8,0x0,0x4,0xF,0xF,
+0xF,0xF,0xF,0xC,0x4,0x0,0x0,0x4,0xC,0xF,0xF,0xF
+};
+//
+static int round_below[] = {
+0xF,0xF,0xF,0xC,0x4,0x0,0x0,0x4,0xC,0xF,0xF,0xF,
+0xF,0xF,0x4,0x0,0x8,0xF,0xF,0x8,0x0,0x4,0xF,0xF,
+0xF,0x4,0x4,0xF,0xF,0xF,0xF,0xF,0xF,0x4,0x4,0xF,
+0xC,0x0,0xF,0x8,0x8,0x8,0x8,0x8,0x8,0xF,0x0,0xC,
+0x4,0x8,0xF,0x4,0x0,0x0,0x0,0x0,0x4,0xF,0x8,0x4,
+0x0,0xF,0xF,0xC,0x0,0x0,0x0,0x0,0xC,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0x4,0x0,0x0,0x4,0xF,0xF,0xF,0x0,
+0x4,0x8,0xF,0xF,0xC,0x0,0x0,0xC,0xF,0xF,0x8,0x4,
+0xC,0x0,0xF,0xF,0xF,0x4,0x4,0xF,0xF,0xF,0x0,0xC,
+0xF,0x4,0x4,0xF,0xF,0xC,0xC,0xF,0xF,0x4,0x4,0xF,
+0xF,0xF,0x4,0x0,0x8,0xF,0xF,0x8,0x0,0x4,0xF,0xF,
+0xF,0xF,0xF,0xC,0x4,0x0,0x0,0x4,0xC,0xF,0xF,0xF
+};
+
+//
+static int square_help[] = {
+0xF,0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC,0xF,
+0xF,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xF,
+0xF,0x0,0x0,0xC,0xF,0xF,0xF,0xF,0xC,0x0,0x0,0xF,
+0xF,0x4,0x4,0xF,0xF,0xF,0xF,0xF,0xF,0x0,0x0,0xF,
+0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,0x0,0xF,
+0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xC,0x0,0x0,0xF,
+0xF,0xF,0xF,0xF,0xC,0x0,0x0,0x0,0x0,0x0,0x0,0xF,
+0xF,0xF,0xF,0xF,0xC,0x0,0x0,0x0,0x0,0x0,0xC,0xF,
+0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,
+0xF,0xF,0xF,0xF,0xC,0x0,0x0,0xC,0xF,0xF,0xF,0xF,
+0xF,0xF,0xF,0xF,0x8,0x0,0x0,0x8,0xF,0xF,0xF,0xF,
+0xF,0xF,0xF,0xF,0xC,0x0,0x0,0xC,0xF,0xF,0xF,0xF
+};
+//
+static int square_max[] = {
+0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,
+0x0,0x9,0xC,0xC,0xC,0xC,0x8,0xF,0xF,0xF,0xC,0x0,
+0x0,0xC,0xC,0xC,0xC,0xC,0x0,0xF,0xF,0xF,0xF,0x0,
+0x0,0xC,0xC,0xC,0xC,0xC,0x0,0xF,0xF,0xF,0xF,0x0,
+0x0,0xC,0xC,0xC,0xC,0xC,0x0,0xF,0xF,0xF,0xF,0x0,
+0x0,0xC,0xC,0xC,0xC,0xC,0x3,0x0,0x0,0x0,0x8,0x0,
+0x0,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0x0,
+0x0,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0x0,
+0x0,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0x0,
+0x0,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0x0,
+0x0,0x9,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0x9,0x0,
+0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC
+};
+//
+static int square_restore[] = {
+0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC,
+0x0,0xC,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xC,0x0,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0x4,0x0,0x0,0x0,0x0,0x4,0xF,0xF,0x0,
+0x0,0xF,0xF,0x0,0xF,0xF,0xF,0xF,0x0,0xF,0xF,0x0,
+0x0,0xF,0xF,0x0,0xF,0xF,0xF,0xF,0x0,0xF,0xF,0x0,
+0x0,0xF,0xF,0x0,0xF,0xF,0xF,0xF,0x0,0xF,0xF,0x0,
+0x0,0xF,0xF,0x0,0xF,0xF,0xF,0xF,0x0,0xF,0xF,0x0,
+0x0,0xF,0xF,0x4,0x0,0x0,0x0,0x0,0x4,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xC,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xC,0x0,
+0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC
+};
+//
+static int square_min[] = {
+0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC,
+0x0,0xC,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xC,0x0,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x8,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x2,0x0,0x0,0x0,0x0,0x4,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xC,0xC,0xC,0xC,0x0,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xC,0xC,0xC,0xC,0x0,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xC,0xC,0xC,0xC,0x0,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xB,0xC,0xC,0xC,0x0,0xF,0xF,0xF,0xF,0xC,0x0,
+0x4,0x0,0x0,0x0,0x0,0x2,0x8,0x0,0x0,0x0,0x0,0xC
+};
+//
+static int square_close[] = {
+0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC,
+0x0,0x9,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0x9,0x0,
+0x0,0xC,0xC,0x6,0xC,0xC,0xC,0xC,0x6,0xC,0xC,0x0,
+0x0,0xC,0x6,0x0,0x3,0xC,0xC,0x3,0x0,0x6,0xC,0x0,
+0x0,0xC,0xC,0x3,0x0,0x3,0x3,0x0,0x3,0xC,0xC,0x0,
+0x0,0xC,0xC,0xC,0x3,0x0,0x0,0x3,0xC,0xC,0xC,0x0,
+0x0,0xC,0xC,0xC,0x3,0x0,0x0,0x3,0xC,0xC,0xC,0x0,
+0x0,0xC,0xC,0x3,0x0,0x3,0x3,0x0,0x3,0xC,0xC,0x0,
+0x0,0xC,0x6,0x0,0x3,0xC,0xC,0x3,0x0,0x6,0xC,0x0,
+0x0,0xC,0xC,0x6,0xC,0xC,0xC,0xC,0x6,0xC,0xC,0x0,
+0x0,0x9,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0xC,0x9,0x0,
+0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC
+};
+//
+static int square_sticky[] = {
+0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC,
+0x0,0xC,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xC,0x0,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xC,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xC,0x0,
+0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC
+};
+//
+static int square_unsticky[] = {
+0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC,
+0x0,0xC,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xC,0x0,
+0x0,0xF,0xF,0xF,0xC,0x0,0x0,0xC,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0x8,0x6,0x6,0x8,0xF,0xF,0xF,0x0,
+0x0,0xF,0xC,0x8,0x4,0x6,0x6,0x4,0x8,0xC,0xF,0x0,
+0x0,0xF,0x0,0x6,0x6,0x9,0x9,0x6,0x6,0x0,0xF,0x0,
+0x0,0xF,0x0,0x6,0x6,0x9,0x9,0x6,0x6,0x0,0xF,0x0,
+0x0,0xF,0xC,0x8,0x4,0x6,0x6,0x4,0x8,0xC,0xF,0x0,
+0x0,0xF,0xF,0xF,0x8,0x6,0x6,0x8,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xC,0x0,0x0,0xC,0xF,0xF,0xF,0x0,
+0x0,0xC,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xC,0x0,
+0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC
+};
+//
+static int square_above[] = {
+0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC,
+0x0,0xC,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xC,0x0,
+0x0,0xF,0xF,0xF,0xF,0xC,0xC,0xF,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xF,0x4,0x4,0xF,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xC,0x0,0x0,0xC,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0x4,0x0,0x0,0x4,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xC,0x0,0x0,0x0,0x0,0xC,0xF,0xF,0x0,
+0x0,0xF,0xF,0x4,0x0,0x0,0x0,0x0,0x4,0xF,0xF,0x0,
+0x0,0xF,0xF,0x8,0x8,0x8,0x8,0x8,0x8,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xC,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xC,0x0,
+0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC
+};
+//
+static int square_below[] = {
+0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC,
+0x0,0xC,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xC,0x0,
+0x0,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0x8,0x8,0x8,0x8,0x8,0x8,0xF,0xF,0x0,
+0x0,0xF,0xF,0x4,0x0,0x0,0x0,0x0,0x4,0xF,0xF,0x0,
+0x0,0xF,0xF,0xC,0x0,0x0,0x0,0x0,0xC,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0x4,0x0,0x0,0x4,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xC,0x0,0x0,0xC,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xF,0x4,0x4,0xF,0xF,0xF,0xF,0x0,
+0x0,0xF,0xF,0xF,0xF,0xC,0xC,0xF,0xF,0xF,0xF,0x0,
+0x0,0xC,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xF,0xC,0x0,
+0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xC
+};
+
+void Pixmaps::createPixmaps()
+{
+ if (pixmapsCreated)
+ return;
+
+ static int *alias_help;
+ static int *alias_max;
+ static int *alias_restore;
+ static int *alias_min;
+ static int *alias_close;
+ static int *alias_sticky;
+ static int *alias_unsticky;
+ static int *alias_above;
+ static int *alias_below;
+
+ if (MalloryHandler::buttonStyle() == 1)
+ {
+ alias_help = square_help;
+ alias_max = square_max;
+ alias_restore = square_restore;
+ alias_min = square_min;
+ alias_close = square_close;
+ alias_sticky = square_sticky;
+ alias_unsticky = square_unsticky;
+ alias_above = square_above;
+ alias_below = square_below;
+ }
+ else
+ {
+ alias_help = round_help;
+ alias_max = round_max;
+ alias_restore = round_restore;
+ alias_min = round_min;
+ alias_close = round_close;
+ alias_sticky = round_sticky;
+ alias_unsticky = round_unsticky;
+ alias_above = round_above;
+ alias_below = round_below;
+ }
+
+ QColor aColor = KDecoration::options()->color(KDecoration::ColorTitleBar, true);
+ QColor aColorBlend = KDecoration::options()->color(KDecoration::ColorTitleBlend, true);
+ QColor iColor = KDecoration::options()->color(KDecoration::ColorTitleBar, false);
+ QColor iColorBlend = KDecoration::options()->color(KDecoration::ColorTitleBlend, false);
+
+ QColor aBrite = KDecoration::options()->color(KDecoration::ColorFont, true);
+ QColor aShade = KDecoration::options()->color(KDecoration::ColorButtonBg, true);
+ QColor iBrite = KDecoration::options()->color(KDecoration::ColorFont, false);
+ QColor iShade = KDecoration::options()->color(KDecoration::ColorButtonBg, false);
+
+ QColor aHandle = KDecoration::options()->color(KDecoration::ColorHandle, true);
+ QColor iHandle = KDecoration::options()->color(KDecoration::ColorHandle, false);
+
+ QColor aFrame = KDecoration::options()->color(KDecoration::ColorFrame, true);
+ QColor iFrame = KDecoration::options()->color(KDecoration::ColorFrame, false);
+
+ int buttonSize = MalloryHandler::buttonSize();
+ int titleSize = MalloryHandler::titleSize();
+ int titleShadow = MalloryHandler::titleShadowSize();
+
+ if (!MalloryHandler::titleShadow()) // If shadow is disabled,
+ titleShadow = 0; // do something special!
+
+ QPainter painter;
+ KPixmap tempPixmap;
+
+ // Let's begin with the title bar.
+ active_titlebar = new QPixmap(1, titleSize);
+ painter.begin(active_titlebar);
+ tempPixmap.resize(1, titleSize);
+ KPixmapEffect::gradient(tempPixmap, aColor, aColorBlend, KPixmapEffect::VerticalGradient);
+ painter.drawPixmap(0, 0, tempPixmap);
+ painter.end();
+
+ inactive_titlebar = new QPixmap(1, titleSize);
+ painter.begin(inactive_titlebar);
+ tempPixmap.resize(1, titleSize);
+ KPixmapEffect::gradient(tempPixmap, iColor, iColorBlend, KPixmapEffect::VerticalGradient);
+ painter.drawPixmap(0, 0, tempPixmap);
+ painter.end();
+
+ active_titlebar_left = new QPixmap(1, titleSize);
+ painter.begin(active_titlebar_left);
+ tempPixmap.resize(1, titleSize);
+ KPixmapEffect::gradient(tempPixmap, aColor, aColorBlend, KPixmapEffect::VerticalGradient);
+ painter.drawPixmap(0, 0, tempPixmap);
+ painter.end();
+
+ inactive_titlebar_left = new QPixmap(1, titleSize);
+ painter.begin(inactive_titlebar_left);
+ tempPixmap.resize(1, titleSize);
+ KPixmapEffect::gradient(tempPixmap, iColor, iColorBlend, KPixmapEffect::VerticalGradient);
+ painter.drawPixmap(0, 0, tempPixmap);
+ painter.end();
+
+ active_titlebar_right = new QPixmap(1, titleSize);
+ painter.begin(active_titlebar_right);
+ tempPixmap.resize(1, titleSize);
+ KPixmapEffect::gradient(tempPixmap, aColor, aColorBlend, KPixmapEffect::VerticalGradient);
+ painter.drawPixmap(0, 0, tempPixmap);
+ painter.end();
+
+ inactive_titlebar_right = new QPixmap(1, titleSize);
+ painter.begin(inactive_titlebar_right);
+ tempPixmap.resize(1, titleSize);
+ KPixmapEffect::gradient(tempPixmap, iColor, iColorBlend, KPixmapEffect::VerticalGradient);
+ painter.drawPixmap(0, 0, tempPixmap);
+ painter.end();
+
+ // Let's create the button background.
+ active_button_ground = new QPixmap(buttonSize, buttonSize);
+ painter.begin(active_button_ground);
+ drawGround(&painter, true);
+ painter.end();
+ inactive_button_ground = new QPixmap(buttonSize, buttonSize);
+ painter.begin(inactive_button_ground);
+ drawGround(&painter, false);
+ painter.end();
+
+ // Now, let's create the button icons!
+ int off = (buttonSize-16)/2;
+ QPainter ikon;
+ QImage *aGround = new QImage();
+ QImage *iGround = new QImage();
+ QPixmap *tempGround = new QPixmap(16, 16);
+ ikon.begin(tempGround);
+ ikon.drawPixmap(0, 0, *active_button_ground, off, off, 16, 16);
+ *aGround = tempGround->convertToImage();
+ *aGround = aGround->convertDepth(32);
+ ikon.drawPixmap(0, 0, *inactive_button_ground, off, off, 16, 16);
+ *iGround = tempGround->convertToImage();
+ *iGround = iGround->convertDepth(32);
+ ikon.end();
+ int abr, abg, abb, asr, asg, asb;
+ int ibr, ibg, ibb, isr, isg, isb;
+ aBrite.getRgb(&abr, &abg, &abb);
+ aShade.getRgb(&asr, &asg, &asb);
+ iBrite.getRgb(&ibr, &ibg, &ibb);
+ iShade.getRgb(&isr, &isg, &isb);
+ // Lotsa work to do.
+ // Zero...
+ active_help_normal = new QImage(16, 16, 32);
+ bitBlt(active_help_normal, 0, 0, aGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_help, *active_help_normal, asr, asg, asb, titleShadow+1);
+ unicity(alias_help, *active_help_normal, abr, abg, abb, 1);
+ active_help_hover = new QImage(16, 16, 32);
+ bitBlt(active_help_hover, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_help, *active_help_hover, asr, asg, asb, titleShadow+1);
+ unicity(alias_help, *active_help_hover, abr, abg, abb, 0);
+ active_help_sunken = new QImage(16, 16, 32);
+ bitBlt(active_help_sunken, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_help, *active_help_sunken, abr, abg, abb, 2);
+ inactive_help_normal = new QImage(16, 16, 32);
+ bitBlt(inactive_help_normal, 0, 0, iGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_help, *inactive_help_normal, isr, isg, isb, titleShadow+1);
+ unicity(alias_help, *inactive_help_normal, ibr, ibg, ibb, 1);
+ inactive_help_hover = new QImage(16, 16, 32);
+ bitBlt(inactive_help_hover, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_help, *inactive_help_hover, isr, isg, isb, titleShadow+1);
+ unicity(alias_help, *inactive_help_hover, ibr, ibg, ibb, 0);
+ inactive_help_sunken = new QImage(16, 16, 32);
+ bitBlt(inactive_help_sunken, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_help, *inactive_help_sunken, ibr, ibg, ibb, 2);
+ // Six...
+ active_max_normal = new QImage(16, 16, 32);
+ bitBlt(active_max_normal, 0, 0, aGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_max, *active_max_normal, asr, asg, asb, titleShadow+1);
+ unicity(alias_max, *active_max_normal, abr, abg, abb, 1);
+ active_max_hover = new QImage(16, 16, 32);
+ bitBlt(active_max_hover, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_max, *active_max_hover, asr, asg, asb, titleShadow+1);
+ unicity(alias_max, *active_max_hover, abr, abg, abb, 0);
+ active_max_sunken = new QImage(16, 16, 32);
+ bitBlt(active_max_sunken, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_max, *active_max_sunken, abr, abg, abb, 2);
+ inactive_max_normal = new QImage(16, 16, 32);
+ bitBlt(inactive_max_normal, 0, 0, iGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_max, *inactive_max_normal, isr, isg, isb, titleShadow+1);
+ unicity(alias_max, *inactive_max_normal, ibr, ibg, ibb, 1);
+ inactive_max_hover = new QImage(16, 16, 32);
+ bitBlt(inactive_max_hover, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_max, *inactive_max_hover, isr, isg, isb, titleShadow+1);
+ unicity(alias_max, *inactive_max_hover, ibr, ibg, ibb, 0);
+ inactive_max_sunken = new QImage(16, 16, 32);
+ bitBlt(inactive_max_sunken, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_max, *inactive_max_sunken, ibr, ibg, ibb, 2);
+ // Twelve...
+ active_restore_normal = new QImage(16, 16, 32);
+ bitBlt(active_restore_normal, 0, 0, aGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_restore, *active_restore_normal, asr, asg, asb, titleShadow+1);
+ unicity(alias_restore, *active_restore_normal, abr, abg, abb, 1);
+ active_restore_hover = new QImage(16, 16, 32);
+ bitBlt(active_restore_hover, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_restore, *active_restore_hover, asr, asg, asb, titleShadow+1);
+ unicity(alias_restore, *active_restore_hover, abr, abg, abb, 0);
+ active_restore_sunken = new QImage(16, 16, 32);
+ bitBlt(active_restore_sunken, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_restore, *active_restore_sunken, abr, abg, abb, 2);
+ inactive_restore_normal = new QImage(16, 16, 32);
+ bitBlt(inactive_restore_normal, 0, 0, iGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_restore, *inactive_restore_normal, isr, isg, isb, titleShadow+1);
+ unicity(alias_restore, *inactive_restore_normal, ibr, ibg, ibb, 1);
+ inactive_restore_hover = new QImage(16, 16, 32);
+ bitBlt(inactive_restore_hover, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_restore, *inactive_restore_hover, isr, isg, isb, titleShadow+1);
+ unicity(alias_restore, *inactive_restore_hover, ibr, ibg, ibb, 0);
+ inactive_restore_sunken = new QImage(16, 16, 32);
+ bitBlt(inactive_restore_sunken, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_restore, *inactive_restore_sunken, ibr, ibg, ibb, 2);
+ // Eighteen
+ active_min_normal = new QImage(16, 16, 32);
+ bitBlt(active_min_normal, 0, 0, aGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_min, *active_min_normal, asr, asg, asb, titleShadow+1);
+ unicity(alias_min, *active_min_normal, abr, abg, abb, 1);
+ active_min_hover = new QImage(16, 16, 32);
+ bitBlt(active_min_hover, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_min, *active_min_hover, asr, asg, asb, titleShadow+1);
+ unicity(alias_min, *active_min_hover, abr, abg, abb, 0);
+ active_min_sunken = new QImage(16, 16, 32);
+ bitBlt(active_min_sunken, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_min, *active_min_sunken, abr, abg, abb, 2);
+ inactive_min_normal = new QImage(16, 16, 32);
+ bitBlt(inactive_min_normal, 0, 0, iGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_min, *inactive_min_normal, isr, isg, isb, titleShadow+1);
+ unicity(alias_min, *inactive_min_normal, ibr, ibg, ibb, 1);
+ inactive_min_hover = new QImage(16, 16, 32);
+ bitBlt(inactive_min_hover, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_min, *inactive_min_hover, isr, isg, isb, titleShadow+1);
+ unicity(alias_min, *inactive_min_hover, ibr, ibg, ibb, 0);
+ inactive_min_sunken = new QImage(16, 16, 32);
+ bitBlt(inactive_min_sunken, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_min, *inactive_min_sunken, ibr, ibg, ibb, 2);
+ // Twenty four...
+ active_close_normal = new QImage(16, 16, 32);
+ bitBlt(active_close_normal, 0, 0, aGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_close, *active_close_normal, asr, asg, asb, titleShadow+1);
+ unicity(alias_close, *active_close_normal, abr, abg, abb, 1);
+ active_close_hover = new QImage(16, 16, 32);
+ bitBlt(active_close_hover, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_close, *active_close_hover, asr, asg, asb, titleShadow+1);
+ unicity(alias_close, *active_close_hover, abr, abg, abb, 0);
+ active_close_sunken = new QImage(16, 16, 32);
+ bitBlt(active_close_sunken, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_close, *active_close_sunken, abr, abg, abb, 2);
+ inactive_close_normal = new QImage(16, 16, 32);
+ bitBlt(inactive_close_normal, 0, 0, iGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_close, *inactive_close_normal, isr, isg, isb, titleShadow+1);
+ unicity(alias_close, *inactive_close_normal, ibr, ibg, ibb, 1);
+ inactive_close_hover = new QImage(16, 16, 32);
+ bitBlt(inactive_close_hover, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_close, *inactive_close_hover, isr, isg, isb, titleShadow+1);
+ unicity(alias_close, *inactive_close_hover, ibr, ibg, ibb, 0);
+ inactive_close_sunken = new QImage(16, 16, 32);
+ bitBlt(inactive_close_sunken, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_close, *inactive_close_sunken, ibr, ibg, ibb, 2);
+ // Thirty...
+ active_sticky_normal = new QImage(16, 16, 32);
+ bitBlt(active_sticky_normal, 0, 0, aGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_sticky, *active_sticky_normal, asr, asg, asb, titleShadow+1);
+ unicity(alias_sticky, *active_sticky_normal, abr, abg, abb, 1);
+ active_sticky_hover = new QImage(16, 16, 32);
+ bitBlt(active_sticky_hover, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_sticky, *active_sticky_hover, asr, asg, asb, titleShadow+1);
+ unicity(alias_sticky, *active_sticky_hover, abr, abg, abb, 0);
+ active_sticky_sunken = new QImage(16, 16, 32);
+ bitBlt(active_sticky_sunken, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_sticky, *active_sticky_sunken, abr, abg, abb, 2);
+ inactive_sticky_normal = new QImage(16, 16, 32);
+ bitBlt(inactive_sticky_normal, 0, 0, iGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_sticky, *inactive_sticky_normal, isr, isg, isb, titleShadow+1);
+ unicity(alias_sticky, *inactive_sticky_normal, ibr, ibg, ibb, 1);
+ inactive_sticky_hover = new QImage(16, 16, 32);
+ bitBlt(inactive_sticky_hover, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_sticky, *inactive_sticky_hover, isr, isg, isb, titleShadow+1);
+ unicity(alias_sticky, *inactive_sticky_hover, ibr, ibg, ibb, 0);
+ inactive_sticky_sunken = new QImage(16, 16, 32);
+ bitBlt(inactive_sticky_sunken, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_sticky, *inactive_sticky_sunken, ibr, ibg, ibb, 2);
+ // Thirty six...
+ active_unsticky_normal = new QImage(16, 16, 32);
+ bitBlt(active_unsticky_normal, 0, 0, aGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_unsticky, *active_unsticky_normal, asr, asg, asb, titleShadow+1);
+ unicity(alias_unsticky, *active_unsticky_normal, abr, abg, abb, 1);
+ active_unsticky_hover = new QImage(16, 16, 32);
+ bitBlt(active_unsticky_hover, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_unsticky, *active_unsticky_hover, asr, asg, asb, titleShadow+1);
+ unicity(alias_unsticky, *active_unsticky_hover, abr, abg, abb, 0);
+ active_unsticky_sunken = new QImage(16, 16, 32);
+ bitBlt(active_unsticky_sunken, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_unsticky, *active_unsticky_sunken, abr, abg, abb, 2);
+ inactive_unsticky_normal = new QImage(16, 16, 32);
+ bitBlt(inactive_unsticky_normal, 0, 0, iGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_unsticky, *inactive_unsticky_normal, isr, isg, isb, titleShadow+1);
+ unicity(alias_unsticky, *inactive_unsticky_normal, ibr, ibg, ibb, 1);
+ inactive_unsticky_hover = new QImage(16, 16, 32);
+ bitBlt(inactive_unsticky_hover, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_unsticky, *inactive_unsticky_hover, isr, isg, isb, titleShadow+1);
+ unicity(alias_unsticky, *inactive_unsticky_hover, ibr, ibg, ibb, 0);
+ inactive_unsticky_sunken = new QImage(16, 16, 32);
+ bitBlt(inactive_unsticky_sunken, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_unsticky, *inactive_unsticky_sunken, ibr, ibg, ibb, 2);
+ // Forty two...
+ active_above_normal = new QImage(16, 16, 32);
+ bitBlt(active_above_normal, 0, 0, aGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_above, *active_above_normal, asr, asg, asb, titleShadow+1);
+ unicity(alias_above, *active_above_normal, abr, abg, abb, 1);
+ active_above_hover = new QImage(16, 16, 32);
+ bitBlt(active_above_hover, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_above, *active_above_hover, asr, asg, asb, titleShadow+1);
+ unicity(alias_above, *active_above_hover, abr, abg, abb, 0);
+ active_above_sunken = new QImage(16, 16, 32);
+ bitBlt(active_above_sunken, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_above, *active_above_sunken, abr, abg, abb, 2);
+ inactive_above_normal = new QImage(16, 16, 32);
+ bitBlt(inactive_above_normal, 0, 0, iGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_above, *inactive_above_normal, isr, isg, isb, titleShadow+1);
+ unicity(alias_above, *inactive_above_normal, ibr, ibg, ibb, 1);
+ inactive_above_hover = new QImage(16, 16, 32);
+ bitBlt(inactive_above_hover, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_above, *inactive_above_hover, isr, isg, isb, titleShadow+1);
+ unicity(alias_above, *inactive_above_hover, ibr, ibg, ibb, 0);
+ inactive_above_sunken = new QImage(16, 16, 32);
+ bitBlt(inactive_above_sunken, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_above, *inactive_above_sunken, ibr, ibg, ibb, 2);
+ // Forty eight...
+ active_below_normal = new QImage(16, 16, 32);
+ bitBlt(active_below_normal, 0, 0, aGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_below, *active_below_normal, asr, asg, asb, titleShadow+1);
+ unicity(alias_below, *active_below_normal, abr, abg, abb, 1);
+ active_below_hover = new QImage(16, 16, 32);
+ bitBlt(active_below_hover, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_below, *active_below_hover, asr, asg, asb, titleShadow+1);
+ unicity(alias_below, *active_below_hover, abr, abg, abb, 0);
+ active_below_sunken = new QImage(16, 16, 32);
+ bitBlt(active_below_sunken, 0, 0, aGround, 0, 0, 16, 16, 0);
+ unicity(alias_below, *active_below_sunken, abr, abg, abb, 2);
+ inactive_below_normal = new QImage(16, 16, 32);
+ bitBlt(inactive_below_normal, 0, 0, iGround, 0, 0, 16, 16, 0);
+ if (titleShadow)
+ unicity(alias_below, *inactive_below_normal, isr, isg, isb, titleShadow+1);
+ unicity(alias_below, *inactive_below_normal, ibr, ibg, ibb, 1);
+ inactive_below_hover = new QImage(16, 16, 32);
+ bitBlt(inactive_below_hover, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_below, *inactive_below_hover, isr, isg, isb, titleShadow+1);
+ unicity(alias_below, *inactive_below_hover, ibr, ibg, ibb, 0);
+ inactive_below_sunken = new QImage(16, 16, 32);
+ bitBlt(inactive_below_sunken, 0, 0, iGround, 0, 0, 16, 16, 0);
+ unicity(alias_below, *inactive_below_sunken, ibr, ibg, ibb, 2);
+ // Fifty four... Don't lose the count!
+}
+
+void Pixmaps::deletePixmaps()
+{
+ delete active_button_ground;
+ active_button_ground = 0;
+ delete inactive_button_ground;
+ inactive_button_ground = 0;
+
+ delete active_help_normal;
+ active_help_normal = 0;
+ delete active_max_normal;
+ active_max_normal = 0;
+ delete active_restore_normal;
+ active_restore_normal = 0;
+ delete active_min_normal;
+ active_min_normal = 0;
+ delete active_close_normal;
+ active_close_normal = 0;
+ delete active_sticky_normal;
+ active_sticky_normal = 0;
+ delete active_unsticky_normal;
+ active_unsticky_normal = 0;
+ delete active_above_normal;
+ active_above_normal = 0;
+ delete active_below_normal;
+ active_below_normal = 0;
+
+ delete active_help_hover;
+ active_help_hover = 0;
+ delete active_max_hover;
+ active_max_hover = 0;
+ delete active_restore_hover;
+ active_restore_hover = 0;
+ delete active_min_hover;
+ active_min_hover = 0;
+ delete active_close_hover;
+ active_close_hover = 0;
+ delete active_sticky_hover;
+ active_sticky_hover = 0;
+ delete active_unsticky_hover;
+ active_unsticky_hover = 0;
+ delete active_above_hover;
+ active_above_hover = 0;
+ delete active_below_hover;
+ active_below_hover = 0;
+
+ delete active_help_sunken;
+ active_help_sunken = 0;
+ delete active_max_sunken;
+ active_max_sunken = 0;
+ delete active_restore_sunken;
+ active_restore_sunken = 0;
+ delete active_min_sunken;
+ active_min_sunken = 0;
+ delete active_close_sunken;
+ active_close_sunken = 0;
+ delete active_sticky_sunken;
+ active_sticky_sunken = 0;
+ delete active_unsticky_sunken;
+ active_unsticky_sunken = 0;
+ delete active_above_sunken;
+ active_above_sunken = 0;
+ delete active_below_sunken;
+ active_below_sunken = 0;
+
+ delete inactive_help_normal;
+ inactive_help_normal = 0;
+ delete inactive_max_normal;
+ inactive_max_normal = 0;
+ delete inactive_restore_normal;
+ inactive_restore_normal = 0;
+ delete inactive_min_normal;
+ inactive_min_normal = 0;
+ delete inactive_close_normal;
+ inactive_close_normal = 0;
+ delete inactive_sticky_normal;
+ inactive_sticky_normal = 0;
+ delete inactive_unsticky_normal;
+ inactive_unsticky_normal = 0;
+ delete inactive_above_normal;
+ inactive_above_normal = 0;
+ delete inactive_below_normal;
+ inactive_below_normal = 0;
+
+ delete inactive_help_hover;
+ inactive_help_hover = 0;
+ delete inactive_max_hover;
+ inactive_max_hover = 0;
+ delete inactive_restore_hover;
+ inactive_restore_hover = 0;
+ delete inactive_min_hover;
+ inactive_min_hover = 0;
+ delete inactive_close_hover;
+ inactive_close_hover = 0;
+ delete inactive_sticky_hover;
+ inactive_sticky_hover = 0;
+ delete inactive_unsticky_hover;
+ inactive_unsticky_hover = 0;
+ delete inactive_above_hover;
+ inactive_above_hover = 0;
+ delete inactive_below_hover;
+ inactive_below_hover = 0;
+
+ delete inactive_help_sunken;
+ inactive_help_sunken = 0;
+ delete inactive_max_sunken;
+ inactive_max_sunken = 0;
+ delete inactive_restore_sunken;
+ inactive_restore_sunken = 0;
+ delete inactive_min_sunken;
+ inactive_min_sunken = 0;
+ delete inactive_close_sunken;
+ inactive_close_sunken = 0;
+ delete inactive_sticky_sunken;
+ inactive_sticky_sunken = 0;
+ delete inactive_unsticky_sunken;
+ inactive_unsticky_sunken = 0;
+ delete inactive_above_sunken;
+ inactive_above_sunken = 0;
+ delete inactive_below_sunken;
+ inactive_below_sunken = 0;
+
+ delete active_titlebar;
+ active_titlebar = 0;
+ delete active_titlebar_left;
+ active_titlebar_left = 0;
+ delete active_titlebar_right;
+ active_titlebar_right = 0;
+
+ delete inactive_titlebar;
+ inactive_titlebar = 0;
+ delete inactive_titlebar_left;
+ inactive_titlebar_left = 0;
+ delete inactive_titlebar_right;
+ inactive_titlebar_right = 0;
+
+ pixmapsCreated = false;
+}
+
+// Redo the buttons' background.
+void Pixmaps::drawGround(QPainter* painter, bool active)
+{
+ int buttonSize = MalloryHandler::buttonSize();
+ int titleSize = MalloryHandler::titleSize();
+
+ int buttonTop = (titleSize-buttonSize)/2;
+
+ // Get the titlebar colors right behind the buttons for the gradient.
+ QImage *titlebar_image = new QImage();
+ *titlebar_image = active ? active_titlebar->convertToImage() : inactive_titlebar->convertToImage();
+ QColor title_color1 = titlebar_image->pixel(0, buttonTop);
+ QColor title_color2 = titlebar_image->pixel(0, buttonTop+buttonSize-1);
+
+ // The temporary canvas.
+ KPixmap tempPixmap;
+ tempPixmap.resize(buttonSize, buttonSize);
+ KPixmapEffect::gradient(tempPixmap, title_color1, title_color2, KPixmapEffect::VerticalGradient);
+ painter->drawPixmap(0, 0, tempPixmap);
+
+ delete titlebar_image;
+}
+
+void Pixmaps::unicity(int* alias, QImage& work, int rr, int gg, int bb, int offset)
+{
+ int x, y;
+ int z = 0;
+
+ for (y=offset; y<offset+12; y++)
+ {
+ uint *line = (uint*)work.scanLine(y);
+ for (x=offset; x<offset+12; x++)
+ {
+ switch (alias[z])
+ {
+ case 0xF: // Keep background.
+ break;
+ case 0x0: // Replace.
+ line[x] = qRgb(rr, gg, bb);
+ break;
+ default: // 15-level colorization
+ uint pxl = line[x];
+ line[x] = qRgb( (qRed(pxl)*alias[z]+rr*(15-alias[z]))/15,
+ (qGreen(pxl)*alias[z]+gg*(15-alias[z]))/15,
+ (qBlue(pxl)*alias[z]+bb*(15-alias[z]))/15 );
+ }
+ z++;
+ }
+ }
+}
+