diff --git a/clients/keramik/Makefile.am b/clients/keramik/Makefile.am new file mode 100644 index 0000000000..c403f00608 --- /dev/null +++ b/clients/keramik/Makefile.am @@ -0,0 +1,32 @@ +INCLUDES = $(all_includes) -I$(kde_includes)/kwin + +SUBDIRS = . config + +KDE_CXXFLAGS = -UQT_NO_ASCII_CAST + +kde_module_LTLIBRARIES = kwin_keramik.la + +kwin_keramik_la_SOURCES = keramik.cpp +kwin_keramik_la_LIBADD = ../../kwin.la +kwin_keramik_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module + +METASOURCES = AUTO +noinst_headers = keramik.h tiles.h + +lnkdir = $(kde_datadir)/kwin +lnk_DATA = keramik.desktop + +EXTRA_DIST = $(lnk_DATA) + +QEMBED = $(QTDIR)/tools/qembed/qembed + +keramik.cpp: tiles.h + +PICS := $(shell ls $(srcdir)/pics/*.png 2>/dev/null) + +.PHONY: make-embed + +make-embed: $(PICS) + $(QEMBED) --images $^ | \ + sed -e 's,static QDict dict;,,' | \ + sed -e 's,dict\.find,imageDict.find,' > $(srcdir)/tiles.h diff --git a/clients/keramik/config/Makefile.am b/clients/keramik/config/Makefile.am new file mode 100644 index 0000000000..4b629c01f6 --- /dev/null +++ b/clients/keramik/config/Makefile.am @@ -0,0 +1,19 @@ +INCLUDES = $(all_includes) + +kde_module_LTLIBRARIES = kwin_keramik_config.la + +kwin_keramik_config_la_SOURCES = config.cpp keramikconfig.ui +kwin_keramik_config_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module +kwin_keramik_config_la_LIBADD = $(LIB_KDEUI) + +METASOURCES = AUTO +noinst_HEADERS = config.h keramikconfig.h + +lnkdir = $(kde_datadir)/kwin + +messages: + $(XGETTEXT) *.cpp -o $(podir)/kwin_keramik_config.pot + +###KMAKE-start (don't edit or delete this block) + +###KMAKE-end diff --git a/clients/keramik/config/config.cpp b/clients/keramik/config/config.cpp new file mode 100644 index 0000000000..4202cd8ade --- /dev/null +++ b/clients/keramik/config/config.cpp @@ -0,0 +1,107 @@ +/* + * $Id$ + * + * Keramik KWin client configuration module + * + * Copyright (C) 2002 Fredrik Höglund + * + * Based on the Quartz configuration module, + * Copyright (c) 2001 Karol Szwed + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the license, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include +#include + +#include + +#include "config.h" +#include "config.moc" + +extern "C" +{ + QObject* allocate_config( KConfig* conf, QWidget* parent ) + { + return ( new KeramikConfig( conf, parent ) ); + } +} + + +/* NOTE: + * 'conf' is a pointer to the kwindecoration modules open kwin config, + * and is by default set to the "Style" group. + * + * 'parent' is the parent of the QObject, which is a VBox inside the + * Configure tab in kwindecoration + */ + +KeramikConfig::KeramikConfig( KConfig* conf, QWidget* parent ) + : QObject( parent ) +{ + KGlobal::locale()->insertCatalogue("kwin_keramik_config"); + c = new KConfig( "kwinkeramikrc" ); + + ui = new KeramikConfigUI( parent ); + connect( ui->showAppIcons, SIGNAL(clicked()), SIGNAL(changed()) ); + connect( ui->smallCaptions, SIGNAL(clicked()), SIGNAL(changed()) ); + connect( ui->useShadowedText, SIGNAL(clicked()), SIGNAL(changed()) ); + + load( conf ); + ui->show(); +} + + +KeramikConfig::~KeramikConfig() +{ + delete ui; + delete c; +} + + +// Loads the configurable options from the kwinrc config file +// It is passed the open config from kwindecoration to improve efficiency +void KeramikConfig::load( KConfig* ) +{ + c->setGroup("General"); + ui->showAppIcons->setChecked( c->readBoolEntry("ShowAppIcons", true) ); + ui->smallCaptions->setChecked( c->readBoolEntry("SmallCaptionBubbles", false) ); + ui->useShadowedText->setChecked( c->readBoolEntry("UseShadowedText", true) ); +} + + +// Saves the configurable options to the kwinrc config file +void KeramikConfig::save( KConfig* ) +{ + c->setGroup( "General" ); + c->writeEntry( "ShowAppIcons", ui->showAppIcons->isChecked() ); + c->writeEntry( "SmallCaptionBubbles", ui->smallCaptions->isChecked() ); + c->writeEntry( "UseShadowedText", ui->useShadowedText->isChecked() ); + c->sync(); +} + + +// Sets UI widget defaults which must correspond to style defaults +void KeramikConfig::defaults() +{ + ui->showAppIcons->setChecked( true ); + ui->smallCaptions->setChecked( false ); + ui->useShadowedText->setChecked( true ); + + emit changed(); +} + +// vim: set noet ts=4 sw=4: diff --git a/clients/keramik/config/config.h b/clients/keramik/config/config.h new file mode 100644 index 0000000000..59f7b1a92d --- /dev/null +++ b/clients/keramik/config/config.h @@ -0,0 +1,59 @@ +/* + * $Id$ + * + * Keramik KWin client configuration module + * + * Copyright (C) 2002 Fredrik Höglund + * + * Based on the Quartz configuration module, + * Copyright (c) 2001 Karol Szwed + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the license, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __KWIN_KERAMIK_CONFIG_H +#define __KWIN_KERAMIK_CONFIG_H + +#include + +#include "keramikconfig.h" + +class KeramikConfig: public QObject +{ + Q_OBJECT + + public: + KeramikConfig( KConfig* conf, QWidget* parent ); + ~KeramikConfig(); + + // These public signals/slots work similar to KCM modules + signals: + void changed(); + + public slots: + void load( KConfig* conf ); + void save( KConfig* conf ); + void defaults(); + + private: + KeramikConfigUI *ui; + KConfig *c; +}; + + +#endif + +// vim: set noet ts=4 sw=4: diff --git a/clients/keramik/config/keramikconfig.ui b/clients/keramik/config/keramikconfig.ui new file mode 100644 index 0000000000..af5372ee35 --- /dev/null +++ b/clients/keramik/config/keramikconfig.ui @@ -0,0 +1,99 @@ + +KeramikConfigUI + + + KeramikConfigUI + + + + 0 + 0 + 470 + 333 + + + + Keramik + + + + unnamed + + + 0 + + + 6 + + + + decorationBox + + + Decoration Settings + + + + unnamed + + + 11 + + + 6 + + + + Layout4 + + + + unnamed + + + 0 + + + 6 + + + + showAppIcons + + + Display the window &icon in the caption bubble + + + Check this option if you want the window icon to be displayed in the caption bubble next to the titlebar text. + + + + + smallCaptions + + + Draw &small caption bubbles on active windows + + + Check this option if you want the caption bubble to have the same size on active windows that it has on inactive ones. This option is useful for laptops or low resolution displays where you want maximize the amount of space available to the window contents. + + + + + useShadowedText + + + Use shadowed &text + + + Check this option if you want the titlebar text to have a 3D look with a shadow behind it. + + + + + + + + + + diff --git a/clients/keramik/configure.in.in b/clients/keramik/configure.in.in new file mode 100644 index 0000000000..a3ed00c262 --- /dev/null +++ b/clients/keramik/configure.in.in @@ -0,0 +1,3 @@ +dnl Check for the X shaped windows extension +AC_CHECK_HEADERS(X11/extensions/shape.h) + diff --git a/clients/keramik/keramik.cpp b/clients/keramik/keramik.cpp new file mode 100644 index 0000000000..8486f4c576 --- /dev/null +++ b/clients/keramik/keramik.cpp @@ -0,0 +1,1227 @@ +/* + * $Id$ + * + * Keramik KWin client (version 0.6) + * + * Copyright (C) 2002 Fredrik Höglund + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the license, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#include +#include +#include + +#include +#include +#include +#include + +#include "../../workspace.h" +#include "../../options.h" + +#include "keramik.h" +#include "../../../config.h" + +#include +#include + +#ifdef HAVE_X11_EXTENSIONS_SHAPE_H +#include +#else +#define XShapeCombineMask(a,b,c,d,e,f,g) +#endif + +#include "keramik.moc" + +using namespace KWinInternal; + + + +// ------------------------------------------------------------------------------------------- + + + +static const int buttonMargin = 9; +static const int buttonSpacing = 4; +static const int iconSpacing = 5; + +static const bool recolorPixmaps = false; // ### only for debugging + +// Default button layout +static const char default_left[] = "M"; +static const char default_right[] = "IAX"; + +// Titlebar button bitmaps +static unsigned char menu_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0xf0, 0x07, 0x00, + 0xe0, 0x03, 0x00, 0xc0, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; + +static unsigned char sticky_on_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, 0xf0, 0x0f, 0x00, + 0xf0, 0x0f, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; + +static unsigned char sticky_off_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, + 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; + +static unsigned char help_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, + 0xf0, 0x07, 0x00, 0x30, 0x06, 0x00, 0x00, 0x07, 0x00, 0x80, 0x03, 0x00, + 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; + +static unsigned char iconify_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0xf0, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; + +static unsigned char maximize_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x01, 0x00, 0xc0, 0x03, 0x00, 0xe0, 0x07, 0x00, 0xf0, 0x0f, 0x00, + 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0xf0, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; + +static unsigned char restore_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x0f, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, + 0xf0, 0x0f, 0x00, 0xe0, 0x07, 0x00, 0xc0, 0x03, 0x00, 0x80, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; + +static unsigned char close_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x30, 0x0c, 0x00, 0x70, 0x0e, 0x00, 0xe0, 0x07, 0x00, 0xc0, 0x03, 0x00, + 0xc0, 0x03, 0x00, 0xe0, 0x07, 0x00, 0x70, 0x0e, 0x00, 0x30, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; + + + +// ------------------------------------------------------------------------------------------ + + + +KeramikHandler *clientHandler = NULL; +bool keramik_initialized = false; + + + +// ------------------------------------------------------------------------------------------- + + + +KeramikHandler::KeramikHandler() + : QObject( NULL, NULL ) +{ + for ( int i = 0; i < NumTiles; i++ ) { + activeTiles[i] = NULL; + inactiveTiles[i] = NULL; + } + + settings_cache = NULL; + + // Create the button deco bitmaps + buttonDecos[ Menu ] = new QBitmap( 17, 17, menu_bits, true ); + buttonDecos[ Sticky ] = new QBitmap( 17, 17, sticky_on_bits, true ); + buttonDecos[ Unsticky ] = new QBitmap( 17, 17, sticky_off_bits, true ); + buttonDecos[ Help ] = new QBitmap( 17, 17, help_bits, true ); + buttonDecos[ Iconify ] = new QBitmap( 17, 17, iconify_bits, true ); + buttonDecos[ Maximize ] = new QBitmap( 17, 17, maximize_bits, true ); + buttonDecos[ Restore ] = new QBitmap( 17, 17, restore_bits, true ); + buttonDecos[ Close ] = new QBitmap( 17, 17, close_bits, true ); + + // Selfmask the bitmaps + for ( int i = 0; i < NumButtonDecos; i++ ) + buttonDecos[i]->setMask( *buttonDecos[i] ); + + // Flip the bitmaps horizontally in right-to-left mode + if ( QApplication::reverseLayout() ) { + for ( int i = 0; i < NumButtonDecos; i++ ) + flip( (QPixmap*)buttonDecos[i] ); + } + + readConfig(); + createPixmaps(); + + keramik_initialized = true; +} + + +KeramikHandler::~KeramikHandler() +{ + keramik_initialized = false; + destroyPixmaps(); + + for ( int i = 0; i < NumButtonDecos; i++ ) + delete buttonDecos[i]; + + if ( settings_cache ) + delete settings_cache; +} + + +void KeramikHandler::createPixmaps() +{ + QColor titleColor = options->color( Options::TitleBar, true ); + QColor buttonColor = options->color( Options::ButtonBg, true ); + + activeTiles[ TitleLeft ] = loadPixmap( "titlebar-active-left", titleColor ); + activeTiles[ TitleCenter ] = loadPixmap( "titlebar-active-center", titleColor ); + activeTiles[ TitleRight ] = loadPixmap( "titlebar-active-right", titleColor ); + + inactiveTiles[ TitleLeft ] = loadPixmap( "titlebar-inactive-left", titleColor ); + inactiveTiles[ TitleCenter ] = loadPixmap( "titlebar-inactive-center", titleColor ); + inactiveTiles[ TitleRight ] = loadPixmap( "titlebar-inactive-right", titleColor ); + + if ( smallCaptionBubbles ) { + activeTiles[ CaptionLeft ] = loadPixmap( "caption-active-small-left", titleColor ); + activeTiles[ CaptionCenter ] = loadPixmap( "caption-active-small-center", titleColor ); + activeTiles[ CaptionRight ] = loadPixmap( "caption-active-small-right", titleColor ); + } else { + activeTiles[ CaptionLeft ] = loadPixmap( "caption-active-large-left", titleColor ); + activeTiles[ CaptionCenter ] = loadPixmap( "caption-active-large-center", titleColor ); + activeTiles[ CaptionRight ] = loadPixmap( "caption-active-large-right", titleColor ); + } + + inactiveTiles[ CaptionLeft ] = loadPixmap( "caption-inactive-left", titleColor ); + inactiveTiles[ CaptionCenter ] = loadPixmap( "caption-inactive-center", titleColor ); + inactiveTiles[ CaptionRight ] = loadPixmap( "caption-inactive-right", titleColor ); + + activeTiles[ GrabBarLeft ] = loadPixmap( "grabbar-active-left", titleColor ); + activeTiles[ GrabBarCenter ] = loadPixmap( "grabbar-active-center", titleColor ); + activeTiles[ GrabBarRight ] = loadPixmap( "grabbar-active-right", titleColor ); + + inactiveTiles[ GrabBarLeft ] = loadPixmap( "grabbar-inactive-left", titleColor ); + inactiveTiles[ GrabBarCenter ] = loadPixmap( "grabbar-inactive-center", titleColor ); + inactiveTiles[ GrabBarRight ] = loadPixmap( "grabbar-inactive-right", titleColor ); + + activeTiles[ BorderLeft ] = loadPixmap( "border-active-left", titleColor ); + activeTiles[ BorderRight ] = loadPixmap( "border-active-right", titleColor ); + + inactiveTiles[ BorderLeft ] = loadPixmap( "border-inactive-left", titleColor ); + inactiveTiles[ BorderRight ] = loadPixmap( "border-inactive-right", titleColor ); + + titleButtonRound = loadPixmap( "titlebutton-round", buttonColor ); + titleButtonSquare = loadPixmap( "titlebutton-square", buttonColor ); + + if ( QApplication::reverseLayout() ) { + + // Fix lighting + flip( activeTiles[CaptionLeft], activeTiles[CaptionRight] ); + flip( inactiveTiles[CaptionLeft], inactiveTiles[CaptionRight] ); + + flip( activeTiles[TitleLeft], activeTiles[TitleRight] ); + flip( inactiveTiles[TitleLeft], inactiveTiles[TitleRight] ); + + flip( activeTiles[BorderLeft], activeTiles[BorderRight] ); + flip( inactiveTiles[BorderLeft], inactiveTiles[BorderRight] ); + + flip( activeTiles[GrabBarLeft], activeTiles[GrabBarRight] ); + flip( inactiveTiles[GrabBarLeft], inactiveTiles[GrabBarRight] ); + + flip( titleButtonRound ); + flip( titleButtonSquare ); + } +} + + + +void KeramikHandler::destroyPixmaps() +{ + for ( int i = 0; i < NumTiles; i++ ) { + if ( activeTiles[i] ) { + delete activeTiles[i]; + activeTiles[i] = NULL; + } + + if ( inactiveTiles[i] ) { + delete inactiveTiles[i]; + inactiveTiles[i] = NULL; + } + } + + delete titleButtonRound; + delete titleButtonSquare; +} + + +void KeramikHandler::flip( QPixmap *&pix1, QPixmap *&pix2 ) +{ + // Flip the pixmaps horizontally + QPixmap *tmp = new QPixmap( pix1->xForm( QWMatrix(-1,0,0,1,pix1->width(),0) ) ); + + delete pix1; + pix1 = new QPixmap( pix2->xForm( QWMatrix(-1,0,0,1,pix2->width(),0) ) ); + + delete pix2; + pix2 = tmp; +} + + +void KeramikHandler::flip( QPixmap *&pix ) +{ + // Flip the pixmap horizontally + QPixmap *tmp = new QPixmap( pix->xForm( QWMatrix(-1,0,0,1,pix->width(),0) ) ); + delete pix; + pix = tmp; +} + + +void KeramikHandler::readConfig() +{ + KConfig *c = new KConfig( "kwinkeramikrc" ); + + c->setGroup( "General" ); + showIcons = c->readBoolEntry( "ShowAppIcons", true ); + shadowedText = c->readBoolEntry( "UseShadowedText", true ); + smallCaptionBubbles = c->readBoolEntry( "SmallCaptionBubbles", false ); + + if ( ! settings_cache ) { + settings_cache = new SettingsCache; + + if ( options->customButtonPositions() ) { + settings_cache->buttonsLeft = options->titleButtonsLeft(); + settings_cache->buttonsRight = options->titleButtonsRight(); + } else { + settings_cache->buttonsLeft = QString( default_left ); + settings_cache->buttonsRight = QString( default_right ); + } + + settings_cache->titleColor = options->color( Options::TitleBar, true ); + settings_cache->buttonColor = options->color( Options::ButtonBg, true ); + settings_cache->smallCaptionBubbles = smallCaptionBubbles; + } + + delete c; +} + + +QPixmap *KeramikHandler::loadPixmap( const QString &name, const QColor &col ) +{ + if ( recolorPixmaps ) { + QImage img = qembed_findImage( name ).copy(); + //KIconEffect::colorize( img, col, 1.0 ); + recolor( img, col ); + return new QPixmap( img ); + } else + return new QPixmap( qembed_findImage(name) ); +} + + +// This is the recoloring method from the Keramik widget style, +// copyright (c) 2002 Malte Starostik . +// Modified to work with 8bpp images. +void KeramikHandler::recolor( QImage &img, const QColor& color ) +{ + int hue = -1, sat = 0, val = 228; + if ( color.isValid() ) color.hsv( &hue, &sat, &val ); + + register int pixels = (img.depth() > 8 ? img.width() * img.height() : img.numColors()); + register Q_UINT32* data = ( img.depth() > 8 ? reinterpret_cast< Q_UINT32* >( img.bits() ) : + reinterpret_cast< Q_UINT32* >( img.colorTable() ) ); + + for ( int i = 0; i < pixels; i++ ) + { + QColor c( *data ); + int h, s, v; + c.hsv( &h, &s, &v ); + if ( hue >= 0 && h >= 0 ) h = ( h + 114 + hue ) % 360; + if ( s ) s += sat / 2; + c.setHsv( h, QMIN( s, 255 ), QMIN( v * val / 228, 255 ) ); + *data = ( c.rgb() & RGB_MASK ) | ( *data & ~RGB_MASK ); + data++; + } +} + + +void KeramikHandler::reset() +{ + QString buttonsLeft, buttonsRight; + + keramik_initialized = false; + + bool needHardReset = false; + bool pixmapsInvalid = false; + + // Re-read the config file + readConfig(); + + // Check if the color scheme has changed + if ( settings_cache->titleColor != options->color(Options::TitleBar, true) || + settings_cache->buttonColor != options->color(Options::ButtonBg, true) ) { + pixmapsInvalid = true; + } + + // Check if the caption bubble size has changed + if ( settings_cache->smallCaptionBubbles != smallCaptionBubbles ) { + pixmapsInvalid = true; + needHardReset = true; + } + + // Check if button positions have changed + if ( options->customButtonPositions() ) { + buttonsLeft = options->titleButtonsLeft(); + buttonsRight = options->titleButtonsRight(); + } else { + buttonsLeft = QString( default_left ); + buttonsRight = QString( default_right ); + } + + if ( (settings_cache->buttonsLeft != buttonsLeft) || + (settings_cache->buttonsRight != buttonsRight) ) { + needHardReset = true; + } + + // Update our config cache + settings_cache->titleColor = options->color( Options::TitleBar, true ); + settings_cache->buttonColor = options->color( Options::ButtonBg, true ); + settings_cache->smallCaptionBubbles = smallCaptionBubbles; + settings_cache->buttonsLeft = buttonsLeft; + settings_cache->buttonsRight = buttonsRight; + + + // Do we need to recreate the pixmaps? + if ( pixmapsInvalid ) { + destroyPixmaps(); + createPixmaps(); + } + + keramik_initialized = true; + + // Do we need to "hit the wooden hammer" ? + if ( needHardReset ) + Workspace::self()->slotResetAllClients(); + else + emit softReset(); +} + + +const QPixmap *KeramikHandler::tile( TilePixmap tilePix, bool active ) const +{ + return ( active ? activeTiles[ tilePix ] : inactiveTiles[ tilePix ] ); +} + + + +// ------------------------------------------------------------------------------------------- + + + +KeramikButton::KeramikButton( Client* parent, const char *name, Button btn, const QString &tip ) + : KWinButton( parent, name, tip ), + client( parent ), button( btn ), hover( false ), lastbutton( 0 ) +{ + setBackgroundMode( NoBackground ); + setFixedSize( 17, 17 ); + + setToggleButton( (button == StickyButton) ); +} + + +KeramikButton::~KeramikButton() +{ + // Empty. +} + + +void KeramikButton::enterEvent( QEvent *e ) +{ + KWinButton::enterEvent( e ); + + hover = true; + repaint( false ); +} + + +void KeramikButton::leaveEvent( QEvent *e ) +{ + KWinButton::leaveEvent( e ); + + hover = false; + repaint( false ); +} + + +void KeramikButton::mousePressEvent( QMouseEvent *e ) +{ + lastbutton = e->button(); + QMouseEvent me( e->type(), e->pos(), e->globalPos(), LeftButton, e->state() ); + KWinButton::mousePressEvent( &me ); +} + + +void KeramikButton::mouseReleaseEvent( QMouseEvent *e ) +{ + lastbutton = e->button(); + QMouseEvent me( e->type(), e->pos(), e->globalPos(), LeftButton, e->state() ); + KWinButton::mouseReleaseEvent( &me ); +} + + +void KeramikButton::drawButton( QPainter *p ) +{ + const QPixmap *pix; + const QBitmap *deco; + + // Get the bevel from the client handler + if ( button == MenuButton || button == StickyButton || button == HelpButton ) + pix = clientHandler->roundButton(); + else + pix = clientHandler->squareButton(); + + // Draw the button background + p->drawPixmap( 0, 0, *clientHandler->tile( TitleCenter, client->isActive() ), + 0, 5, 17, 17 ); + + if ( isDown() ) { + // Pressed + p->drawPixmap( QPoint(), *pix, QStyle::visualRect( QRect(34, 0, 17, 17), pix->rect() ) ); + p->translate( QApplication::reverseLayout() ? -1 : 1, 1 ); + } else if ( hover ) + // Mouse over + p->drawPixmap( QPoint(), *pix, QStyle::visualRect( QRect(17, 0, 17, 17), pix->rect() ) ); + else + // Normal + p->drawPixmap( QPoint(), *pix, QStyle::visualRect( QRect(0, 0, 17, 17), pix->rect() ) ); + + + // Draw the button deco on the bevel + switch ( button ) { + case MenuButton: + deco = clientHandler->buttonDeco( Menu ); + break; + + case StickyButton: + deco = clientHandler->buttonDeco( isOn() ? Unsticky : Sticky ); + break; + + case HelpButton: + deco = clientHandler->buttonDeco( Help ); + break; + + case MinButton: + deco = clientHandler->buttonDeco( Iconify ); + break; + + case MaxButton: + deco = clientHandler->buttonDeco( client->isMaximized() ? Restore : Maximize ); + break; + + case CloseButton: + deco = clientHandler->buttonDeco( Close ); + break; + + default: + deco = NULL; + } + + p->setPen( Qt::black ); // ### hardcoded color + p->drawPixmap( 0, 0, *deco ); +} + + + +// ------------------------------------------------------------------------------------------ + + + +KeramikClient::KeramikClient( Workspace *ws, WId w, QWidget *parent, const char *name ) + : Client( ws, w, parent, name, WStaticContents | WResizeNoErase | WRepaintNoErase ), + activeIcon( NULL ), inactiveIcon( NULL ), captionBufferDirty( true ), maskDirty( true ) +{ + // Minimize flicker + setBackgroundMode( NoBackground ); + + for ( int i=0; i < NumButtons; i++ ) + button[i] = NULL; + + QVBoxLayout *mainLayout = new QVBoxLayout( this ); + QHBoxLayout *titleLayout = new QHBoxLayout(); + QHBoxLayout *windowLayout = new QHBoxLayout(); + + // Button margin + int topMargin = clientHandler->titleBarHeight() + - clientHandler->titleBarBaseHeight() + 1; + mainLayout->addSpacing( topMargin ); + + mainLayout->addLayout( titleLayout ); // Titlebar + mainLayout->addLayout( windowLayout, 1 ); // Left border + window + right border + mainLayout->addSpacing( 8 ); // Bottom grab bar + shadow + + titleLayout->setSpacing( buttonSpacing ); + + titleLayout->addSpacing( buttonMargin ); // Left button margin + addButtons( titleLayout, options->customButtonPositions() ? + options->titleButtonsLeft() : QString(default_left) ); + + titlebar = new QSpacerItem( 10, clientHandler->titleBarHeight() - topMargin, + QSizePolicy::Expanding, QSizePolicy::Minimum ); + titleLayout->addItem( titlebar ); + + titleLayout->addSpacing( buttonSpacing ); + addButtons( titleLayout, options->customButtonPositions() ? + options->titleButtonsRight() : QString(default_right) ); + titleLayout->addSpacing( buttonMargin ); // Right button margin + + windowLayout->addSpacing( 3 ); // Left border + windowLayout->addWidget( windowWrapper() ); // Window wrapper + windowLayout->addSpacing( 4 ); // Right border + + connect( clientHandler, SIGNAL(softReset()), SLOT(reset()) ); +} + + +KeramikClient::~KeramikClient() +{ + if ( activeIcon ) + delete activeIcon; + + if ( inactiveIcon ) + delete inactiveIcon; + + activeIcon = inactiveIcon = NULL; +} + + +void KeramikClient::reset() +{ + calculateCaptionRect(); + + captionBufferDirty = maskDirty = true; + + if ( isVisible() ) + repaint( false ); +} + +void KeramikClient::addButtons( QHBoxLayout *layout, const QString &s ) +{ + for ( uint i=0; i < s.length(); i++ ) + { + switch ( s[i].latin1() ) + { + // Menu button + case 'M' : + if ( !button[MenuButton] ) { + button[MenuButton] = new KeramikButton( this, "menu", MenuButton, i18n("Menu") ); + connect( button[MenuButton], SIGNAL( pressed() ), SLOT( menuButtonPressed() ) ); + layout->addWidget( button[MenuButton] ); + } + break; + + // Sticky button + case 'S' : + if ( !button[StickyButton] ) { + button[StickyButton] = new KeramikButton( this, "sticky", StickyButton, i18n("Sticky") ); + connect( button[StickyButton], SIGNAL( clicked() ), SLOT( toggleSticky() ) ); + layout->addWidget( button[StickyButton] ); + } + break; + + // Help button + case 'H' : + if ( !button[HelpButton] && providesContextHelp() ) { + button[HelpButton] = new KeramikButton( this, "help", HelpButton, i18n("Help") ); + connect( button[HelpButton], SIGNAL( clicked() ), SLOT( contextHelp() ) ); + layout->addWidget( button[HelpButton] ); + } + break; + + // Minimize button + case 'I' : + if ( !button[MinButton] && isMinimizable() ) { + button[MinButton] = new KeramikButton( this, "iconify", MinButton, i18n("Minimize") ); + connect( button[MinButton], SIGNAL( clicked() ), SLOT( iconify() ) ); + layout->addWidget( button[MinButton] ); + } + break; + + // Maximize button + case 'A' : + if ( !button[MaxButton] && isMaximizable() ) { + button[MaxButton] = new KeramikButton( this, "maximize", MaxButton, i18n("Maximize") ); + connect( button[MaxButton], SIGNAL( clicked() ), SLOT( slotMaximize() ) ); + layout->addWidget( button[MaxButton] ); + } + break; + + // Close button + case 'X' : + if ( !button[CloseButton] ) { + button[CloseButton] = new KeramikButton( this, "close", CloseButton, i18n("Close") ); + connect( button[CloseButton], SIGNAL( clicked() ), SLOT( closeWindow() ) ); + layout->addWidget( button[CloseButton] ); + } + break; + + // Additional spacing + case '_' : + layout->addSpacing( buttonSpacing ); + break; + } + } +} + + +void KeramikClient::updateMask() +{ + if ( !keramik_initialized ) + return; + + // This code is written in Xlib to work around a bug somewhere in the + // Qt masking/bitmap code. + + Display *dpy = QPaintDevice::x11AppDisplay(); + int screen = QPaintDevice::x11Screen(); + + Pixmap pix = XCreatePixmap( dpy, handle(), width(), height(), 1 ); + + const QBitmap *tile; + + GC gc = XCreateGC( dpy, pix, 0, 0 ); + XSetFillStyle( dpy, gc, FillSolid ); + + // Clear the titlebar area + XSetForeground( dpy, gc, BlackPixel(dpy, screen) ); + XFillRectangle( dpy, pix, gc, 0, 0, width(), clientHandler->titleBarHeight() ); + + int titleBaseY = clientHandler->titleBarHeight() + - clientHandler->titleBarBaseHeight(); + + // Set the background and foreground colors for XCopyArea() + XSetForeground( dpy, gc, WhitePixel(dpy, screen) ); + XSetBackground( dpy, gc, BlackPixel(dpy, screen) ); + + // Top left corner + tile = clientHandler->tile( TitleLeft, isActive() )->mask(); + XCopyArea( dpy, tile->handle(), pix, gc, 0, 0, tile->width(), tile->height(), 0, titleBaseY ); + + // Space between top left & top right corners + XFillRectangle( dpy, pix, gc, 15, titleBaseY, width() - 30, clientHandler->titleBarBaseHeight() ); + + // Caption bubble + if ( isActive() && titleBaseY && captionRect.width() >= 28 ) { + // Left caption corner + tile = clientHandler->tile( CaptionLeft, true )->mask(); + XCopyArea( dpy, tile->handle(), pix, gc, 0, 0, tile->width(), tile->height(), + captionRect.left(), 0 ); + + // Caption center + XFillRectangle( dpy, pix, gc, captionRect.left() + 14, 0, captionRect.width() - 28, + clientHandler->titleBarHeight() ); + + // Right caption corner + tile = clientHandler->tile( CaptionRight, true )->mask(); + XCopyArea( dpy, tile->handle(), pix, gc, 0, 0, tile->width(), tile->height(), + captionRect.left() + captionRect.width() - 14, 0 ); + } + + // Top right corner + tile = clientHandler->tile( TitleRight, true )->mask(); + XCopyArea( dpy, tile->handle(), pix, gc, 0, 0, tile->width(), tile->height(), + width() - 15, titleBaseY ); + + // Bottom part of the window + XFillRectangle( dpy, pix, gc, 0, clientHandler->titleBarHeight(), width(), + height() - clientHandler->titleBarHeight() ); + + XFreeGC( dpy, gc ); + + // Set the mask + XShapeCombineMask( dpy, handle(), ShapeBounding, 0, 0, pix, ShapeSet ); + XFreePixmap( dpy, pix ); + + maskDirty = false; +} + + +void KeramikClient::updateCaptionBuffer() +{ + if ( !keramik_initialized ) + return; + + bool active = isActive(); + QPixmap *icon = NULL; + + if ( captionBuffer.size() != captionRect.size() ) + captionBuffer.resize( captionRect.size() ); + + QPainter p( &captionBuffer ); + + // Draw the caption bubble + p.drawPixmap( 0, 0, *clientHandler->tile( CaptionLeft, active ) ); + p.drawTiledPixmap( 14, 0, captionRect.width() - 28, clientHandler->titleBarHeight(), + *clientHandler->tile( CaptionCenter, active ) ); + p.drawPixmap( captionRect.width() - 14, 0, *clientHandler->tile( CaptionRight, active ) ); + + if ( clientHandler->showAppIcons() ) + { + if ( active ) { + if ( ! activeIcon ) { + if ( miniIcon().width() > 16 ) { + QImage img = miniIcon().convertToImage(); + img.smoothScale( 16, 16 ); + activeIcon = new QPixmap( img ); + } else + activeIcon = new QPixmap( miniIcon() ); + } + icon = activeIcon; + } else { + if ( ! inactiveIcon ) { + QImage img = miniIcon().convertToImage(); + + if ( img.width() > 16 ) + img.smoothScale( 16, 16 ); + + KIconEffect::semiTransparent( img ); + inactiveIcon = new QPixmap( img ); + } + icon = inactiveIcon; + } + } + + p.setFont( options->font( active ) ); + int tw = p.fontMetrics().width( caption() ) + + ( clientHandler->showAppIcons() ? 16 + iconSpacing : 0 ); + + int xpos = QMAX( (captionRect.width() - tw) / 3, 10 ); + QRect tr = QStyle::visualRect( QRect(xpos, 1, captionRect.width() - xpos - 10, + captionRect.height() - 4), captionBuffer.rect() ); + + //p.setPen( Qt::red ); // debug + //p.drawRect( tr ); // debug + + // Application icon + if ( clientHandler->showAppIcons() ) + { + if ( tr.width() > 14 ) { + QRect iconRect = QStyle::visualRect( QRect(tr.x(), + 1 + (captionRect.height() - 4 - 16) / 2, 16, 16), tr ); + QRect r( icon->rect() ); + r.moveCenter( iconRect.center() ); + p.drawPixmap( r, *icon ); + } + + //p.drawRect( r ); // debug + + if ( QApplication::reverseLayout() ) + tr.addCoords( 0, 0, -(16 + iconSpacing), 0 ); + else + tr.addCoords( (16 + iconSpacing), 0, 0, 0 ); + } + + // Draw the titlebar text + int flags = AlignVCenter | SingleLine; + flags |= ( QApplication::reverseLayout() ? AlignRight : AlignLeft ); + + if ( clientHandler->useShadowedText() ) + { + p.translate( QApplication::reverseLayout() ? -1 : 1, 1 ); + p.setPen( active ? QColor(65,153,238).dark() : + QColor(180,210,246).dark() ); // ### hardcoded color + p.drawText( tr, flags, caption() ); + p.translate( QApplication::reverseLayout() ? 1 : -1, -1 ); + } + + p.setPen( Qt::white ); // ### hardcoded color + //p.setPen( options->color( Options::Font, active ) ); + p.drawText( tr, flags, caption() ); + + captionBufferDirty = false; +} + + +void KeramikClient::calculateCaptionRect() +{ + QFontMetrics fm( options->font(isActive()) ); + int cw = fm.width( caption() ) + 95; + int titleBaseY = clientHandler->titleBarHeight() - clientHandler->titleBarBaseHeight(); + + if ( clientHandler->showAppIcons() ) + cw += 16 + 4; // icon width + space + + cw = QMIN( cw, titlebar->geometry().width() ); + captionRect = QStyle::visualRect( QRect(titlebar->geometry().x(), isActive() ? 0 : titleBaseY, + cw, clientHandler->titleBarHeight() - ( isActive() ? 0 : titleBaseY )), + titlebar->geometry() ); +} + + +void KeramikClient::captionChange( const QString& ) +{ + QRect r( captionRect ); + calculateCaptionRect(); + + if ( r.size() != captionRect.size() ) + maskDirty = true; + + captionBufferDirty = true; + + repaint( r | captionRect, false ); +} + + +void KeramikClient::iconChange() +{ + if ( clientHandler->showAppIcons() ) { + + // Force updateCaptionBuffer() to recreate the cached icons + if ( activeIcon ) + delete activeIcon; + + if ( inactiveIcon ) + delete inactiveIcon; + + activeIcon = inactiveIcon = NULL; + + captionBufferDirty = true; + repaint( captionRect, false ); + } +} + + +void KeramikClient::activeChange( bool ) +{ + // Note: It's assumed that the same font will always be used for both active + // and inactive windows, since the fonts kcm hasn't supported setting + // different fonts for different window states for some time. + if ( clientHandler->titleBarHeight() != clientHandler->titleBarBaseHeight() ) { + calculateCaptionRect(); + maskDirty = true; + } + + captionBufferDirty = true; + + repaint( false ); + + for ( int i=0; i < NumButtons; i++ ) + if ( button[i] ) button[i]->repaint(); +} + + +void KeramikClient::maximizeChange( bool maximized ) +{ + if ( button[ MaxButton ] ) { + button[ MaxButton ]->setTipText( maximized ? i18n("Restore") : i18n("Maximize") ); + button[ MaxButton ]->repaint(); + } +} + + +void KeramikClient::stickyChange( bool on ) +{ + if ( button[ StickyButton ] ) + button[ StickyButton ]->setTipText( on ? i18n("Un-Sticky") : i18n("Sticky") ); +} + + +void KeramikClient::menuButtonPressed() +{ + static QTime *t = NULL; + static KeramikClient *tc = NULL; + + if ( !t ) + t = new QTime; + + if ( tc != this || t->elapsed() > QApplication::doubleClickInterval() ) + { + QPoint menuPoint ( button[MenuButton]->rect().bottomLeft().x() - 6, + button[MenuButton]->rect().bottomLeft().y() + 3 ); + workspace()->clientPopup( this )->popup( button[MenuButton]->mapToGlobal( menuPoint ) ); + + // Post a fake mouse button release event to the menu button + // to ensure that it's redrawn in its unpressed state + QApplication::postEvent( button[MenuButton], new QMouseEvent( QEvent::MouseButtonRelease, + QPoint(0,0), Qt::LeftButton, Qt::LeftButton ) ); + } else + closeWindow(); + + + t->start(); + tc = this; +} + + +void KeramikClient::slotMaximize() +{ + if ( button[ MaxButton ]->lastButton() == MidButton ) + maximize( MaximizeVertical ); + + else if ( button[ MaxButton ]->lastButton() == RightButton ) + maximize( MaximizeHorizontal ); + + else + maximize(); +} + + +void KeramikClient::paintEvent( QPaintEvent *e ) +{ + if ( !keramik_initialized ) + return; + + QPainter p( this ); + QRect updateRect( e->rect() ); + bool active = isActive(); + int titleBaseY = clientHandler->titleBarHeight() + - clientHandler->titleBarBaseHeight(); + + if ( maskDirty ) + updateMask(); + + // Titlebar + // ----------------------------------------------------------------------- + if ( updateRect.y() < clientHandler->titleBarHeight() ) + { + if ( captionBufferDirty ) + updateCaptionBuffer(); + + // Top left corner + if ( updateRect.x() < 15 ) + p.drawPixmap( 0, titleBaseY, *clientHandler->tile( TitleLeft, active ) ); + + // Space between the top left corner and the caption bubble + if ( updateRect.x() < captionRect.left() && updateRect.right() > 15 ) { + int x1 = QMAX( 15, updateRect.x() ); + int x2 = QMIN( captionRect.left(), updateRect.right() ); + + p.drawTiledPixmap( x1, titleBaseY, x2 - x1 + 1, clientHandler->titleBarBaseHeight(), + *clientHandler->tile( TitleCenter, active ) ); + } + + // Caption bubble + if ( updateRect.x() < captionRect.right() && updateRect.right() > 15 ) { + if ( captionRect.width() >= 28 ) + p.drawPixmap( captionRect.left(), active ? 0 : titleBaseY, captionBuffer ); + else + p.drawTiledPixmap( captionRect.x(), titleBaseY, captionRect.width(), + clientHandler->titleBarBaseHeight(), + *clientHandler->tile( TitleCenter, active ) ); + } + + // Space between the caption bubble and the top right corner + if ( updateRect.right() > captionRect.right() && updateRect.x() < width() - 15 ) { + int x1 = QMAX( captionRect.right() + 1, updateRect.x() ); + int x2 = QMIN( width() - 15, updateRect.right() ); + + p.drawTiledPixmap( x1, titleBaseY, x2 - x1 + 1, clientHandler->titleBarBaseHeight(), + *clientHandler->tile( TitleCenter, active ) ); + } + + // Top right corner + if ( updateRect.right() > width() - 15 ) + p.drawPixmap( width() - 15, titleBaseY, *clientHandler->tile( TitleRight, active ) ); + } + + // Borders + // ----------------------------------------------------------------------- + if ( updateRect.bottom() > clientHandler->titleBarHeight() + && updateRect.top() < height() - 8 ) + { + int top = QMAX( clientHandler->titleBarHeight(), updateRect.top() ); + int bottom = QMIN( updateRect.bottom(), height() - 8 ); + + // Left border + if ( updateRect.x() <= 4 ) { + const QPixmap *tile = clientHandler->tile( BorderLeft, active ); + p.drawTiledPixmap( 0, top, tile->width(), bottom - top + 1, *tile ); + } + + // Right border + if ( e->rect().right() >= width()-5 ) { + const QPixmap *tile = clientHandler->tile( BorderRight, active ); + p.drawTiledPixmap( width() - tile->width(), top, + tile->width(), bottom - top + 1, *tile ); + } + } + + // Bottom grab bar + // ----------------------------------------------------------------------- + if ( updateRect.bottom() > height() - 8 ) { + // Bottom left corner + if ( updateRect.x() < 9 ) + p.drawPixmap( 0, height() - 8, *clientHandler->tile( GrabBarLeft, active ) ); + + // Space between the left corner and the right corner + if ( updateRect.x() < width() - 9 ) { + int x1 = QMAX( 9, updateRect.x() ); + int x2 = QMIN( width() - 9, updateRect.right() ); + + p.drawTiledPixmap( x1, height() - 8, x2 - x1 + 1, 8, + *clientHandler->tile( GrabBarCenter, active ) ); + } + + // Bottom right corner + if ( updateRect.right() > width() - 9 ) + p.drawPixmap( width()-9, height()-8, *clientHandler->tile( GrabBarRight, active ) ); + } +} + + +void KeramikClient::resizeEvent( QResizeEvent *e ) +{ + Client::resizeEvent( e ); + + QRect r( captionRect ); + calculateCaptionRect(); + + if ( r.size() != captionRect.size() ) + captionBufferDirty = true; + + maskDirty = true; + + if ( isVisible() ) + { + update( rect() ); + int dx = 0; + int dy = 0; + + if ( e->oldSize().width() != width() ) + dx = 32 + QABS( e->oldSize().width() - width() ); + + if ( e->oldSize().height() != height() ) + dy = 8 + QABS( e->oldSize().height() - height() ); + + if ( dy ) + update( 0, height() - dy + 1, width(), dy ); + + if ( dx ) + { + update( width() - dx + 1, 0, dx, height() ); + update( QRect( QPoint(4,4), titlebar->geometry().bottomLeft() - QPoint(1,0) ) ); + update( QRect( titlebar->geometry().topRight(), QPoint( width() - 4, titlebar->geometry().bottom() ) ) ); + // Titlebar needs no paint event + QApplication::postEvent( this, new QPaintEvent( titlebar->geometry(), FALSE ) ); + } + } +} + + +void KeramikClient::mouseDoubleClickEvent( QMouseEvent *e ) +{ + if ( QRect( 0, 0, width(), clientHandler->titleBarHeight() ).contains( e->pos() ) ) + workspace()->performWindowOperation( this, options->operationTitlebarDblClick() ); +} + + +Client::MousePosition KeramikClient::mousePosition( const QPoint &p ) const +{ + int titleBaseY = clientHandler->titleBarHeight() + - clientHandler->titleBarBaseHeight(); + + int leftBorder = clientHandler->tile( BorderLeft, true )->width(); + int rightBorder = width() - clientHandler->tile( BorderRight, true )->width() - 1; + + + // Test corners & sides + if ( p.x() < leftBorder + 11 ) { + if ( p.y() < titleBaseY + 11 ) { + if ( (p.y() < titleBaseY + 3 && p.x() < leftBorder + 11) || + (p.y() < titleBaseY + 6 && p.x() < leftBorder + 6) || + (p.y() < titleBaseY + 11 && p.x() < leftBorder + 3) ) + return TopLeft; + else + return Center; + } + + if ( p.y() > height()-23 ) + return BottomLeft; + + if ( p.x() > leftBorder ) + return Center; + + return Left; + } + + if ( p.x() > rightBorder - 11 ) { + if ( p.y() < titleBaseY + 11 ) { + if ( (p.y() < titleBaseY + 3 && p.x() > rightBorder - 11) || + (p.y() < titleBaseY + 6 && p.x() > rightBorder - 6) || + (p.y() < titleBaseY + 11 && p.x() > rightBorder - 3) ) + return TopRight; + else + return Center; + } + + if ( p.y() > height()-23 ) + return BottomRight; + + if ( p.x() < rightBorder ) + return Center; + + return Right; + } + + // Test top & bottom + if ( p.y() <= 3 ) + return Top; + + if ( (p.x() < captionRect.left() || p.x() > captionRect.right()) + && p.y() < titleBaseY+3 ) + return Top; + + if ( p.y() > height() - 8 ) + return Bottom; + + return Center; +} + + + +// ------------------------------------------------------------------------------------------- + + + +extern "C" +{ + Client *allocate( Workspace *ws, WId w ) + { + return new KeramikClient( ws, w ); + } + + void init() + { + clientHandler = new KeramikHandler(); + } + + void reset() + { + clientHandler->reset(); + } + + void deinit() + { + delete clientHandler; + } +} + + + +// vim: set noet ts=4 sw=4: diff --git a/clients/keramik/keramik.desktop b/clients/keramik/keramik.desktop new file mode 100644 index 0000000000..6764ea73de --- /dev/null +++ b/clients/keramik/keramik.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Name=Keramik +X-KDE-Library=kwin_keramik + diff --git a/clients/keramik/keramik.h b/clients/keramik/keramik.h new file mode 100644 index 0000000000..debed3eea6 --- /dev/null +++ b/clients/keramik/keramik.h @@ -0,0 +1,177 @@ +/* + * $Id$ + * + * Keramik KWin client (version 0.6) + * + * Copyright (C) 2002 Fredrik Höglund + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the license, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#ifndef __KERAMIK_H +#define __KERAMIK_H + +#include + +#include "../../client.h" +#include "../../kwinbutton.h" + +static QDict< QImage > imageDict; + +#include "tiles.h" + + +class QSpacerItem; + +namespace KWinInternal { + + enum TilePixmap { TitleLeft=0, TitleCenter, TitleRight, + CaptionLeft, CaptionCenter, CaptionRight, GrabBarLeft, + BorderLeft, BorderRight, GrabBarCenter, GrabBarRight, + NumTiles }; + + enum Button { MenuButton=0, StickyButton, HelpButton, MinButton, + MaxButton, CloseButton, NumButtons }; + + enum ButtonDeco { Menu=0, Sticky, Unsticky, Help, Iconify, Maximize, + Restore, Close, NumButtonDecos }; + + struct SettingsCache + { + QColor titleColor; + QColor buttonColor; + QString buttonsLeft; + QString buttonsRight; + bool smallCaptionBubbles:1; + }; + + class KeramikHandler : public QObject { + + Q_OBJECT + + public: + KeramikHandler(); + ~KeramikHandler(); + + void reset(); + + bool showAppIcons() const { return showIcons; } + bool useShadowedText() const { return shadowedText; } + int titleBarHeight() const { return activeTiles[CaptionCenter]->height(); } + int titleBarBaseHeight() const { return activeTiles[TitleCenter]->height(); } + + const QPixmap *roundButton() const { return titleButtonRound; } + const QPixmap *squareButton() const { return titleButtonSquare; } + const QBitmap *buttonDeco( ButtonDeco deco ) const + { return buttonDecos[ deco ]; } + + inline const QPixmap *tile( TilePixmap tilePix, bool active ) const; + + signals: + void softReset(); + + private: + void readConfig(); + void createPixmaps(); + void destroyPixmaps(); + + void flip( QPixmap *&, QPixmap *& ); + void flip( QPixmap *& ); + void recolor( QImage &, const QColor & ); + QPixmap *loadPixmap( const QString &, const QColor & ); + + private: + bool showIcons, shadowedText, smallCaptionBubbles; + SettingsCache *settings_cache; + + QPixmap *activeTiles[ NumTiles ]; + QPixmap *inactiveTiles[ NumTiles ]; + QBitmap *buttonDecos[ NumButtonDecos ]; + + QPixmap *titleButtonRound, *titleButtonSquare; + + }; // class KeramikHandler + + + class KeramikButton : public KWinInternal::KWinButton + { + public: + KeramikButton( Client *, const char *, Button, const QString & ); + ~KeramikButton(); + + int lastButton() const { return lastbutton; } + + private: + void enterEvent( QEvent * ); + void leaveEvent( QEvent * ); + void mousePressEvent( QMouseEvent * ); + void mouseReleaseEvent( QMouseEvent * ); + void drawButton( QPainter * ); + + private: + Client *client; + Button button; + bool hover; + int lastbutton; + }; // class KeramikButton + + + class KeramikClient : public KWinInternal::Client + { + Q_OBJECT + + public: + + KeramikClient( Workspace *, WId, QWidget *parent = 0L, const char *name = 0L ); + ~KeramikClient(); + + private: + void addButtons( QHBoxLayout*, const QString & ); + void updateMask(); + void updateCaptionBuffer(); + void captionChange( const QString& ); + void iconChange(); + void activeChange( bool ); + void maximizeChange( bool ); + void stickyChange( bool ); + void resizeEvent( QResizeEvent *); + void paintEvent( QPaintEvent *); + void mouseDoubleClickEvent( QMouseEvent * ); + MousePosition mousePosition( const QPoint & ) const; + + void calculateCaptionRect(); + + private slots: + void menuButtonPressed(); + void slotMaximize(); + void reset(); + + private: + QSpacerItem *titlebar; + KeramikButton *button[ NumButtons ]; + QRect captionRect; + QPixmap captionBuffer; + QPixmap *activeIcon, *inactiveIcon; + bool captionBufferDirty, maskDirty; + + }; // class KeramikClient + +} // namespace KWinInternal + +#endif // ___KERAMIK_H + +// vim: set noet ts=4 sw=4: diff --git a/clients/keramik/pics/border-active-left.png b/clients/keramik/pics/border-active-left.png new file mode 100644 index 0000000000..18d35a0cc3 Binary files /dev/null and b/clients/keramik/pics/border-active-left.png differ diff --git a/clients/keramik/pics/border-active-right.png b/clients/keramik/pics/border-active-right.png new file mode 100644 index 0000000000..c2ca988904 Binary files /dev/null and b/clients/keramik/pics/border-active-right.png differ diff --git a/clients/keramik/pics/border-inactive-left.png b/clients/keramik/pics/border-inactive-left.png new file mode 100644 index 0000000000..ce421b3d2a Binary files /dev/null and b/clients/keramik/pics/border-inactive-left.png differ diff --git a/clients/keramik/pics/border-inactive-right.png b/clients/keramik/pics/border-inactive-right.png new file mode 100644 index 0000000000..8d89b261b3 Binary files /dev/null and b/clients/keramik/pics/border-inactive-right.png differ diff --git a/clients/keramik/pics/caption-active-large-center.png b/clients/keramik/pics/caption-active-large-center.png new file mode 100644 index 0000000000..ef5a2b7c2a Binary files /dev/null and b/clients/keramik/pics/caption-active-large-center.png differ diff --git a/clients/keramik/pics/caption-active-large-left.png b/clients/keramik/pics/caption-active-large-left.png new file mode 100644 index 0000000000..0949598225 Binary files /dev/null and b/clients/keramik/pics/caption-active-large-left.png differ diff --git a/clients/keramik/pics/caption-active-large-right.png b/clients/keramik/pics/caption-active-large-right.png new file mode 100644 index 0000000000..d3fe92aac4 Binary files /dev/null and b/clients/keramik/pics/caption-active-large-right.png differ diff --git a/clients/keramik/pics/caption-active-small-center.png b/clients/keramik/pics/caption-active-small-center.png new file mode 100644 index 0000000000..457c1d7be6 Binary files /dev/null and b/clients/keramik/pics/caption-active-small-center.png differ diff --git a/clients/keramik/pics/caption-active-small-left.png b/clients/keramik/pics/caption-active-small-left.png new file mode 100644 index 0000000000..6f9f270d60 Binary files /dev/null and b/clients/keramik/pics/caption-active-small-left.png differ diff --git a/clients/keramik/pics/caption-active-small-right.png b/clients/keramik/pics/caption-active-small-right.png new file mode 100644 index 0000000000..3e5030a49d Binary files /dev/null and b/clients/keramik/pics/caption-active-small-right.png differ diff --git a/clients/keramik/pics/caption-inactive-center.png b/clients/keramik/pics/caption-inactive-center.png new file mode 100644 index 0000000000..ef574d7784 Binary files /dev/null and b/clients/keramik/pics/caption-inactive-center.png differ diff --git a/clients/keramik/pics/caption-inactive-left.png b/clients/keramik/pics/caption-inactive-left.png new file mode 100644 index 0000000000..d19f8071c9 Binary files /dev/null and b/clients/keramik/pics/caption-inactive-left.png differ diff --git a/clients/keramik/pics/caption-inactive-right.png b/clients/keramik/pics/caption-inactive-right.png new file mode 100644 index 0000000000..5457b605a0 Binary files /dev/null and b/clients/keramik/pics/caption-inactive-right.png differ diff --git a/clients/keramik/pics/grabbar-active-center.png b/clients/keramik/pics/grabbar-active-center.png new file mode 100644 index 0000000000..653ccb5946 Binary files /dev/null and b/clients/keramik/pics/grabbar-active-center.png differ diff --git a/clients/keramik/pics/grabbar-active-left.png b/clients/keramik/pics/grabbar-active-left.png new file mode 100644 index 0000000000..ec36c08910 Binary files /dev/null and b/clients/keramik/pics/grabbar-active-left.png differ diff --git a/clients/keramik/pics/grabbar-active-right.png b/clients/keramik/pics/grabbar-active-right.png new file mode 100644 index 0000000000..81276b9e0a Binary files /dev/null and b/clients/keramik/pics/grabbar-active-right.png differ diff --git a/clients/keramik/pics/grabbar-inactive-center.png b/clients/keramik/pics/grabbar-inactive-center.png new file mode 100644 index 0000000000..ba29b9a59c Binary files /dev/null and b/clients/keramik/pics/grabbar-inactive-center.png differ diff --git a/clients/keramik/pics/grabbar-inactive-left.png b/clients/keramik/pics/grabbar-inactive-left.png new file mode 100644 index 0000000000..ae394df888 Binary files /dev/null and b/clients/keramik/pics/grabbar-inactive-left.png differ diff --git a/clients/keramik/pics/grabbar-inactive-right.png b/clients/keramik/pics/grabbar-inactive-right.png new file mode 100644 index 0000000000..1569a926ad Binary files /dev/null and b/clients/keramik/pics/grabbar-inactive-right.png differ diff --git a/clients/keramik/pics/titlebar-active-center.png b/clients/keramik/pics/titlebar-active-center.png new file mode 100644 index 0000000000..777d99a2a1 Binary files /dev/null and b/clients/keramik/pics/titlebar-active-center.png differ diff --git a/clients/keramik/pics/titlebar-active-left.png b/clients/keramik/pics/titlebar-active-left.png new file mode 100644 index 0000000000..c42b3ba7f4 Binary files /dev/null and b/clients/keramik/pics/titlebar-active-left.png differ diff --git a/clients/keramik/pics/titlebar-active-right.png b/clients/keramik/pics/titlebar-active-right.png new file mode 100644 index 0000000000..7ab735cc66 Binary files /dev/null and b/clients/keramik/pics/titlebar-active-right.png differ diff --git a/clients/keramik/pics/titlebar-inactive-center.png b/clients/keramik/pics/titlebar-inactive-center.png new file mode 100644 index 0000000000..0da7e3f31e Binary files /dev/null and b/clients/keramik/pics/titlebar-inactive-center.png differ diff --git a/clients/keramik/pics/titlebar-inactive-left.png b/clients/keramik/pics/titlebar-inactive-left.png new file mode 100644 index 0000000000..85a5aa3b0a Binary files /dev/null and b/clients/keramik/pics/titlebar-inactive-left.png differ diff --git a/clients/keramik/pics/titlebar-inactive-right.png b/clients/keramik/pics/titlebar-inactive-right.png new file mode 100644 index 0000000000..419e72bbde Binary files /dev/null and b/clients/keramik/pics/titlebar-inactive-right.png differ diff --git a/clients/keramik/pics/titlebutton-round.png b/clients/keramik/pics/titlebutton-round.png new file mode 100644 index 0000000000..dd2369af38 Binary files /dev/null and b/clients/keramik/pics/titlebutton-round.png differ diff --git a/clients/keramik/pics/titlebutton-square.png b/clients/keramik/pics/titlebutton-square.png new file mode 100644 index 0000000000..871cf751a2 Binary files /dev/null and b/clients/keramik/pics/titlebutton-square.png differ diff --git a/clients/keramik/tiles.h b/clients/keramik/tiles.h new file mode 100644 index 0000000000..fa4f0be76c --- /dev/null +++ b/clients/keramik/tiles.h @@ -0,0 +1,1331 @@ +#ifndef _1804289383 +#define _1804289383 +#include +#include +static const unsigned char border_active_left_data[] = { + 0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00, + 0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00, + 0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00, + 0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00, + 0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00, + 0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00, + 0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00, + 0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00 +}; + +static const QRgb border_active_left_ctable[] = { + 0xffffffff,0xffcddaf6 +}; + +/* Generated by qembed */ +static const unsigned char border_active_right_data[] = { + 0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01, + 0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02, + 0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01, + 0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02, + 0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01, + 0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02, + 0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01, + 0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02, + 0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01, + 0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02, + 0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01, + 0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02, + 0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01, + 0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02, + 0x00,0x01,0x01,0x02 +}; + +static const QRgb border_active_right_ctable[] = { + 0xffcddaf6,0xffffffff,0xff2e5f91 +}; + +static const unsigned char border_inactive_left_data[] = { + 0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00, + 0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00, + 0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00, + 0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00, + 0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00, + 0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00, + 0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00, + 0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00 +}; + +static const QRgb border_inactive_left_ctable[] = { + 0xffffffff,0xffcddaf6 +}; + +static const unsigned char border_inactive_right_data[] = { + 0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01, + 0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02, + 0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01, + 0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02, + 0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01, + 0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02, + 0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01, + 0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02, + 0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01, + 0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02, + 0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01, + 0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02, + 0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01, + 0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x02, + 0x00,0x01,0x01,0x02 +}; + +static const QRgb border_inactive_right_ctable[] = { + 0xffcdd6e6,0xffffffff,0xff3a5b7c +}; + +static const unsigned char caption_active_large_center_data[] = { + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, + 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, + 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08, + 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, + 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, + 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09, + 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, + 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, + 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, + 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, + 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, + 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, + 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, + 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, + 0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, + 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, + 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, + 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, + 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, + 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f, + 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, + 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, + 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x12,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, + 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, + 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, + 0x13,0x13,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, + 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, + 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, + 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, + 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, + 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x16,0x16, + 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, + 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, + 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x17,0x17,0x17,0x17, + 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, + 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, + 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, + 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, + 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, + 0x19,0x19,0x19,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x1a,0x1b,0x1c,0x1d,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, + 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, + 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, + 0x1f,0x20,0x21,0x22,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23, + 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23, + 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23 +}; + +static const QRgb caption_active_large_center_ctable[] = { + 0xffffff,0xffffffff,0xff64b2ff,0xff62b1fe,0xff60affd,0xff5eadfc,0xff5babfb,0xff58a9f9,0xff54a6f7,0xff51a3f5,0xff4da1f4,0xff4a9ef2,0xff469bf0,0xff4298ee, + 0xff3e95ec,0xff3a92ea,0xff3690e8,0xff328de6,0xff2f8ae4,0xff2b87e3,0xff2784e1,0xff2482df,0xff2180de,0xff1e7edc,0xff1c7cdb,0xff76afe9,0xffc8d6e4,0xffc6d4e2, + 0xffc5d3e0,0xffc4d2df,0xffc4d1df,0xff237dd8,0xff237bd4,0xff227ad1,0xff2279d0,0xff2278cf +}; + +static const unsigned char caption_active_large_left_data[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01, + 0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02, + 0x03,0x04,0x05,0x06,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x07,0x08,0x09,0x09,0x09,0x09,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x0a,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,0x0d,0x0d,0x0d,0x0e, + 0x0f,0x01,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x12,0x12, + 0x12,0x13,0x01,0x14,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x00,0x00, + 0x16,0x16,0x17,0x01,0x02,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, + 0x00,0x00,0x1a,0x1a,0x1b,0x01,0x1c,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d, + 0x1d,0x1d,0x00,0x00,0x1a,0x1a,0x13,0x01,0x1e,0x1f,0x1f,0x1f,0x1f,0x1f, + 0x1f,0x1f,0x1f,0x1f,0x00,0x00,0x20,0x20,0x21,0x01,0x22,0x23,0x23,0x23, + 0x23,0x23,0x23,0x23,0x23,0x23,0x00,0x00,0x24,0x24,0x25,0x01,0x26,0x27, + 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x00,0x00,0x28,0x28,0x01,0x01, + 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,0x2a,0x2a, + 0x01,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x00, + 0x0d,0x0d,0x25,0x01,0x2c,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d, + 0x00,0x00,0x2e,0x2e,0x01,0x01,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f, + 0x2f,0x2f,0x00,0x00,0x30,0x30,0x02,0x01,0x31,0x32,0x32,0x32,0x32,0x32, + 0x32,0x32,0x32,0x32,0x00,0x00,0x33,0x33,0x34,0x01,0x35,0x36,0x36,0x36, + 0x36,0x36,0x36,0x36,0x36,0x36,0x00,0x00,0x37,0x37,0x38,0x01,0x39,0x3a, + 0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x3a,0x00,0x00,0x3b,0x3b,0x3c,0x01, + 0x3d,0x3e,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x00,0x00,0x40,0x40, + 0x40,0x41,0x01,0x42,0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x00,0x00, + 0x44,0x44,0x44,0x45,0x01,0x46,0x47,0x48,0x48,0x48,0x48,0x48,0x48,0x48, + 0x00,0x00,0x49,0x49,0x49,0x49,0x4a,0x01,0x4b,0x4c,0x4d,0x4d,0x4d,0x4d, + 0x4d,0x4d,0x00,0x00,0x4e,0x4e,0x4e,0x4e,0x4f,0x50,0x01,0x51,0x52,0x53, + 0x53,0x53,0x53,0x53,0x00,0x00,0x54,0x54,0x54,0x54,0x54,0x55,0x56,0x01, + 0x01,0x57,0x58,0x59,0x59,0x59,0x00,0x00,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a, + 0x5b,0x5c,0x5d,0x01,0x01,0x5e,0x5f,0x60,0x00,0x00,0x61,0x61,0x61,0x61, + 0x61,0x61,0x61,0x62,0x63,0x64,0x65,0x01,0x01,0x01,0x00,0x00,0x66,0x66, + 0x66,0x66,0x66,0x66,0x66,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x00,0x00, + 0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6e,0x6f,0x70,0x71,0x72, + 0x00,0x00 +}; + +static const QRgb caption_active_large_left_ctable[] = { + 0xffffff,0xffffffff,0xfffcfdff,0xffcde6ff,0xff99cdff,0xff83c1ff,0xff67b4ff,0xffe5f2ff,0xff84c2fe,0xff62b1fe,0xffb7dbfe,0xff66b2fd,0xff60affd,0xffc8e0f8, + 0xffcce2f9,0xfff9fcfe,0xffa7d2fd,0xff5eadfc,0xffcfe5fb,0xffeef6fe,0xffcce5fe,0xff5babfb,0xffd3e9fe,0xffd7ebfe,0xff6db4fa,0xff58a9f9,0xffd1e7fd,0xffe3f1fe, + 0xffc7e2fc,0xff54a6f7,0xff90c5f9,0xff51a3f5,0xffcfe6fd,0xfff9fcff,0xff63adf5,0xff4da1f4,0xffcbe4fd,0xfffeffff,0xff4ea0f2,0xff4a9ef2,0xffcce3fa,0xff469bf0, + 0xffcae2fa,0xff4298ee,0xff4297ec,0xff3e95ec,0xffbedcfb,0xff3a92ea,0xffc4def6,0xff4196e9,0xff3690e8,0xffc2dcf6,0xfff2f7fd,0xff5fa6eb,0xff328de6,0xffc0dbf5, + 0xffe2effa,0xff99c6f2,0xff2f8ae4,0xffafd4f9,0xffc3dffb,0xffdcebfa,0xff2f89e4,0xff2b87e3,0xffbdd8f3,0xffeff5fc,0xff79b3ec,0xff2784e1,0xffbcd8f3,0xffd6e7f8, + 0xffeff6fd,0xff3c90e3,0xff2482df,0xffbbd7f2,0xffe8f1fa,0xffd7e8f9,0xff3289e0,0xff2180de,0xffa1ccf6,0xffa7cff7,0xffe9f3fc,0xffdaeaf9,0xff4795e2,0xff1e7edc, + 0xffb9d5f1,0xffbfd8f1,0xffecf3fa,0xffa9cdf1,0xff4192e1,0xff1c7cdb,0xffb6d3ef,0xffb5d1ed,0xffdee9f5,0xfffcfdfe,0xffe2eefa,0xffa3caf0,0xff9fc7ef,0xffafceeb, + 0xffadcce8,0xffb5cfe7,0xffd9e4ef,0xffedf1f5,0xff97c6f5,0xff96c4f3,0xff93c1ee,0xff8ebae7,0xff9bbee1,0xffb2cae2,0xffb1c7dc,0xff278bef,0xff278aee,0xff2789ec, + 0xff2687e8,0xff2584e3,0xff2481dd +}; + +static const unsigned char caption_active_large_right_data[] = { + 0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x02,0x03,0x04,0x05,0x01,0x01,0x01,0x01,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x07,0x08,0x01,0x01, + 0x09,0x09,0x01,0x01,0x01,0x01,0x00,0x00,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, + 0x0b,0x0c,0x01,0x0d,0x0d,0x01,0x01,0x01,0x00,0x00,0x0e,0x0e,0x0e,0x0e, + 0x0e,0x0e,0x0e,0x0f,0x10,0x01,0x11,0x12,0x13,0x13,0x00,0x00,0x14,0x14, + 0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x16,0x01,0x17,0x18,0x19,0x00,0x00, + 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x01,0x1c,0x1d,0x1e, + 0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x01,0x22, + 0x23,0x24,0x00,0x00,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26, + 0x27,0x01,0x28,0x29,0x00,0x00,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, + 0x2a,0x2a,0x2b,0x01,0x2c,0x2d,0x00,0x00,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f, + 0x2f,0x2f,0x2f,0x2f,0x30,0x01,0x31,0x32,0x00,0x00,0x34,0x34,0x34,0x34, + 0x34,0x34,0x34,0x34,0x34,0x34,0x35,0x01,0x36,0x37,0x00,0x00,0x39,0x39, + 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x3a,0x01,0x3b,0x3c,0x00,0x00, + 0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x3f,0x01,0x40,0x41, + 0x00,0x00,0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x44,0x01, + 0x45,0x46,0x00,0x00,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48, + 0x49,0x01,0x4a,0x4b,0x00,0x00,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, + 0x4d,0x4d,0x4e,0x01,0x4f,0x50,0x00,0x00,0x52,0x52,0x52,0x52,0x52,0x52, + 0x52,0x52,0x52,0x53,0x54,0x01,0x55,0x56,0x00,0x00,0x58,0x58,0x58,0x58, + 0x58,0x58,0x58,0x58,0x58,0x59,0x01,0x5a,0x5b,0x5c,0x00,0x00,0x5e,0x5e, + 0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5f,0x60,0x01,0x61,0x62,0x63,0x00,0x00, + 0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x66,0x01,0x67,0x68,0x69,0x6a, + 0x00,0x00,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6d,0x01,0x01,0x6e,0x6f, + 0x70,0x71,0x00,0x00,0x72,0x72,0x72,0x72,0x72,0x73,0x74,0x01,0x01,0x75, + 0x76,0x77,0x78,0x79,0x00,0x00,0x7b,0x7b,0x7b,0x7c,0x7d,0x7e,0x01,0x01, + 0x7f,0x80,0x81,0x82,0x83,0x84,0x00,0x00,0x85,0x86,0x87,0x88,0x01,0x01, + 0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x00,0x00,0x01,0x01,0x01,0x01, + 0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x99,0x00,0x00,0x9a,0x9b, + 0x9c,0x9d,0x9e,0x9f,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa5,0xa5,0x00,0x00, + 0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xaf,0xaf,0xaf,0xaf, + 0x00,0x00 +}; + +static const QRgb caption_active_large_right_ctable[] = { + 0xffffff,0xffffffff,0xff64b2ff,0xff75baff,0xff88c4ff,0xffb3d9ff,0xff62b1fe,0xff68b4fe,0xffb5daff,0xfffefefe,0xff60affd,0xff83c1fd,0xffe5f2ff,0xfffdfdfd, + 0xff5eadfc,0xff6ab3fc,0xffebf5ff,0xffe7f0f9,0xffc6def6,0xffc8e0f8,0xff5babfb,0xff79bafc,0xfffcfdff,0xffd0e2f4,0xffcde3f9,0xffcfe5fb,0xff58a9f9,0xffbfdefd, + 0xffe7eff6,0xffcde3f7,0xffd2e8fd,0xffd3e9fe,0xff54a6f7,0xff6db3f8,0xfff4f6f9,0xffc5d9ee,0xffcfe4fa,0xffd1e7fd,0xff51a3f5,0xffe6f2fe,0xffc5d6e6,0xffcbe1f6, + 0xff4da1f4,0xffc2dffb,0xffcbd7e4,0xffc4daf0,0xffcee5fc,0xff4a9ef2,0xffadd3f9,0xffd0dae4,0xffbcd3ea,0xffc9e2fb,0xff469bf0,0xff77b6f4,0xffe5e9ee,0xffb8cde1, + 0xffc8dff5,0xff4298ee,0xff9fcaf6,0xffcbd4dc,0xffb2c7dd,0xffc4dcf3,0xff3e95ec,0xffa7cff6,0xffc3ccd5,0xffafc4d9,0xffc2d9f0,0xff3a92ea,0xff9bc7f4,0xffc6d0db, + 0xffa6c0dc,0xffb8d5f3,0xff3690e8,0xffafd3f6,0xffbbc7d1,0xffacc3d8,0xffbed7ee,0xff328de6,0xffc7e0f8,0xffaebcca,0xffacc3da,0xffbdd6ef,0xff2f8ae4,0xff368ee5, + 0xfff8fbfe,0xff95a9bb,0xffacc5dc,0xffbcd7f0,0xff2b87e3,0xff78b3ed,0xffd7dde3,0xff88a5c1,0xffa0c2e4,0xffadd2f6,0xff2784e1,0xff2b86e2,0xffe0edfb,0xffb0bbc5, + 0xff9bb1c7,0xffb1cae4,0xffbcd6f1,0xff2482df,0xff97c4f0,0xffdadee1,0xff879bae,0xffa3bbd3,0xffb5d0e9,0xffbbd7f2,0xff2180de,0xff75b0eb,0xff99a7b4,0xff95abc1, + 0xffacc5de,0xffb8d4ee,0xff1e7edc,0xff2281dd,0xff99c4ef,0xff9eafbe,0xff7898b7,0xff8db2d7,0xff9bc4ec,0xffa0cbf5,0xffa1ccf6,0xff1c7cdb,0xff2481dc,0xff6aa9e7, + 0xffdeecfa,0xffa8b2bd,0xff869baf,0xff9db4cc,0xffaec8e3,0xffb7d2ee,0xffb9d5f1,0xff8abbec,0xffa3caf0,0xffbdd8f4,0xfff7fafe,0xffd9dde1,0xff94a3b1,0xff889db2, + 0xff9ab3ca,0xffa9c4de,0xffb2cfea,0xffb5d2ee,0xffb6d3ef,0xffd7dce1,0xffaeb9c4,0xff7e94a9,0xff8ba3ba,0xff99b4ce,0xffa5c2dd,0xffaccae6,0xffaecdea,0xffafceeb, + 0xffb7c8d8,0xffa7bbd0,0xff99b1c9,0xff799abc,0xff759abe,0xff7ca2c9,0xff83acd4,0xff8bb6e1,0xff91beeb,0xff95c4f2,0xff96c5f4,0xff97c6f5,0xff2279d0,0xff227ad1, + 0xff227ad2,0xff237cd6,0xff237ed9,0xff2582e0,0xff2586e6,0xff2689eb,0xff278aee,0xff278bef +}; + +static const unsigned char caption_active_small_center_data[] = { + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00, + 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, + 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, + 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, + 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x08,0x08,0x08,0x08, + 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, + 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, + 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, + 0x08,0x08,0x08,0x08,0x00,0x00,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, + 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, + 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, + 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, + 0x00,0x00,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, + 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, + 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, + 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x00,0x0b,0x0b, + 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, + 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, + 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, + 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x00,0x00,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, + 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, + 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, + 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x00,0x00, + 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, + 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, + 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, + 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x00,0x00,0x0f,0x0f,0x0f,0x0f, + 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, + 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, + 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, + 0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x00,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x12,0x12, + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x12,0x12,0x12,0x00,0x00,0x13,0x13,0x13,0x13,0x13,0x13, + 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, + 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, + 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, + 0x13,0x13,0x00,0x00,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, + 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, + 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, + 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x00,0x00, + 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, + 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, + 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, + 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x00,0x00,0x16,0x16,0x16,0x16, + 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, + 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, + 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, + 0x16,0x16,0x16,0x16,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x00,0x00,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, + 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, + 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, + 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x00,0x00,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00 +}; + +static const QRgb caption_active_small_center_ctable[] = { + 0xffffff,0xffffffff,0xff64b2ff,0xff62b0fe,0xff5faefd,0xff5cacfb,0xff59aafa,0xff55a7f8,0xff51a4f6,0xff4da1f4,0xff499ef2,0xff459bf0,0xff4097ed,0xff3c94eb, + 0xff3790e9,0xff338de7,0xff2f8ae4,0xff2a87e2,0xff2684e0,0xff2381df,0xff1f7fdd,0xff1c7cdc,0xff76afe9,0xffc4d1df,0xff2278cf +}; + +static const unsigned char caption_active_small_left_data[] = { + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x04,0x01,0x05, + 0x06,0x07,0x08,0x09,0x00,0x00,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x01,0x01, + 0x0c,0x0d,0x0e,0x0e,0x0e,0x0e,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0x10,0x01, + 0x01,0x11,0x12,0x13,0x13,0x13,0x13,0x13,0x00,0x00,0x14,0x14,0x14,0x15, + 0x16,0x01,0x17,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x14,0x14, + 0x14,0x19,0x01,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x00,0x00, + 0x1c,0x1c,0x1d,0x01,0x05,0x1e,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f, + 0x00,0x00,0x20,0x20,0x21,0x01,0x22,0x23,0x23,0x23,0x23,0x23,0x23,0x23, + 0x23,0x23,0x00,0x00,0x24,0x24,0x25,0x01,0x26,0x27,0x27,0x27,0x27,0x27, + 0x27,0x27,0x27,0x27,0x00,0x00,0x28,0x28,0x29,0x01,0x2a,0x2b,0x2b,0x2b, + 0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x00,0x02,0x02,0x2c,0x01,0x2d,0x2e, + 0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x00,0x00,0x2f,0x2f,0x01,0x01, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x31,0x31, + 0x05,0x01,0x32,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x00,0x00, + 0x34,0x34,0x35,0x01,0x36,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37,0x37, + 0x00,0x00,0x38,0x38,0x39,0x01,0x3a,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0x3b, + 0x3b,0x3b,0x00,0x00,0x3c,0x3c,0x3d,0x01,0x3e,0x3f,0x40,0x40,0x40,0x40, + 0x40,0x40,0x40,0x40,0x00,0x00,0x41,0x41,0x41,0x42,0x01,0x43,0x44,0x44, + 0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x45,0x45,0x45,0x46,0x01,0x47, + 0x48,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x00,0x00,0x4a,0x4a,0x4a,0x4a, + 0x4b,0x01,0x4c,0x4d,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x00,0x00,0x4f,0x4f, + 0x4f,0x4f,0x50,0x51,0x01,0x52,0x53,0x54,0x54,0x54,0x54,0x54,0x00,0x00, + 0x55,0x55,0x55,0x55,0x55,0x56,0x57,0x01,0x01,0x58,0x59,0x5a,0x5a,0x5a, + 0x00,0x00,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5c,0x5d,0x5e,0x01,0x01,0x5f, + 0x60,0x61,0x00,0x00,0x62,0x62,0x62,0x62,0x62,0x62,0x62,0x63,0x64,0x65, + 0x66,0x01,0x01,0x01,0x00,0x00,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67, + 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x00,0x00,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, + 0x6e,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x73,0x00,0x00 +}; + +static const QRgb caption_active_small_left_ctable[] = { + 0xffffff,0xffffffff,0xffc8e0f8,0xffd4e7fa,0xfff1f7fd,0xfffcfdff,0xffcde6ff,0xff99cdff,0xff83c1ff,0xff67b4ff,0xffcfe5fb,0xffdeedfc,0xffe5f2ff,0xff84c1fe, + 0xff62b0fe,0xffd3e9fe,0xffe1f0fe,0xffb6dafe,0xff65b1fd,0xff5faefd,0xffd1e7fd,0xffd4e9fd,0xfffafdff,0xffa6d2fd,0xff5cacfb,0xffeef6fe,0xffcce5fd,0xff59aafa, + 0xffcfe6fd,0xffd3e8fd,0xff6ab2f9,0xff55a7f8,0xffcbe4fd,0xffe0effe,0xffc6e1fc,0xff51a4f6,0xffcce3fa,0xffedf5fd,0xff8ec3f8,0xff4da1f4,0xffcae2fa,0xfff9fbfe, + 0xff60aaf4,0xff499ef2,0xfffeffff,0xff499df0,0xff459bf0,0xffbedcfb,0xff4097ed,0xffc4def6,0xff479aec,0xff3c94eb,0xffc2dcf6,0xfff2f7fd,0xff63a8ee,0xff3790e9, + 0xffc0dbf5,0xffe2effa,0xff9bc7f3,0xff338de7,0xffafd4f9,0xffc3dffb,0xffddecfb,0xff338ce5,0xff2f8ae4,0xffbdd8f3,0xffeff5fc,0xff7bb5ed,0xff2a87e2,0xffbcd8f3, + 0xffd6e7f8,0xffeff6fd,0xff3e92e3,0xff2684e0,0xffbbd7f2,0xffe8f1fa,0xffd7e8f9,0xff338ae1,0xff2381df,0xffa1ccf6,0xffa7cff7,0xffe9f3fc,0xffdaeaf9,0xff4796e3, + 0xff1f7fdd,0xffb9d5f1,0xffbfd8f1,0xffecf3fa,0xffa9cdf2,0xff4192e2,0xff1c7cdc,0xffb6d3ef,0xffb5d1ed,0xffdee9f5,0xfffcfdfe,0xffe2eefa,0xffa3caf0,0xff9fc7ef, + 0xffafceeb,0xffadcce8,0xffb5cfe7,0xffd9e4ef,0xffedf1f5,0xff97c6f5,0xff96c4f3,0xff93c1ee,0xff8ebae7,0xff9bbee1,0xffb2cae2,0xffb1c7dc,0xff278bef,0xff278aee, + 0xff2789ec,0xff2687e8,0xff2584e3,0xff2481dd +}; + +static const unsigned char caption_active_small_right_data[] = { + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x01,0x01,0x07,0x08,0x08, + 0x08,0x08,0x08,0x08,0x00,0x00,0x09,0x09,0x09,0x09,0x0a,0x0b,0x01,0x01, + 0x0c,0x0d,0x0e,0x0e,0x0e,0x0e,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, + 0x10,0x11,0x01,0x12,0x13,0x14,0x14,0x14,0x00,0x00,0x15,0x15,0x15,0x15, + 0x15,0x15,0x15,0x16,0x17,0x01,0x18,0x0e,0x19,0x19,0x00,0x00,0x1a,0x1a, + 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1c,0x01,0x1d,0x0e,0x19,0x00,0x00, + 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1f,0x01,0x20,0x21,0x22, + 0x00,0x00,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x24,0x01,0x25, + 0x26,0x27,0x00,0x00,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, + 0x29,0x01,0x2a,0x2b,0x00,0x00,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c, + 0x2c,0x2c,0x2d,0x01,0x2e,0x2f,0x00,0x00,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x30,0x30,0x31,0x01,0x32,0x33,0x00,0x00,0x34,0x34,0x34,0x34, + 0x34,0x34,0x34,0x34,0x34,0x34,0x35,0x01,0x36,0x37,0x00,0x00,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x39,0x01,0x3a,0x3b,0x00,0x00, + 0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3d,0x01,0x3e,0x3f, + 0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x41,0x42,0x01, + 0x43,0x44,0x00,0x00,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x46, + 0x01,0x47,0x48,0x49,0x00,0x00,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a, + 0x4b,0x4c,0x01,0x4d,0x4e,0x4f,0x00,0x00,0x50,0x50,0x50,0x50,0x50,0x50, + 0x50,0x50,0x51,0x01,0x52,0x53,0x54,0x55,0x00,0x00,0x56,0x56,0x56,0x56, + 0x56,0x56,0x56,0x57,0x01,0x01,0x58,0x59,0x5a,0x5b,0x00,0x00,0x5c,0x5c, + 0x5c,0x5c,0x5c,0x5d,0x5e,0x01,0x01,0x5f,0x60,0x61,0x62,0x63,0x00,0x00, + 0x64,0x64,0x64,0x65,0x66,0x67,0x01,0x01,0x68,0x69,0x6a,0x6b,0x6c,0x6d, + 0x00,0x00,0x6e,0x6f,0x70,0x71,0x01,0x01,0x72,0x73,0x74,0x75,0x76,0x77, + 0x78,0x79,0x00,0x00,0x01,0x01,0x01,0x01,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, + 0x80,0x81,0x82,0x82,0x00,0x00,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a, + 0x8b,0x8c,0x8d,0x8e,0x8e,0x8e,0x00,0x00,0x8f,0x90,0x91,0x92,0x93,0x94, + 0x95,0x96,0x97,0x98,0x98,0x98,0x98,0x98,0x00,0x00 +}; + +static const QRgb caption_active_small_right_ctable[] = { + 0xffffff,0xffffffff,0xff64b2ff,0xff75baff,0xff88c4ff,0xffb3d9ff,0xffecf5ff,0xffe6f0fb,0xffc8e0f8,0xff62b0fe,0xff68b3fe,0xffb5daff,0xfff3f8fd,0xffd3e7fa, + 0xffcfe5fb,0xff5faefd,0xff82c0fd,0xffe5f2ff,0xfff1f7fd,0xffd1e7fc,0xffd3e9fe,0xff5cacfb,0xff68b2fb,0xffebf5fe,0xffeaf2fb,0xffd1e7fd,0xff59aafa,0xff77b9fb, + 0xfffcfdff,0xffd2e4f6,0xff55a7f8,0xffbedefc,0xffe6eef5,0xffc9e0f6,0xffcee5fc,0xff51a4f6,0xff6ab1f7,0xfff3f6f9,0xffbfd7ee,0xffc9e1fa,0xff4da1f4,0xffe5f1fd, + 0xffc1d3e5,0xffc6ddf3,0xff499ef2,0xffc0defb,0xffc8d5e2,0xffc0d6ed,0xff459bf0,0xffaad2f8,0xffcbd5e0,0xffb9cfe6,0xff4097ed,0xff9ecaf6,0xffcad5e0,0xffabc6e2, + 0xff3c94eb,0xffb1d4f7,0xffbec9d4,0xffaec6db,0xff3790e9,0xffc8e1f9,0xffafbdca,0xffacc3da,0xff338de7,0xff3a91e8,0xfff8fbfe,0xff95a9bb,0xffacc5dc,0xff2f8ae4, + 0xff7bb5ee,0xffd7dde3,0xff88a5c1,0xffa0c2e4,0xff2a87e2,0xff2e89e3,0xffe0eefb,0xffb0bbc5,0xff9bb1c7,0xffb1cae4,0xff2684e0,0xff98c5f0,0xffdadee1,0xff879bae, + 0xffa3bbd3,0xffb5d0e9,0xff2381df,0xff77b1eb,0xff99a7b4,0xff95abc1,0xffacc5de,0xffb8d4ee,0xff1f7fdd,0xff2382de,0xff99c5f0,0xff9eafbe,0xff7898b7,0xff8db2d7, + 0xff9bc4ec,0xffa0cbf5,0xff1c7cdc,0xff2481dd,0xff6aa9e8,0xffdeecfa,0xffa8b2bd,0xff869baf,0xff9db4cc,0xffaec8e3,0xffb7d2ee,0xffb9d5f1,0xff8abbec,0xffa3caf0, + 0xffbdd8f4,0xfff7fafe,0xffd9dde1,0xff94a3b1,0xff889db2,0xff9ab3ca,0xffa9c4de,0xffb2cfea,0xffb5d2ee,0xffb6d3ef,0xffd7dce1,0xffaeb9c4,0xff7e94a9,0xff8ba3ba, + 0xff99b4ce,0xffa5c2dd,0xffaccae6,0xffaecdea,0xffafceeb,0xffb7c8d8,0xffa7bbd0,0xff99b1c9,0xff799abc,0xff759abe,0xff7ca2c9,0xff83acd4,0xff8bb6e1,0xff91beeb, + 0xff95c4f2,0xff96c5f4,0xff97c6f5,0xff2279d0,0xff227ad1,0xff227ad2,0xff237cd6,0xff237ed9,0xff2582e0,0xff2586e6,0xff2689eb,0xff278aee,0xff278bef +}; + +static const unsigned char caption_inactive_center_data[] = { + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, + 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, + 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08, + 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, + 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, + 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09, + 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, + 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, + 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, + 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, + 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, + 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, + 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, + 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, + 0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, + 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, + 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, + 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, + 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, + 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f, + 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, + 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, + 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x12,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, + 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, + 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, + 0x13,0x13,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, + 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, + 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, + 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, + 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, + 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x16,0x16, + 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, + 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, + 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x17,0x17,0x17,0x17,0x17,0x17, + 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, + 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, + 0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18 +}; + +static const QRgb caption_inactive_center_ctable[] = { + 0xffffff,0xffffffff,0xffcfe7ff,0xffcde6fe,0xffcbe4fd,0xffc8e1fb,0xffc5dffa,0xffc1dcf8,0xffbdd9f6,0xffb9d6f4,0xffb4d3f2,0xffb0d0f0,0xffaccced,0xffa7c9eb, + 0xffa3c5e9,0xff9ec2e7,0xff9abfe4,0xff96bce2,0xff92b9e0,0xff8eb6df,0xff8bb4dd,0xff88b2dc,0xffb6d0e9,0xffd1d9e1,0xffa6cff9 +}; + +static const unsigned char caption_inactive_left_data[] = { + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x04,0x01,0x05, + 0x06,0x07,0x08,0x09,0x00,0x00,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x01,0x01, + 0x0c,0x0d,0x0e,0x0e,0x0e,0x0e,0x00,0x00,0x05,0x05,0x05,0x05,0x05,0x01, + 0x01,0x0f,0x10,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x12,0x12,0x12,0x12, + 0x01,0x01,0x13,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x00,0x00,0x15,0x15, + 0x15,0x16,0x01,0x17,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00, + 0x12,0x12,0x12,0x01,0x16,0x19,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, + 0x00,0x00,0x0c,0x0c,0x1b,0x01,0x1c,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d, + 0x1d,0x1d,0x00,0x00,0x1e,0x1e,0x1f,0x01,0x20,0x21,0x21,0x21,0x21,0x21, + 0x21,0x21,0x21,0x21,0x00,0x00,0x22,0x22,0x16,0x01,0x23,0x24,0x24,0x24, + 0x24,0x24,0x24,0x24,0x24,0x24,0x00,0x00,0x25,0x25,0x01,0x01,0x26,0x27, + 0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x00,0x00,0x28,0x28,0x01,0x01, + 0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,0x2a,0x2a, + 0x05,0x01,0x2b,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x00,0x00, + 0x2d,0x2d,0x15,0x01,0x2e,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f, + 0x00,0x00,0x30,0x30,0x1e,0x01,0x31,0x32,0x32,0x32,0x32,0x32,0x32,0x32, + 0x32,0x32,0x00,0x00,0x33,0x33,0x34,0x01,0x35,0x36,0x37,0x37,0x37,0x37, + 0x37,0x37,0x37,0x37,0x00,0x00,0x38,0x38,0x38,0x39,0x01,0x3a,0x3b,0x3b, + 0x3b,0x3b,0x3b,0x3b,0x3b,0x3b,0x00,0x00,0x3c,0x3c,0x3c,0x25,0x01,0x3d, + 0x3e,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x00,0x00,0x40,0x40,0x40,0x40, + 0x1e,0x01,0x41,0x42,0x43,0x43,0x43,0x43,0x43,0x43,0x00,0x00,0x44,0x44, + 0x44,0x44,0x45,0x46,0x01,0x47,0x48,0x49,0x49,0x49,0x49,0x49,0x00,0x00, + 0x40,0x40,0x40,0x40,0x40,0x40,0x4a,0x01,0x01,0x4b,0x4c,0x4d,0x4d,0x4d, + 0x00,0x00,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4f,0x50,0x51,0x01,0x01,0x52, + 0x53,0x54,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x56,0x57,0x58, + 0x59,0x01,0x01,0x01,0x00,0x00,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a, + 0x5b,0x1a,0x5c,0x5d,0x5e,0x5f,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60, + 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00 +}; + +static const QRgb caption_inactive_left_ctable[] = { + 0xffffff,0xffffffff,0xffedf1f5,0xfff1f4f7,0xfffbfcfd,0xfffeffff,0xffeff7ff,0xffe0efff,0xffd9ecff,0xffd0e7ff,0xfff7f9fa,0xfff9fbfc,0xfff7fbff,0xffd8ebfe, + 0xffcde6fe,0xffe7f3fe,0xffcde5fd,0xffcbe4fd,0xfffcfdfe,0xffe1effd,0xffc8e1fb,0xfffdfdfe,0xfffefeff,0xffedf5fd,0xffc5dffa,0xffc9e0f9,0xffc1dcf8,0xfffafdff, + 0xffeaf3fc,0xffbdd9f6,0xfffafbfc,0xfffdfefe,0xffd3e5f8,0xffb9d6f4,0xfff9fafc,0xffbdd9f4,0xffb4d3f2,0xfff7f9fb,0xffb2d1f0,0xffb0d0f0,0xffebf5ff,0xffaccced, + 0xfff5f8fa,0xffacccec,0xffa7c9eb,0xfff4f7fa,0xffb7d2ee,0xffa3c5e9,0xfff3f6f9,0xffcfe1f3,0xff9ec2e7,0xffddeeff,0xffe6f2ff,0xffeef4fb,0xff9cc0e5,0xff9abfe4, + 0xfff1f5f8,0xfffcfdfd,0xffbed5ed,0xff96bce2,0xfff2f5f9,0xfff7fafd,0xff9ec1e3,0xff92b9e0,0xfff2f5f8,0xffebf2f9,0xff96bbe1,0xff8eb6df,0xffcfe7ff,0xffd2e9ff, + 0xfff3f9fe,0xffecf3f9,0xffa0c2e3,0xff8bb4dd,0xfffafbfb,0xffd2e2f2,0xff9cbfe2,0xff88b2dc,0xffeef2f6,0xffecf0f4,0xfff4f6f7,0xfffefefe,0xfff0f5fa,0xffcedff0, + 0xffccdeef,0xffe6ecf1,0xffe3e9ee,0xffe3e8eb,0xffedeff1,0xfff5f5f6,0xffc6e2ff,0xffc4e0fd,0xffbad5f0,0xffbed3e8,0xffcad9e7,0xffc7d4e1,0xffa6cff9 +}; + +static const unsigned char caption_inactive_right_data[] = { + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x01,0x01,0x07,0x08,0x08, + 0x08,0x08,0x08,0x08,0x00,0x00,0x09,0x09,0x09,0x09,0x0a,0x05,0x01,0x01, + 0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, + 0x0e,0x0f,0x01,0x10,0x0b,0x11,0x11,0x11,0x00,0x00,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x13,0x14,0x01,0x15,0x16,0x17,0x17,0x00,0x00,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0x19,0x1a,0x01,0x1b,0x1c,0x1d,0x00,0x00, + 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1f,0x01,0x20,0x21,0x22, + 0x00,0x00,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x24,0x01,0x25, + 0x26,0x27,0x00,0x00,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, + 0x29,0x01,0x2a,0x2b,0x00,0x00,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c, + 0x2c,0x2c,0x2d,0x01,0x2e,0x2f,0x00,0x00,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x30,0x30,0x31,0x01,0x32,0x33,0x00,0x00,0x34,0x34,0x34,0x34, + 0x34,0x34,0x34,0x34,0x34,0x34,0x35,0x01,0x36,0x37,0x00,0x00,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x39,0x01,0x3a,0x3b,0x00,0x00, + 0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3d,0x01,0x3e,0x3f, + 0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x41,0x17,0x01, + 0x42,0x43,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x45, + 0x01,0x46,0x47,0x48,0x00,0x00,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49, + 0x4a,0x4b,0x01,0x4c,0x4d,0x4e,0x00,0x00,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f, + 0x4f,0x4f,0x50,0x01,0x51,0x52,0x53,0x54,0x00,0x00,0x55,0x55,0x55,0x55, + 0x55,0x55,0x55,0x56,0x01,0x01,0x57,0x58,0x59,0x5a,0x00,0x00,0x5b,0x5b, + 0x5b,0x5b,0x5b,0x5c,0x5d,0x01,0x01,0x5e,0x5f,0x60,0x61,0x62,0x00,0x00, + 0x63,0x63,0x63,0x64,0x65,0x66,0x01,0x01,0x67,0x68,0x69,0x6a,0x6b,0x6c, + 0x00,0x00,0x6d,0x6e,0x6f,0x70,0x01,0x01,0x71,0x72,0x73,0x74,0x75,0x76, + 0x08,0x77,0x00,0x00,0x01,0x01,0x01,0x01,0x78,0x79,0x7a,0x7b,0x7c,0x7d, + 0x7e,0x7f,0x80,0x80,0x00,0x00,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88, + 0x89,0x8a,0x8b,0x8c,0x8c,0x8c,0x00,0x00,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d, + 0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x00,0x00 +}; + +static const QRgb caption_inactive_right_ctable[] = { + 0xffffff,0xffffffff,0xffcfe7ff,0xffd4eaff,0xffdaedff,0xffe7f3ff,0xfff9fcff,0xfff6f8fa,0xffedf1f5,0xffcde6fe,0xffcfe7fe,0xfffcfdfd,0xfff7f9fa,0xffcbe4fd, + 0xffd6eafd,0xfff6fbff,0xfffdfdfd,0xfffeffff,0xffc8e1fb,0xffcce3fb,0xfff8fbfe,0xfffafbfb,0xfffafbfc,0xfffcfdfe,0xffc5dffa,0xffcfe5fb,0xfffefeff,0xfff6f6f6, + 0xfffbfbfc,0xfffdfdfe,0xffc1dcf8,0xffe7f2fc,0xfff5f5f6,0xfff5f6f7,0xfffbfcfd,0xffbdd9f6,0xffc7dff7,0xfff8f9f9,0xffe8ecf0,0xfff4f8fc,0xffb9d6f4,0xfff5f9fd, + 0xffe5e5e5,0xfff3f4f5,0xffb4d3f2,0xffe5f0fb,0xffe2e2e3,0xffecedef,0xffb0d0f0,0xffdbeaf8,0xffe0e0e1,0xffe5e6e8,0xffaccced,0xffd5e5f6,0xffdbdee2,0xffd4dde6, + 0xffa7c9eb,0xffdce9f7,0xffd4d5d6,0xffdadddf,0xffa3c5e9,0xffe6eff9,0xffcacbcc,0xffd8dbde,0xff9ec2e7,0xffa1c4e8,0xffbabcbe,0xffdadde0,0xff9abfe4,0xffbfd6ee, + 0xffdfe2e4,0xffacb9c6,0xffcad9e9,0xff96bce2,0xff98bde3,0xfff0f5fb,0xffc5c6c7,0xffc6c9cb,0xffe2e6e8,0xff92b9e0,0xffcbdef0,0xffe1e2e2,0xffaeb0b3,0xffd2d4d8, + 0xffe9ebef,0xff8eb6df,0xffb9d2eb,0xffb4b6b7,0xffc1c3c5,0xffdee1e4,0xffeef1f4,0xff8bb4dd,0xff8db5de,0xffcaddf0,0xffb0b9c2,0xff9aacbe,0xffb5cadf,0xffc7def5, + 0xffcee6fe,0xff88b2dc,0xff8cb5dd,0xffb1cde8,0xffeef4fa,0xffbdbec0,0xffb0b2b4,0xffcdd0d2,0xffe4e7e9,0xffeff2f5,0xfff2f5f8,0xffc1d7ec,0xffcedff0,0xffdce8f4, + 0xfffbfcfe,0xffe1e1e2,0xffb0b3b4,0xffb1b4b7,0xffcacdd0,0xffdde1e5,0xffe9edf1,0xffeef2f6,0xffe0e1e2,0xffc3c5c7,0xffa5a9ad,0xffb6bbbf,0xffc9ced3,0xffd8dee3, + 0xffe1e7ec,0xffe5ebf0,0xffe6ecf1,0xffc8d1db,0xffbbc7d4,0xffb1bfce,0xff9aaec3,0xff9aafc6,0xffa2b9d1,0xffacc4dd,0xffb6cfea,0xffbed9f5,0xffc4dffc,0xffc5e1fe, + 0xffc6e2ff,0xffa6cff9 +}; + +static const unsigned char grabbar_active_center_data[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x00,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x00, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00 +}; + +static const QRgb grabbar_active_center_ctable[] = { + 0xffc9ddf0,0xffd0e1f2,0xffd2e3f4,0xffbad0e7,0xffacc4dd,0xffffffff,0xff2e5f91 +}; + +static const unsigned char grabbar_active_left_data[] = { + 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00, + 0x02,0x03,0x04,0x05,0x06,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x08,0x01, + 0x09,0x0a,0x0b,0x0a,0x06,0x00,0x00,0x00,0x00,0x00,0x0c,0x0d,0x0e,0x01, + 0x0f,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x11,0x12,0x13,0x14,0x15,0x16, + 0x16,0x00,0x00,0x00,0x00,0x00,0x17,0x17,0x17,0x18,0x19,0x1a,0x1a,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x00,0x00,0x00 +}; + +static const QRgb grabbar_active_left_ctable[] = { + 0xffffffff,0xffc4d8ec,0xffd5e4f5,0xffd6e5f5,0xffdbe9f8,0xffd7e7f6,0xffd2e3f4,0xffd0e2f2,0xffc3d7eb,0xffcadcef,0xffd3e4f4,0xffd4e5f5,0xffb9cee4,0xffbacfe5, + 0xffbed2e7,0xffc8dbef,0xffc9dcf0,0xffb1c7df,0xffb2c8df,0xffb3c9e0,0xffb6cce3,0xffb8cfe5,0xffbad0e7,0xffabc2da,0xffacc2db,0xffacc3dd,0xffacc4dd,0xff2e5f91 +}; + +static const unsigned char grabbar_active_right_data[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x00,0x00,0x00,0x03,0x04, + 0x05,0x06,0x00,0x00,0x01,0x01,0x02,0x00,0x00,0x00,0x07,0x08,0x09,0x0a, + 0x0b,0x0c,0x01,0x01,0x02,0x00,0x00,0x00,0x0d,0x0e,0x0f,0x10,0x11,0x12, + 0x01,0x01,0x02,0x00,0x00,0x00,0x13,0x14,0x14,0x15,0x16,0x17,0x01,0x01, + 0x02,0x00,0x00,0x00,0x18,0x19,0x1a,0x1b,0x1c,0x1c,0x01,0x01,0x02,0x00, + 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x00,0x00,0x00, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00 +}; + +static const QRgb grabbar_active_right_ctable[] = { + 0xffc5d8ec,0xffffffff,0xff2e5f91,0xffcee0f1,0xffcbdeef,0xffc9dbee,0xffc6d9ed,0xffd2e2f3,0xffcfe0f2,0xffc9dcee,0xffc2d6ea,0xffc1d5e9,0xffc0d4e8,0xffc9dcf0, + 0xffc8dbef,0xffc4d8ec,0xffbed2e7,0xffbacfe5,0xffb9cee4,0xffbad0e7,0xffbad1e8,0xffb6cce4,0xffb4cae1,0xffb3c9e0,0xffacc5dd,0xffadc5de,0xffaec7e0,0xffaec8e1, + 0xffadc6df +}; + +static const unsigned char grabbar_inactive_center_data[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x00,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x00, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00 +}; + +static const QRgb grabbar_inactive_center_ctable[] = { + 0xffedf1f5,0xfff1f4f8,0xffe7edf3,0xffd5dfe9,0xffc6d1de,0xffffffff,0xff3a5b7c +}; + +static const unsigned char grabbar_inactive_left_data[] = { + 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x00,0x00,0x00,0x00,0x00, + 0x03,0x04,0x05,0x06,0x07,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x08,0x09, + 0x0a,0x0b,0x0c,0x0b,0x0d,0x00,0x00,0x00,0x00,0x00,0x0e,0x0f,0x10,0x11, + 0x12,0x13,0x14,0x00,0x00,0x00,0x00,0x00,0x15,0x16,0x17,0x18,0x19,0x1a, + 0x1a,0x00,0x00,0x00,0x00,0x00,0x1b,0x1b,0x1b,0x1c,0x1d,0x1e,0x1e,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x00,0x00,0x00 +}; + +static const QRgb grabbar_inactive_left_ctable[] = { + 0xffffffff,0xffeef2f5,0xffedf1f5,0xfff3f5f8,0xfff4f6f9,0xfffafbfc,0xfff6f8fa,0xfff0f3f7,0xffdfe6ed,0xffe0e7ee,0xffe7ecf2,0xfff2f5f8,0xfff3f6f9,0xfff1f4f8, + 0xffd4dce5,0xffd5dde6,0xffd9e0e9,0xffe1e8ef,0xffe5ebf2,0xffe6ecf3,0xffe7edf3,0xffcbd4df,0xffccd5df,0xffcdd6e1,0xffd1dae4,0xffd3dde7,0xffd5dfe9,0xffc4ceda, + 0xffc5cfdb,0xffc5d0dd,0xffc6d1de,0xff3a5b7c +}; + +static const unsigned char grabbar_inactive_right_data[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x00,0x00,0x00,0x03,0x04, + 0x05,0x06,0x07,0x07,0x01,0x01,0x02,0x00,0x00,0x00,0x08,0x00,0x09,0x0a, + 0x0b,0x0c,0x01,0x01,0x02,0x00,0x00,0x00,0x0d,0x0e,0x0f,0x10,0x11,0x12, + 0x01,0x01,0x02,0x00,0x00,0x00,0x13,0x14,0x14,0x15,0x16,0x17,0x01,0x01, + 0x02,0x00,0x00,0x00,0x18,0x19,0x1a,0x1b,0x1c,0x1c,0x01,0x01,0x02,0x00, + 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x00,0x00,0x00, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00 +}; + +static const QRgb grabbar_inactive_right_ctable[] = { + 0xffedf1f5,0xffffffff,0xff3a5b7c,0xffebf0f4,0xffe8edf2,0xffe5eaf0,0xffe2e8ef,0xffe1e7ee,0xfff0f3f7,0xffe6ecf1,0xffdee5ec,0xffdce3eb,0xffdbe2ea,0xffe6ecf3, + 0xffe5ebf2,0xffe1e8ef,0xffd9e0e9,0xffd5dde6,0xffd4dce5,0xffd6dfe9,0xffd6e0ea,0xffd1dae5,0xffced7e2,0xffcdd6e1,0xffc6d2de,0xffc7d2df,0xffc8d4e1,0xffc8d5e2, + 0xffc7d3e0 +}; + +static const unsigned char titlebar_active_center_data[] = { + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07, + 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, + 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, + 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08, + 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, + 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, + 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09, + 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, + 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, + 0x09,0x09,0x09,0x09,0x09,0x09,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, + 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, + 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, + 0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, + 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, + 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, + 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d, + 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, + 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, + 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e, + 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, + 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, + 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, + 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, + 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, + 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, + 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, + 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x14, + 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, + 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, + 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15, + 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, + 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, + 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x16,0x16,0x16,0x16,0x16,0x16, + 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, + 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, + 0x16,0x16,0x16,0x16,0x16,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, + 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, + 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, + 0x17,0x17,0x17,0x17 +}; + +static const QRgb titlebar_active_center_ctable[] = { + 0xffffff,0xffffffff,0xffc8e0f8,0xffcfe5fb,0xffd3e9fe,0xffd1e7fd,0xffcfe6fd,0xffcbe4fd,0xffcce3fa,0xffcae2fa,0xffbedcfb,0xffc4def6,0xffc2dcf6,0xffc0dbf5, + 0xffafd4f9,0xffbdd8f3,0xffbcd8f3,0xffbbd7f2,0xffa1ccf6,0xffb9d5f1,0xffb6d3ef,0xffafceeb,0xff97c6f5,0xff278bef +}; + +static const unsigned char titlebar_active_left_data[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x02,0x03, + 0x04,0x05,0x06,0x07,0x35,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x08,0x09, + 0x0a,0x0b,0x0c,0x0b,0x0d,0x0e,0x0a,0x00,0x00,0x00,0x01,0x01,0x01,0x0f, + 0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x01,0x01, + 0x12,0x13,0x14,0x15,0x0d,0x16,0x16,0x17,0x17,0x17,0x17,0x00,0x00,0x01, + 0x01,0x18,0x19,0x1a,0x1b,0x15,0x0e,0x17,0x1c,0x17,0x17,0x17,0x17,0x00, + 0x00,0x01,0x01,0x1d,0x1e,0x1f,0x07,0x15,0x20,0x0e,0x21,0x21,0x21,0x21, + 0x21,0x00,0x01,0x01,0x22,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23, + 0x23,0x23,0x23,0x00,0x01,0x01,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b, + 0x2a,0x2a,0x2a,0x2a,0x2a,0x00,0x01,0x01,0x2c,0x2d,0x2e,0x2f,0x1b,0x30, + 0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x00,0x01,0x01,0x32,0x33,0x34,0x1f, + 0x14,0x35,0x36,0x36,0x37,0x35,0x35,0x35,0x35,0x00,0x01,0x01,0x38,0x38, + 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x00,0x01,0x01, + 0x39,0x3a,0x32,0x3b,0x3c,0x3d,0x3e,0x3f,0x3d,0x3d,0x3d,0x3d,0x3d,0x00, + 0x01,0x01,0x40,0x39,0x41,0x42,0x43,0x44,0x45,0x3c,0x44,0x44,0x44,0x44, + 0x44,0x00,0x01,0x01,0x46,0x47,0x48,0x2e,0x49,0x1f,0x1f,0x1f,0x4a,0x4a, + 0x4a,0x4a,0x4a,0x00,0x01,0x01,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b, + 0x4b,0x4b,0x4b,0x4b,0x4b,0x00,0x01,0x01,0x4c,0x4d,0x4e,0x4f,0x42,0x50, + 0x51,0x50,0x52,0x52,0x52,0x52,0x52,0x00,0x01,0x01,0x53,0x54,0x55,0x56, + 0x57,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x00,0x01,0x01,0x59,0x5a, + 0x5b,0x5c,0x5d,0x57,0x5e,0x57,0x57,0x57,0x57,0x57,0x57,0x00,0x01,0x01, + 0x5f,0x5f,0x5f,0x5f,0x5f,0x5f,0x5f,0x5f,0x5f,0x5f,0x5f,0x5f,0x5f,0x00, + 0x01,0x01,0x60,0x60,0x61,0x48,0x62,0x63,0x63,0x63,0x63,0x63,0x63,0x63, + 0x63,0x00,0x01,0x01,0x64,0x60,0x65,0x66,0x48,0x32,0x56,0x67,0x67,0x67, + 0x67,0x67,0x67,0x00,0x01,0x01,0x68,0x68,0x60,0x69,0x54,0x5b,0x6a,0x6a, + 0x6a,0x6a,0x6a,0x6a,0x6a,0x00,0x01,0x01,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b, + 0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x00,0x01,0x01,0x6c,0x6c,0x6c,0x6c, + 0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x00 +}; + +static const QRgb titlebar_active_left_ctable[] = { + 0xffffff,0xffffffff,0xfffafdff,0xffedf6fe,0xffe2f1fe,0xffd0e6fb,0xffcbe2f9,0xffc9e1f8,0xfffefeff,0xffe0edfc,0xffcee5fb,0xffd2e7fd,0xffd4e9fe,0xffd0e7fd, + 0xffcfe6fc,0xfff6faff,0xffd6ebfe,0xffd3e9fe,0xffedf5fc,0xffc2dcf5,0xffc6dff7,0xffcde4fb,0xffd2e8fd,0xffd1e7fd,0xfff8fbfe,0xffbfd9f3,0xffc1daf3,0xffc7e0f8, + 0xffd1e8fd,0xffcbe0f5,0xffbdd7f2,0xffc1dbf5,0xffcfe5fc,0xffcfe6fd,0xfff8fcff,0xffcbe4fd,0xffe1edf9,0xffbad5f0,0xffbcd7f1,0xffc3ddf5,0xffc9e1f9,0xffcbe3fa, + 0xffcce3fa,0xffcce4fb,0xffc7ddf3,0xffb8d4ef,0xffbbd6f1,0xffc3dcf5,0xffc9e2f9,0xffcae2fa,0xffb6d2ee,0xffb7d3ee,0xffb9d4f0,0xffc8e0f8,0xffc8e1f9,0xffc8e1f8, + 0xffbedcfb,0xffb3d0ec,0xffb4d1ed,0xffbed9f3,0xffc3dcf6,0xffc4def6,0xffc5def7,0xffc5def6,0xffb2cfec,0xffb5d1ed,0xffbcd7f2,0xffc1dbf4,0xffc2dcf6,0xffc3ddf6, + 0xffb1ceeb,0xffb2ceeb,0xffb3d0ed,0xffc0daf4,0xffc0dbf5,0xffafd4f9,0xffaecce9,0xffafcdea,0xffb1ceec,0xffb8d4f0,0xffbed8f4,0xffbed9f4,0xffbdd8f3,0xffadcbe9, + 0xffadcbea,0xffb0cdeb,0xffb7d3ef,0xffbbd7f2,0xffbcd8f3,0xffabcae8,0xffaccae8,0xffafccea,0xffb6d2ef,0xffbad6f1,0xffbcd7f3,0xffa1ccf6,0xffa9c8e7,0xffaccae9, + 0xffb7d3f0,0xffb9d5f1,0xffa9c8e6,0xffaac9e8,0xffafcdeb,0xffb6d3ef,0xffa8c7e7,0xffabc9e8,0xffafceeb,0xff97c6f5,0xff278bef +}; + +static const unsigned char titlebar_active_right_data[] = { + 0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x07,0x01,0x01,0x01,0x08, + 0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x0a,0x0b,0x0c,0x0b,0x0d,0x0e,0x0f, + 0x01,0x01,0x10,0x00,0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x12,0x13,0x01,0x01,0x14,0x00,0x00,0x00,0x00,0x15,0x15,0x15,0x16, + 0x16,0x0a,0x17,0x18,0x19,0x1a,0x01,0x01,0x1b,0x00,0x00,0x00,0x15,0x15, + 0x15,0x1c,0x15,0x09,0x17,0x1d,0x1e,0x1f,0x20,0x01,0x21,0x22,0x00,0x00, + 0x23,0x23,0x23,0x23,0x09,0x24,0x17,0x02,0x25,0x26,0x27,0x01,0x01,0x22, + 0x00,0x00,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x29, + 0x01,0x2a,0x2b,0x00,0x2c,0x2c,0x2c,0x2c,0x2d,0x2c,0x2e,0x2f,0x30,0x31, + 0x32,0x33,0x01,0x34,0x35,0x00,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x1d, + 0x38,0x39,0x3a,0x3b,0x01,0x01,0x3c,0x00,0x3d,0x3d,0x3d,0x3e,0x3f,0x3f, + 0x3d,0x18,0x25,0x40,0x41,0x42,0x01,0x01,0x3c,0x00,0x43,0x43,0x43,0x43, + 0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x01,0x01,0x3c,0x00,0x44,0x44, + 0x44,0x44,0x45,0x46,0x44,0x47,0x48,0x42,0x49,0x4a,0x01,0x01,0x3c,0x00, + 0x4b,0x4b,0x4b,0x4b,0x47,0x4c,0x4b,0x4d,0x4e,0x4f,0x4a,0x50,0x01,0x01, + 0x3c,0x00,0x51,0x51,0x51,0x51,0x25,0x25,0x25,0x52,0x39,0x53,0x54,0x55, + 0x01,0x01,0x3c,0x00,0x56,0x56,0x56,0x56,0x56,0x56,0x56,0x56,0x56,0x56, + 0x56,0x56,0x01,0x01,0x3c,0x00,0x57,0x57,0x57,0x57,0x58,0x59,0x58,0x4e, + 0x5a,0x5b,0x5c,0x5d,0x01,0x01,0x3c,0x00,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e, + 0x5e,0x5f,0x60,0x61,0x62,0x63,0x01,0x01,0x3c,0x00,0x5f,0x5f,0x5f,0x5f, + 0x5f,0x64,0x5f,0x65,0x66,0x67,0x68,0x69,0x01,0x01,0x3c,0x00,0x6a,0x6a, + 0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x01,0x01,0x3c,0x00, + 0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6c,0x53,0x6d,0x6e,0x6e,0x01,0x01, + 0x3c,0x00,0x6f,0x6f,0x6f,0x6f,0x6f,0x60,0x42,0x53,0x70,0x71,0x6e,0x72, + 0x01,0x01,0x3c,0x00,0x73,0x73,0x73,0x73,0x73,0x73,0x67,0x62,0x74,0x6e, + 0x75,0x75,0x01,0x01,0x3c,0x00,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76, + 0x76,0x76,0x76,0x76,0x01,0x01,0x3c,0x00,0x77,0x77,0x77,0x77,0x77,0x77, + 0x77,0x77,0x77,0x77,0x77,0x77,0x01,0x01,0x3c,0x00 +}; + +static const QRgb titlebar_active_right_ctable[] = { + 0xffffff,0xffffffff,0xffc9e1f8,0xffcbe2f9,0xffd0e6fb,0xffe2f1fe,0xffedf6fe,0xfffafdff,0xfffdfeff,0xffcfe6fc,0xffd0e7fd,0xffd2e7fd,0xffd4e9fe,0xffcee5fb, + 0xffe0edfc,0xfffefeff,0xffedeeef,0xffd3e9fe,0xffd6ebfe,0xfff6faff,0xffcad1d9,0xffd1e7fd,0xffd2e8fd,0xffcde4fb,0xffc6dff7,0xffc2dcf5,0xffedf5fc,0xff889bae, + 0xffd1e8fd,0xffc7e0f8,0xffc1daf3,0xffbfd9f3,0xfff8fbfe,0xffdfe8f0,0xff6589ae,0xffcfe6fd,0xffcfe5fc,0xffc1dbf5,0xffbdd7f2,0xffcbe0f5,0xffcbe4fd,0xfff8fcff, + 0xffdae2ea,0xff5581ae,0xffcce3fa,0xffcce4fb,0xffcbe3fa,0xffc9e1f9,0xffc3ddf5,0xffbcd7f1,0xffbad5f0,0xffe1edf9,0xffeef2f8,0xff3369a0,0xffcae2fa,0xffc9e2f9, + 0xffc3dcf5,0xffbbd6f1,0xffb8d4ef,0xffc7ddf3,0xff2e5f91,0xffc8e0f8,0xffc8e1f8,0xffc8e1f9,0xffb9d4f0,0xffb7d3ee,0xffb6d2ee,0xffbedcfb,0xffc4def6,0xffc5def6, + 0xffc5def7,0xffc3dcf6,0xffbed9f3,0xffb4d1ed,0xffb3d0ec,0xffc2dcf6,0xffc3ddf6,0xffc1dbf4,0xffbcd7f2,0xffb5d1ed,0xffb2cfec,0xffc0dbf5,0xffc0daf4,0xffb3d0ed, + 0xffb2ceeb,0xffb1ceeb,0xffafd4f9,0xffbdd8f3,0xffbed8f4,0xffbed9f4,0xffb8d4f0,0xffb1ceec,0xffafcdea,0xffaecce9,0xffbcd8f3,0xffbbd7f2,0xffb7d3ef,0xffb0cdeb, + 0xffadcbea,0xffadcbe9,0xffbcd7f3,0xffbad6f1,0xffb6d2ef,0xffafccea,0xffaccae8,0xffabcae8,0xffa1ccf6,0xffb9d5f1,0xffb7d3f0,0xffaccae9,0xffa9c8e7,0xffb6d3ef, + 0xffafcdeb,0xffaac9e8,0xffa9c8e6,0xffafceeb,0xffabc9e8,0xffa8c7e7,0xff97c6f5,0xff278bef +}; + +static const unsigned char titlebar_inactive_center_data[] = { + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, + 0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, + 0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, + 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07, + 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, + 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, + 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08, + 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, + 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, + 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09, + 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, + 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, + 0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, + 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, + 0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, + 0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, + 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, + 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, + 0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, + 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, + 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, + 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e, + 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, + 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, + 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f,0x0f,0x0f, + 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, + 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, + 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x12,0x12,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, + 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, + 0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x14,0x14, + 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, + 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, + 0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15, + 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, + 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, + 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x16,0x16,0x16,0x16,0x16,0x16, + 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, + 0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, + 0x16,0x16,0x16,0x16,0x16,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, + 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, + 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, + 0x17,0x17,0x17,0x17 +}; + +static const QRgb titlebar_inactive_center_ctable[] = { + 0xffffff,0xffffffff,0xffedf1f5,0xfff7f9fa,0xfffeffff,0xfffcfdfe,0xfffdfdfe,0xfff7fbff,0xfffafbfc,0xfff9fafc,0xfff7f9fb,0xffebf5ff,0xfff5f8fa,0xfff4f7fa, + 0xfff3f6f9,0xffddeeff,0xfff1f5f8,0xfff2f5f9,0xfff2f5f8,0xffcfe7ff,0xffeef2f6,0xffe6ecf1,0xffc6e2ff,0xffa6cff9 +}; + +static const unsigned char titlebar_inactive_left_data[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x02, + 0x03,0x04,0x05,0x06,0x0e,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x07, + 0x08,0x09,0x02,0x09,0x0a,0x0b,0x28,0x00,0x00,0x00,0x01,0x01,0x01,0x01, + 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,0x00,0x01,0x01, + 0x0b,0x0d,0x0e,0x08,0x09,0x0f,0x0f,0x10,0x10,0x10,0x10,0x00,0x00,0x01, + 0x01,0x10,0x11,0x12,0x13,0x07,0x09,0x14,0x0f,0x14,0x14,0x14,0x14,0x00, + 0x00,0x01,0x01,0x15,0x16,0x17,0x18,0x19,0x09,0x1a,0x10,0x10,0x10,0x10, + 0x10,0x00,0x01,0x01,0x1b,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, + 0x1c,0x1c,0x1c,0x00,0x01,0x01,0x1d,0x1e,0x11,0x1f,0x08,0x0a,0x20,0x21, + 0x20,0x20,0x20,0x20,0x20,0x00,0x01,0x01,0x22,0x23,0x11,0x06,0x24,0x0b, + 0x0a,0x0a,0x19,0x19,0x19,0x19,0x19,0x00,0x01,0x01,0x25,0x26,0x16,0x27, + 0x04,0x28,0x29,0x29,0x0b,0x28,0x28,0x28,0x28,0x00,0x01,0x01,0x2a,0x2a, + 0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x00,0x01,0x01, + 0x2b,0x25,0x2c,0x0e,0x2d,0x24,0x2e,0x08,0x24,0x24,0x24,0x24,0x24,0x00, + 0x01,0x01,0x2b,0x25,0x2f,0x30,0x31,0x32,0x24,0x33,0x32,0x32,0x32,0x32, + 0x32,0x00,0x01,0x01,0x34,0x35,0x1e,0x36,0x31,0x37,0x38,0x37,0x2d,0x2d, + 0x2d,0x2d,0x2d,0x00,0x01,0x01,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39, + 0x39,0x39,0x39,0x39,0x39,0x00,0x01,0x01,0x3a,0x2b,0x1e,0x3b,0x13,0x3c, + 0x3d,0x3c,0x3e,0x3e,0x3e,0x3e,0x3e,0x00,0x01,0x01,0x3a,0x3f,0x1e,0x3b, + 0x40,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x00,0x01,0x01,0x41,0x3a, + 0x1e,0x42,0x40,0x31,0x2d,0x31,0x31,0x31,0x31,0x31,0x31,0x00,0x01,0x01, + 0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x43,0x00, + 0x01,0x01,0x44,0x41,0x45,0x17,0x06,0x46,0x31,0x31,0x31,0x31,0x31,0x31, + 0x31,0x00,0x01,0x01,0x44,0x41,0x2b,0x11,0x47,0x48,0x06,0x27,0x27,0x27, + 0x27,0x27,0x27,0x00,0x01,0x01,0x41,0x41,0x3a,0x45,0x49,0x4a,0x4b,0x4b, + 0x4b,0x4b,0x4b,0x4b,0x4b,0x00,0x01,0x01,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c, + 0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x00,0x01,0x01,0x4d,0x4d,0x4d,0x4d, + 0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x00 +}; + +static const QRgb titlebar_inactive_left_ctable[] = { + 0xffffff,0xffffffff,0xfffefefe,0xfffdfdfd,0xfff5f7f9,0xfff1f4f7,0xffeff2f6,0xfff8f9fb,0xfff6f8fa,0xfffbfcfd,0xfff9fbfc,0xfff8fafb,0xfffeffff,0xffe8edf2, + 0xffedf1f5,0xfffdfefe,0xfffcfdfe,0xffe4eaf0,0xffe7ecf1,0xfff0f3f7,0xfffdfdfe,0xffe8eef3,0xffe3e9ef,0xffe9eef3,0xfff3f6f8,0xfff9fafc,0xfffcfdfd,0xfffdfeff, + 0xfff7fbff,0xfff0f4f8,0xffe1e7ee,0xffeef2f5,0xfffafbfc,0xfffafcfd,0xffe6ebf1,0xffe0e7ee,0xfff5f8fa,0xffdfe6ed,0xffe0e7ed,0xffeef2f6,0xfff7f9fb,0xfff8fafc, + 0xffebf5ff,0xffdee5ec,0xffe2e8ef,0xfff3f6f9,0xfff6f8fb,0xffe2e8ee,0xffecf0f5,0xfff2f5f8,0xfff4f7fa,0xfff5f7fa,0xffdee4ec,0xffdfe5ec,0xffecf0f4,0xfff4f6f9, + 0xfff4f7f9,0xffddeeff,0xffdde4eb,0xffeaeff4,0xfff2f5f9,0xfff2f6f9,0xfff1f5f8,0xffdde4ec,0xfff0f4f7,0xffdce3eb,0xffebeff4,0xffcfe7ff,0xffdce3ea,0xffe0e6ed, + 0xfff1f4f8,0xffeaeff3,0xffeef1f5,0xffe3e8ef,0xffe5eaf0,0xffe6ecf1,0xffc6e2ff,0xffa6cff9 +}; + +static const unsigned char titlebar_inactive_right_data[] = { + 0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x01,0x01,0x01,0x01,0x07, + 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x09,0x0a,0x06,0x0a,0x0b,0x0c,0x01, + 0x01,0x01,0x0d,0x00,0x00,0x00,0x00,0x00,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, + 0x0e,0x0e,0x01,0x01,0x01,0x0f,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x11, + 0x11,0x0a,0x0b,0x12,0x13,0x08,0x01,0x01,0x14,0x00,0x00,0x00,0x15,0x15, + 0x15,0x11,0x15,0x0a,0x0c,0x16,0x17,0x18,0x10,0x01,0x19,0x1a,0x00,0x00, + 0x10,0x10,0x10,0x10,0x1b,0x0a,0x1c,0x1d,0x1e,0x1f,0x20,0x01,0x01,0x1a, + 0x00,0x00,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x07, + 0x01,0x22,0x23,0x00,0x24,0x24,0x24,0x24,0x25,0x24,0x09,0x0b,0x26,0x18, + 0x27,0x28,0x01,0x29,0x2a,0x00,0x1c,0x1c,0x1c,0x1c,0x09,0x09,0x08,0x2b, + 0x02,0x18,0x2c,0x2d,0x01,0x01,0x2e,0x00,0x2f,0x2f,0x2f,0x08,0x30,0x30, + 0x2f,0x04,0x31,0x1f,0x32,0x33,0x01,0x01,0x34,0x00,0x35,0x35,0x35,0x35, + 0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x01,0x01,0x34,0x00,0x2b,0x2b, + 0x2b,0x2b,0x0b,0x36,0x2b,0x37,0x12,0x38,0x33,0x39,0x01,0x01,0x34,0x00, + 0x3a,0x3a,0x3a,0x3a,0x3b,0x2b,0x3a,0x3c,0x3d,0x3e,0x33,0x39,0x01,0x01, + 0x34,0x00,0x37,0x37,0x37,0x37,0x3f,0x40,0x3f,0x3c,0x41,0x27,0x42,0x43, + 0x01,0x01,0x34,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, + 0x44,0x44,0x01,0x01,0x34,0x00,0x45,0x45,0x45,0x45,0x46,0x47,0x46,0x16, + 0x48,0x27,0x39,0x49,0x01,0x01,0x34,0x00,0x46,0x46,0x46,0x46,0x46,0x46, + 0x46,0x4a,0x48,0x27,0x4b,0x49,0x01,0x01,0x34,0x00,0x3c,0x3c,0x3c,0x3c, + 0x3c,0x37,0x3c,0x4a,0x4c,0x27,0x49,0x4d,0x01,0x01,0x34,0x00,0x4e,0x4e, + 0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x01,0x01,0x34,0x00, + 0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x4f,0x02,0x1e,0x50,0x4d,0x51,0x01,0x01, + 0x34,0x00,0x31,0x31,0x31,0x31,0x31,0x02,0x52,0x53,0x18,0x39,0x4d,0x51, + 0x01,0x01,0x34,0x00,0x54,0x54,0x54,0x54,0x54,0x54,0x55,0x56,0x50,0x49, + 0x4d,0x4d,0x01,0x01,0x34,0x00,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57, + 0x57,0x57,0x57,0x57,0x01,0x01,0x34,0x00,0x58,0x58,0x58,0x58,0x58,0x58, + 0x58,0x58,0x58,0x58,0x58,0x58,0x01,0x01,0x34,0x00 +}; + +static const QRgb titlebar_inactive_right_ctable[] = { + 0xffffff,0xffffffff,0xffeff2f6,0xfff1f4f7,0xfff5f7f9,0xfffdfdfd,0xfffefefe,0xfffdfeff,0xfff8fafb,0xfff9fbfc,0xfffbfcfd,0xfff6f8fa,0xfff8f9fb,0xffedeeef, + 0xfffeffff,0xffcad1d9,0xfffcfdfe,0xfffdfefe,0xffedf1f5,0xffe8edf2,0xff889bae,0xfffdfdfe,0xfff0f3f7,0xffe7ecf1,0xffe4eaf0,0xffdfe8f0,0xff6589ae,0xfffcfdfd, + 0xfff9fafc,0xfff3f6f8,0xffe9eef3,0xffe3e9ef,0xffe8eef3,0xfff7fbff,0xffdae2ea,0xff5581ae,0xfffafbfc,0xfffafcfd,0xffeef2f5,0xffe1e7ee,0xfff0f4f8,0xffeef2f8, + 0xff3369a0,0xfff5f8fa,0xffe0e7ee,0xffe6ebf1,0xff2e5f91,0xfff7f9fb,0xfff8fafc,0xffeef2f6,0xffe0e7ed,0xffdfe6ed,0xff3a5b7c,0xffebf5ff,0xfff6f8fb,0xfff3f6f9, + 0xffe2e8ef,0xffdee5ec,0xfff4f7fa,0xfff5f7fa,0xfff2f5f8,0xffecf0f5,0xffe2e8ee,0xfff4f6f9,0xfff4f7f9,0xffecf0f4,0xffdfe5ec,0xffdee4ec,0xffddeeff,0xfff1f5f8, + 0xfff2f5f9,0xfff2f6f9,0xffeaeff4,0xffdde4eb,0xfff0f4f7,0xffdde4ec,0xffebeff4,0xffdce3eb,0xffcfe7ff,0xfff1f4f8,0xffe0e6ed,0xffdce3ea,0xffeef1f5,0xffeaeff3, + 0xffe6ecf1,0xffe5eaf0,0xffe3e8ef,0xffc6e2ff,0xffa6cff9 +}; + +static const QRgb titlebutton_round_data[] = { + 0x808080,0x808080,0x808080,0x808080,0x5af3f5f8,0xc3f3f5f8,0xe5f3f5f8,0xfcf3f5f8,0xe5f3f5f8,0x9cf3f5f8,0x52f3f5f8,0x808080,0x808080,0x808080, + 0x808080,0x808080,0x0,0x0,0x0,0x0,0x0,0x94f3f5f8,0xf1f3f5f8,0xfcf3f5f8,0xfff3f5f8,0xfcf3f5f8,0xd9f3f5f8,0x8af3f5f8, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x808080,0x808080,0x52e3e9ef,0xbbe3e9ef,0xffeaeef3, + 0xfff8f9fa,0xfff0f3f6,0xffe8edf2,0xffe4eaf0,0xffe2e8ef,0xffe2e9ef,0xb2e3e9ef,0x49e3e9ef,0x808080,0x808080,0x808080,0x0,0x0,0x0, + 0x8ae3e9ef,0xede3e9ef,0xffecf0f4,0xfffbfcfc,0xfffbfcfc,0xfff9fefe,0xfff5fbfe,0xffeff6fa,0xffeaf1f6,0xe8e4eaf0,0x7de3e9ef,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0xf3f5f8,0x5af3f5f8,0xc3f3f5f8,0xe5f3f5f8,0xfcf3f5f8,0xe5f3f5f8,0x9cf3f5f8,0x52f3f5f8,0x0, + 0x0,0x0,0x0,0x0,0x808080,0x52cfd9e4,0xffd1dbe5,0xffe2e8ee,0xffedf1f6,0xfffbfcfd,0xfff7f9fb,0xffedf1f5,0xffe6ebf1,0xffe2e8ef, + 0xffe0e7ee,0xffdbe2ea,0xffd1dae5,0x49cfd9e4,0x808080,0x808080,0x0,0x0,0x8acfd9e4,0xffd1dbe5,0xffe6ecf2,0xfff9fbfc,0xffffffff,0xffffffff, + 0xffffffff,0xfff9ffff,0xfff4fbff,0xfff2faff,0xffe7eef7,0xffd4dee9,0x7dcfd9e4,0x0,0x0,0x0,0x0,0x0,0xe3e9ef,0x52e3e9ef, + 0xbbe3e9ef,0xffecf0f4,0xfffbfcfc,0xfffbfcfc,0xfff9fefe,0xfff5fbfe,0xffeff6fa,0xffeaf1f6,0xb2e5ebf1,0x49e3e9ef,0x0,0x0,0x0,0x808080, + 0xbbbac8d7,0xffd7dfe9,0xffe4eaf0,0xffedf1f5,0xfff8f9fb,0xfffbfbfd,0xfff4f6f9,0xffebeff4,0xffdfe6ed,0xffdde4ec,0xffdfe6ed,0xffd4dde6,0xb4b8c6d4,0x1000000, + 0x808080,0x0,0x0,0xedbac8d7,0xffd9e1eb,0xfff0f7fa,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff1f9ff,0xffeef6ff,0xfff1f9ff, + 0xffdfe9f3,0xe9b8c7d5,0x2000000,0x0,0x0,0x0,0xcfd9e4,0x52cfd9e4,0xffd1dbe5,0xffe6ecf2,0xfff9fbfc,0xffffffff,0xffffffff,0xffffffff, + 0xfff9ffff,0xfff4fbff,0xfff2faff,0xffe7eef7,0xffd4dee9,0x49cfd9e4,0x0,0x0,0x5aa2b6c9,0xffb6c5d5,0xffdbe2ea,0xffe1e7ee,0xffecf0f5,0xfff6f8fb, + 0xfffafbfd,0xfff7f9fb,0xfff1f4f7,0xffe6ebf1,0xffd8e0e9,0xffdbe2eb,0xffdee5ed,0xffb5c5d5,0x5798abbd,0x808080,0x0,0x94a2b6c9,0xffb6c5d5,0xffe2eaf2, + 0xfff3faff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff9ffff,0xffe8f2fc,0xffecf4ff,0xffeff8ff,0xffbacbdc,0x9098abbd,0x0,0x0, + 0x0,0xbac8d7,0xbbbac8d7,0xffd9e1eb,0xfff0f7fa,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff1f9ff,0xffeef6ff,0xfff1f9ff,0xffdfe9f3, + 0xb4b9c8d6,0x1000000,0x0,0xc389a2bb,0xffcad5e0,0xffdfe6ed,0xffdce4ec,0xffebf0f5,0xfff3f6f9,0xfff7f9fb,0xfff6f8fb,0xfff3f6f9,0xffebf0f4,0xffdce3eb, + 0xffd5dee7,0xffdee5ec,0xffbccbd9,0xa68198b0,0x3000000,0x0,0xf189a2bb,0xffcad5e0,0xffecf4fa,0xffedf6ff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, + 0xffffffff,0xffffffff,0xffedf5ff,0xffe5effa,0xffeff8ff,0xffc5d5e5,0xe08198b0,0x3000000,0x0,0xa2b6c9,0x5aa2b6c9,0xffb6c5d5,0xffe2eaf2,0xfff3faff, + 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff9ffff,0xffe8f2fc,0xffecf4ff,0xffeff8ff,0xffbacbdc,0x5798abbd,0x0,0xf37693b0,0xffd8e0e9, + 0xffdce3eb,0xffd8e1e9,0xffe8edf3,0xfff1f4f8,0xfff3f6f9,0xfff3f6f9,0xfff2f5f9,0xffedf2f6,0xffe1e7ef,0xffd3dce6,0xffdce3eb,0xffcfd9e4,0xe3728eaa,0xb000000, + 0x0,0xfe7693b0,0xffd8e0e9,0xffecf4fd,0xffe8f3fc,0xfffbffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff3faff,0xffe3edf9,0xffedf5ff, + 0xffdde9f5,0xfc728eaa,0xb000000,0x0,0x89a2bb,0xc389a2bb,0xffcad5e0,0xffecf4fa,0xffedf6ff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, + 0xffffffff,0xffedf5ff,0xffe5effa,0xffeff8ff,0xffc5d5e5,0xa68198b0,0x0,0xfd6586a6,0xffdce3ea,0xffd9e1ea,0xffd4dde7,0xffe4eaf0,0xffedf1f5,0xffeff3f7, + 0xfff0f4f8,0xffeff3f7,0xffedf1f5,0xffe3e9f0,0xffd3dde6,0xffdae2ea,0xffdbe3ea,0xfc6585a5,0x15000000,0x0,0xff6586a6,0xffdce3ea,0xffe9f2fb,0xffe4eefa, + 0xfff6fdff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff5fcff,0xffe3eef9,0xffebf4fd,0xffebf4fb,0xff6585a5,0x15000000,0x0,0x7693b0, + 0xf37693b0,0xffd8e0e9,0xffecf4fd,0xffe8f3fc,0xfffbffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff3faff,0xffe3edf9,0xffedf5ff,0xffdde9f5, + 0xe3728eaa,0x0,0xf355799d,0xffd6dee7,0xffdae2ea,0xffd1dbe5,0xffdee5ed,0xffe8edf3,0xffecf0f6,0xffeef1f6,0xffedf2f6,0xffebf0f5,0xffe4eaf0,0xffd5dee7, + 0xffdbe2ea,0xffc9d4e0,0xe9507294,0x1d000000,0x0,0xfe55799d,0xffd6dee7,0xffe6eff8,0xffe0ecf8,0xffeff8ff,0xfffbffff,0xffffffff,0xffffffff,0xffffffff, + 0xffffffff,0xfff6fdff,0xffe5effa,0xffecf4fd,0xffd3dfed,0xfd507294,0x1d000000,0x0,0x6586a6,0xfd6586a6,0xffdce3ea,0xffe9f2fb,0xffe4eefa,0xfff6fdff, + 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff5fcff,0xffe3eef9,0xffebf4fd,0xffebf4fb,0xfc6585a5,0x0,0xa8456d94,0xffa8bbcd,0xffdbe3eb, + 0xffd1dbe5,0xffd6dfe8,0xffe3e9f0,0xffe9eef4,0xffebf1f5,0xffecf1f6,0xffeaf0f4,0xffe3eaf0,0xffd8e0e9,0xffdde4eb,0xffa8bbcd,0xca395b7b,0x20000000,0x0, + 0xe1456d94,0xffa8bbcd,0xffe2ebf4,0xffe0ecf8,0xffe6f1fb,0xfff5fcff,0xfffcffff,0xffffffff,0xffffffff,0xfffdffff,0xfff5fdff,0xffe8f2fc,0xffeef6ff,0xffacc0d4, + 0xf4395b7b,0x20000000,0x0,0x55799d,0xf355799d,0xffd6dee7,0xffe6eff8,0xffe0ecf8,0xffeff8ff,0xfffbffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, + 0xfff6fdff,0xffe5effa,0xffecf4fd,0xffd3dfed,0xe9507294,0x0,0x5237618b,0xff6c8aaa,0xffdae1ea,0xffd7dfe8,0xffd2dbe5,0xffdbe3eb,0xffe5ebf1,0xffeaeff4, + 0xffeef2f6,0xffebf0f5,0xffe4eaf0,0xffdde4eb,0xffdbe2eb,0xff6c8baa,0x921f364e,0x1d000000,0x0,0x8a37618b,0xff6c8aaa,0xffdce3ec,0xffe2ebf5,0xffe2ecf8, + 0xffecf5ff,0xfff8ffff,0xfffdffff,0xffffffff,0xffffffff,0xfff6fdff,0xffeef6ff,0xffe7eef9,0xff6c8bab,0x921f364e,0x1d000000,0x0,0x456d94,0xa8456d94, + 0xffa8bbcd,0xffe2ebf4,0xffe0ecf8,0xffe6f1fb,0xfff5fcff,0xfffcffff,0xffffffff,0xffffffff,0xfffdffff,0xfff5fdff,0xffe8f2fc,0xffeef6ff,0xffacc0d4,0xca395b7b, + 0x0,0x808080,0xa327517d,0xff94abc2,0xffdbe2ea,0xffd8e0e8,0xffd7dfe8,0xffdfe6ed,0xffe8edf2,0xffeef2f6,0xffedf1f6,0xffe6ecf1,0xffdfe6ed,0xffced7e3, + 0xf327527e,0x4f000000,0x15000000,0x0,0x0,0xde27517d,0xff94abc2,0xffdfe6ee,0xffe3ecf5,0xffe7f1fb,0xfff1f9ff,0xfffbffff,0xffffffff,0xffffffff, + 0xfff9ffff,0xffebf3f9,0xffd1dbe7,0xfe27527e,0x4f000000,0x15000000,0x0,0x37618b,0x5237618b,0xff6c8aaa,0xffdce3ec,0xffe2ebf5,0xffe2ecf8,0xffecf5ff, + 0xfff8ffff,0xfffdffff,0xffffffff,0xffffffff,0xfff6fdff,0xffeef6ff,0xffe7eef9,0xff6c8bab,0x0,0x0,0x808080,0x3a184069,0xff2d5a86,0xff8fa7be, + 0xffdae1e9,0xffdce3eb,0xffdee5ed,0xffe5eaf0,0xffedf1f6,0xfff2f5f8,0xffe5ebf1,0xff94aac1,0xff2e5a86,0xb8133456,0x39000000,0xb000000,0x0,0x0, + 0x67184069,0xff2d5a86,0xff8fa7be,0xffdce3eb,0xffe3ebf4,0xffeaf3fa,0xfff6fbfe,0xfffefefe,0xfffbfcfd,0xffedf4f7,0xff95abc2,0xff2e5a86,0xb8133456,0x39000000, + 0xb000000,0x0,0x0,0x27517d,0xa327517d,0xff94abc2,0xffdfe6ee,0xffe3ecf5,0xffe7f1fb,0xfff1f9ff,0xfffbffff,0xffffffff,0xffffffff,0xfff9ffff, + 0xffebf3f9,0xffd1dbe7,0xf327527e,0x0,0x0,0x808080,0x3000000,0x450c3054,0xb70e3963,0xff52779b,0xff8da5bd,0xffbdcbd9,0xffdde4ec,0xffc6d2df, + 0xff9bb0c6,0xff587c9f,0xd00d3257,0x94061627,0x55000000,0x1f000000,0x3000000,0x0,0x0,0x6000000,0x770c3054,0xeb0e3963,0xff52779b,0xff8da5bd, + 0xffbdcbd9,0xffdde4ec,0xffc6d2df,0xff9bb0c6,0xff587c9f,0xf60d3257,0x94061627,0x55000000,0x1f000000,0x3000000,0x0,0x0,0x184069,0x3a184069, + 0xff2d5a86,0xff8fa7be,0xffdce3eb,0xffe3ebf4,0xffeaf3fa,0xfff6fbfe,0xfffefefe,0xfffbfcfd,0xffedf4f7,0xff95abc2,0xff2e5a86,0x0,0x0,0x0, + 0x808080,0x808080,0x7000000,0x21000000,0x84052545,0xc6062f58,0xeb073766,0xfd083b6f,0xec073766,0xd0062d54,0xa7041d37,0x6d000000,0x4d000000,0x26000000, + 0x9000000,0x808080,0x0,0x0,0x0,0xe000000,0x3e000000,0xc4052545,0xf2062f58,0xfd073766,0xff083b6f,0xfe073766,0xf6062d54,0xa7041d37, + 0x6d000000,0x4d000000,0x26000000,0x9000000,0x0,0x0,0x0,0x0,0x3000000,0x450c3054,0xb70e3963,0xff52779b,0xff8da5bd,0xffbdcbd9, + 0xffdde4ec,0xffc6d2df,0xff9bb0c6,0xff587c9f,0xd00d3257,0x0,0x0,0x0,0x0,0x808080,0x808080,0x1000000,0x7000000,0x19000000, + 0x35000000,0x4c000000,0x5c000000,0x63000000,0x5c000000,0x4c000000,0x35000000,0x19000000,0x7000000,0x1000000,0x808080,0x0,0x0,0x0, + 0x2000000,0x7000000,0x19000000,0x35000000,0x4c000000,0x5c000000,0x63000000,0x5c000000,0x4c000000,0x35000000,0x19000000,0x7000000,0x1000000,0x0, + 0x0,0x0,0x0,0x0,0x7000000,0x21000000,0x84052545,0xc6062f58,0xeb073766,0xfd083b6f,0xec073766,0xd0062d54,0x0,0x0, + 0x0,0x0,0x0,0x0,0x808080,0x808080,0x808080,0x808080,0x3000000,0xb000000,0x15000000,0x1d000000,0x20000000,0x1d000000, + 0x15000000,0xb000000,0x3000000,0x808080,0x808080,0x808080,0x0,0x0,0x0,0x0,0x0,0x3000000,0xb000000,0x15000000, + 0x1d000000,0x20000000,0x1d000000,0x15000000,0xb000000,0x3000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; + +static const QRgb titlebutton_square_data[] = { + 0x96f3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8, + 0x96f3f5f8,0x808080,0x0,0xd4f3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8, + 0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xd4f3f5f8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffe3e9ef,0xfff3f5f8,0xfff4f6f9,0xfffafbfc,0xfff6f8fa, + 0xfff0f3f7,0xffedf1f5,0xffebf0f4,0xffeaeff4,0xffe8edf2,0xffe5eaf0,0xffe2e8ef,0xffe1e7ee,0xffe1e7ee,0xffe3e9ef,0x808080,0x0,0xffe3e9ef,0xffffffff, + 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdffff,0xfffbffff,0xfff8fdff,0xfff4fbff,0xfff3faff,0xfff3faff,0xffe3e9ef,0xf3f5f8, + 0x0,0x0,0x96f3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8,0xfff3f5f8, + 0xfff3f5f8,0xfff3f5f8,0x96f3f5f8,0x0,0xffcfd9e4,0xffe5eaf0,0xffe6ecf1,0xffeff3f6,0xfffdfdfe,0xfff9fafc,0xfff7f8fa,0xfff6f8fa,0xfff3f6f9,0xffeff3f6, + 0xffe9edf3,0xffe3e9ef,0xffe0e7ee,0xffdfe6ed,0xffcfd9e4,0x8000000,0x0,0xffcfd9e4,0xfff8fdff,0xfff9ffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, + 0xffffffff,0xffffffff,0xffffffff,0xfffcffff,0xfff5fcff,0xfff2faff,0xfff1f9ff,0xffcfd9e4,0x8000000,0x0,0x0,0xffe3e9ef,0xffffffff,0xffffffff, + 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffdffff,0xfffbffff,0xfff8fdff,0xfff4fbff,0xfff3faff,0xfff3faff,0xffe3e9ef,0x0,0xffbac8d7, + 0xffe0e7ee,0xffe2e8ef,0xffe7ecf1,0xfff6f8fa,0xfffdfdfe,0xfffafbfc,0xfff9fafc,0xfff8f9fb,0xfff4f6f9,0xffecf0f4,0xffdfe6ed,0xffe0e6ed,0xffdee5ed,0xffbac8d7, + 0x1a000000,0x0,0xffbac8d7,0xfff2faff,0xfff4fbff,0xfffaffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff1f9ff, + 0xfff2f9ff,0xffeff8ff,0xffbac8d7,0x1a000000,0x0,0x0,0xffcfd9e4,0xfff8fdff,0xfff9ffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, + 0xffffffff,0xffffffff,0xfffcffff,0xfff5fcff,0xfff2faff,0xfff1f9ff,0xffcfd9e4,0x0,0xffa2b6c9,0xffdee5ed,0xffdae2ea,0xffdee4ec,0xfff0f3f7,0xfff7f9fb, + 0xfff9fbfd,0xfff8f9fc,0xfff8f9fb,0xfff5f7fa,0xffecf0f5,0xffdae2eb,0xffd9e1ea,0xffdee5ec,0xffa2b6c9,0x23000000,0x0,0xffa2b6c9,0xffeff8ff,0xffebf4fd, + 0xffeff6ff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffebf4ff,0xffeaf3fd,0xffeff8ff,0xffa2b6c9,0x23000000,0x0, + 0x0,0xffbac8d7,0xfff2faff,0xfff4fbff,0xfffaffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff1f9ff,0xfff2f9ff, + 0xffeff8ff,0xffbac8d7,0x0,0xff89a2bb,0xffdde5ec,0xffd1dbe5,0xffd6dee8,0xffebf0f4,0xfff3f6f9,0xfff4f7fa,0xfff6f8fb,0xfff4f7fa,0xfff3f6f9,0xffebf0f4, + 0xffd6dee8,0xffd1dbe5,0xffdde5ec,0xff89a2bb,0x23000000,0x0,0xff89a2bb,0xffeef8ff,0xffe0ecf8,0xffe6effb,0xffffffff,0xffffffff,0xffffffff,0xffffffff, + 0xffffffff,0xffffffff,0xffffffff,0xffe6effb,0xffe0ecf8,0xffeef8ff,0xff89a2bb,0x23000000,0x0,0x0,0xffa2b6c9,0xffeff8ff,0xffebf4fd,0xffeff6ff, + 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffebf4ff,0xffeaf3fd,0xffeff8ff,0xffa2b6c9,0x0,0xff7693b0,0xffdbe2ea, + 0xffccd7e2,0xffd1dbe5,0xffe7ecf3,0xffeff3f7,0xfff1f4f8,0xfff2f5f9,0xfff1f4f8,0xffeff3f7,0xffe7ecf3,0xffd1dbe5,0xffccd7e2,0xffdbe2ea,0xff7693b0,0x23000000, + 0x0,0xff7693b0,0xffecf4fd,0xffdbe7f4,0xffe0ecf8,0xfffaffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffaffff,0xffe0ecf8,0xffdbe7f4, + 0xffecf4fd,0xff7693b0,0x23000000,0x0,0x0,0xff89a2bb,0xffeef8ff,0xffe0ecf8,0xffe6effb,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff, + 0xffffffff,0xffffffff,0xffe6effb,0xffe0ecf8,0xffeef8ff,0xff89a2bb,0x0,0xff6586a6,0xffd9e1e9,0xffc9d5e1,0xffced9e3,0xffe4eaf0,0xffecf1f5,0xffecf2f6, + 0xffeef2f6,0xffecf2f6,0xffecf1f5,0xffe4eaf0,0xffced9e3,0xffc9d5e1,0xffd9e1e9,0xff6586a6,0x23000000,0x0,0xff6586a6,0xffeaf3fc,0xffd7e5f3,0xffddeaf5, + 0xfff6fdff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff6fdff,0xffddeaf5,0xffd7e5f3,0xffeaf3fc,0xff6586a6,0x23000000,0x0,0x0, + 0xff7693b0,0xffecf4fd,0xffdbe7f4,0xffe0ecf8,0xfffaffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffaffff,0xffe0ecf8,0xffdbe7f4,0xffecf4fd, + 0xff7693b0,0x0,0xff55799d,0xffdae1ea,0xffcad5e1,0xffced8e3,0xffe2e8f0,0xffe9eef4,0xffeaeff4,0xffebf0f5,0xffeaeff4,0xffe9eef4,0xffe2e8f0,0xffced8e3, + 0xffcad5e1,0xffdae1ea,0xff55799d,0x23000000,0x0,0xff55799d,0xffebf3fd,0xffd8e5f3,0xffdde8f5,0xfff4fbff,0xfffcffff,0xfffdffff,0xffffffff,0xfffdffff, + 0xfffcffff,0xfff4fbff,0xffdde8f5,0xffd8e5f3,0xffebf3fd,0xff55799d,0x23000000,0x0,0x0,0xff6586a6,0xffeaf3fc,0xffd7e5f3,0xffddeaf5,0xfff6fdff, + 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfff6fdff,0xffddeaf5,0xffd7e5f3,0xffeaf3fc,0xff6586a6,0x0,0xff456d94,0xffdbe3ea,0xffced8e3, + 0xffd0dae5,0xffe2e9f0,0xffe7edf3,0xffe8eef4,0xffe9eef4,0xffe8eef4,0xffe7edf3,0xffe2e9f0,0xffd0dae5,0xffced8e3,0xffdbe3ea,0xff456d94,0x23000000,0x0, + 0xff456d94,0xffecf5fd,0xffdde8f5,0xffdfebf8,0xfff4fcff,0xfffaffff,0xfffbffff,0xfffcffff,0xfffbffff,0xfffaffff,0xfff4fcff,0xffdfebf8,0xffdde8f5,0xffecf5fd, + 0xff456d94,0x23000000,0x0,0x0,0xff55799d,0xffebf3fd,0xffd8e5f3,0xffdde8f5,0xfff4fbff,0xfffcffff,0xfffdffff,0xffffffff,0xfffdffff,0xfffcffff, + 0xfff4fbff,0xffdde8f5,0xffd8e5f3,0xffebf3fd,0xff55799d,0x0,0xff37618b,0xffdbe2ea,0xffd5dee7,0xffd3dce6,0xffe1e8ee,0xffe6edf2,0xffe7eef3,0xffe7eef3, + 0xffe9eff4,0xffe9eef3,0xffe4eaf0,0xffd6dfe8,0xffd6dee7,0xffdbe2ea,0xff37618b,0x23000000,0x0,0xff37618b,0xffecf4fd,0xffe5effa,0xffe3edf9,0xfff3fbff, + 0xfff9ffff,0xfffaffff,0xfffaffff,0xfffcffff,0xfffcffff,0xfff6fdff,0xffe6f1fb,0xffe6effa,0xffecf4fd,0xff37618b,0x23000000,0x0,0x0,0xff456d94, + 0xffecf5fd,0xffdde8f5,0xffdfebf8,0xfff4fcff,0xfffaffff,0xfffbffff,0xfffcffff,0xfffbffff,0xfffaffff,0xfff4fcff,0xffdfebf8,0xffdde8f5,0xffecf5fd,0xff456d94, + 0x0,0xff295684,0xffdae2ea,0xffdbe3ea,0xffd8e0e9,0xffe0e7ee,0xffe5ebf1,0xffe7edf2,0xffe8edf3,0xffe9eef3,0xffecf1f5,0xffe9eef3,0xffdfe6ed,0xffdde4eb, + 0xffdce3ea,0xff295684,0x23000000,0x0,0xff295684,0xffebf4fd,0xffecf5fd,0xffe8f2fc,0xfff2faff,0xfff8ffff,0xfffaffff,0xfffbffff,0xfffcffff,0xffffffff, + 0xfffcffff,0xfff1f9ff,0xffeef6ff,0xffedf5fd,0xff295684,0x23000000,0x0,0x0,0xff37618b,0xffecf4fd,0xffe5effa,0xffe3edf9,0xfff3fbff,0xfff9ffff, + 0xfffaffff,0xfffaffff,0xfffcffff,0xfffcffff,0xfff6fdff,0xffe6f1fb,0xffe6effa,0xffecf4fd,0xff37618b,0x0,0xff1c4c7c,0xffdae2ea,0xffdbe2ea,0xffdde4ec, + 0xffe0e7ed,0xffe3e9f0,0xffe5ebf1,0xffe6ecf2,0xffe7edf3,0xffebf0f5,0xfff1f4f8,0xffe7ecf2,0xffe0e6ed,0xffdfe5ec,0xff1c4c7c,0x23000000,0x0,0xff1c4c7c, + 0xffebf4fd,0xffecf4fd,0xffeef6ff,0xfff2faff,0xfff5fcff,0xfff8ffff,0xfff9ffff,0xfffaffff,0xffffffff,0xffffffff,0xfffaffff,0xfff2f9ff,0xfff1f8ff,0xff1c4c7c, + 0x23000000,0x0,0x0,0xff295684,0xffebf4fd,0xffecf5fd,0xffe8f2fc,0xfff2faff,0xfff8ffff,0xfffaffff,0xfffbffff,0xfffcffff,0xffffffff,0xfffcffff, + 0xfff1f9ff,0xffeef6ff,0xffedf5fd,0xff295684,0x0,0xff114476,0xffdbe2ea,0xffdbe2ea,0xffdbe3ea,0xffdee5ec,0xffe1e7ee,0xffe2e8ee,0xffe2e8ef,0xffe4eaf0, + 0xffe7ecf2,0xffecf1f5,0xffeff3f7,0xffeaeff3,0xffe9eef3,0xff114476,0x23000000,0x0,0xff114476,0xffecf4fd,0xffecf4fd,0xffecf5fd,0xffeff8ff,0xfff3faff, + 0xfff4fbff,0xfff4fbff,0xfff6fdff,0xfffaffff,0xffffffff,0xffffffff,0xfffdffff,0xfffcffff,0xff114476,0x23000000,0x0,0x0,0xff1c4c7c,0xffebf4fd, + 0xffecf4fd,0xffeef6ff,0xfff2faff,0xfff5fcff,0xfff8ffff,0xfff9ffff,0xfffaffff,0xffffffff,0xffffffff,0xfffaffff,0xfff2f9ff,0xfff1f8ff,0xff1c4c7c,0x0, + 0x96083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70, + 0xc1062f57,0x23000000,0x0,0xd4083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70, + 0xff083c70,0xff083c70,0xff083c70,0xf0062f57,0x23000000,0x0,0x0,0xff114476,0xffecf4fd,0xffecf4fd,0xffecf5fd,0xffeff8ff,0xfff3faff,0xfff4fbff, + 0xfff4fbff,0xfff6fdff,0xfffaffff,0xffffffff,0xffffffff,0xfffdffff,0xfffcffff,0xff114476,0x0,0x808080,0x1a000000,0x4f000000,0x69000000,0x69000000, + 0x69000000,0x69000000,0x69000000,0x69000000,0x69000000,0x69000000,0x69000000,0x69000000,0x69000000,0x4f000000,0x1a000000,0x0,0x0,0x1a000000, + 0x4f000000,0x69000000,0x69000000,0x69000000,0x69000000,0x69000000,0x69000000,0x69000000,0x69000000,0x69000000,0x69000000,0x69000000,0x4f000000,0x1a000000, + 0x0,0x0,0x96083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70,0xff083c70, + 0xff083c70,0xff083c70,0xc1062f57,0x0,0x808080,0x8000000,0x1a000000,0x23000000,0x23000000,0x23000000,0x23000000,0x23000000,0x23000000,0x23000000, + 0x23000000,0x23000000,0x23000000,0x23000000,0x1a000000,0x8000000,0x0,0x0,0x8000000,0x1a000000,0x23000000,0x23000000,0x23000000,0x23000000, + 0x23000000,0x23000000,0x23000000,0x23000000,0x23000000,0x23000000,0x23000000,0x1a000000,0x8000000,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; + +static struct EmbedImage { + int width, height, depth; + const unsigned char *data; + int numColors; + const QRgb *colorTable; + bool alpha; + const char *name; +} embed_image_vec[] = { + { 3, 50, 1, (const unsigned char*)border_active_left_data, 2, border_active_left_ctable, FALSE, "border-active-left" }, + { 4, 50, 8, (const unsigned char*)border_active_right_data, 3, border_active_right_ctable, FALSE, "border-active-right" }, + { 3, 50, 1, (const unsigned char*)border_inactive_left_data, 2, border_inactive_left_ctable, FALSE, "border-inactive-left" }, + { 4, 50, 8, (const unsigned char*)border_inactive_right_data, 3, border_inactive_right_ctable, FALSE, "border-inactive-right" }, + { 40, 29, 8, (const unsigned char*)caption_active_large_center_data, 36, caption_active_large_center_ctable, TRUE, "caption-active-large-center" }, + { 14, 29, 8, (const unsigned char*)caption_active_large_left_data, 115, caption_active_large_left_ctable, TRUE, "caption-active-large-left" }, + { 14, 29, 8, (const unsigned char*)caption_active_large_right_data, 176, caption_active_large_right_ctable, TRUE, "caption-active-large-right" }, + { 50, 26, 8, (const unsigned char*)caption_active_small_center_data, 25, caption_active_small_center_ctable, TRUE, "caption-active-small-center" }, + { 14, 26, 8, (const unsigned char*)caption_active_small_left_data, 116, caption_active_small_left_ctable, TRUE, "caption-active-small-left" }, + { 14, 26, 8, (const unsigned char*)caption_active_small_right_data, 153, caption_active_small_right_ctable, TRUE, "caption-active-small-right" }, + { 40, 26, 8, (const unsigned char*)caption_inactive_center_data, 25, caption_inactive_center_ctable, TRUE, "caption-inactive-center" }, + { 14, 26, 8, (const unsigned char*)caption_inactive_left_data, 97, caption_inactive_left_ctable, TRUE, "caption-inactive-left" }, + { 14, 26, 8, (const unsigned char*)caption_inactive_right_data, 142, caption_inactive_right_ctable, TRUE, "caption-inactive-right" }, + { 50, 8, 8, (const unsigned char*)grabbar_active_center_data, 7, grabbar_active_center_ctable, FALSE, "grabbar-active-center" }, + { 9, 8, 8, (const unsigned char*)grabbar_active_left_data, 28, grabbar_active_left_ctable, FALSE, "grabbar-active-left" }, + { 9, 8, 8, (const unsigned char*)grabbar_active_right_data, 29, grabbar_active_right_ctable, FALSE, "grabbar-active-right" }, + { 50, 8, 8, (const unsigned char*)grabbar_inactive_center_data, 7, grabbar_inactive_center_ctable, FALSE, "grabbar-inactive-center" }, + { 9, 8, 8, (const unsigned char*)grabbar_inactive_left_data, 32, grabbar_inactive_left_ctable, FALSE, "grabbar-inactive-left" }, + { 9, 8, 8, (const unsigned char*)grabbar_inactive_right_data, 29, grabbar_inactive_right_ctable, FALSE, "grabbar-inactive-right" }, + { 40, 26, 8, (const unsigned char*)titlebar_active_center_data, 24, titlebar_active_center_ctable, TRUE, "titlebar-active-center" }, + { 15, 26, 8, (const unsigned char*)titlebar_active_left_data, 109, titlebar_active_left_ctable, TRUE, "titlebar-active-left" }, + { 15, 26, 8, (const unsigned char*)titlebar_active_right_data, 120, titlebar_active_right_ctable, TRUE, "titlebar-active-right" }, + { 40, 26, 8, (const unsigned char*)titlebar_inactive_center_data, 24, titlebar_inactive_center_ctable, TRUE, "titlebar-inactive-center" }, + { 15, 26, 8, (const unsigned char*)titlebar_inactive_left_data, 78, titlebar_inactive_left_ctable, TRUE, "titlebar-inactive-left" }, + { 15, 26, 8, (const unsigned char*)titlebar_inactive_right_data, 89, titlebar_inactive_right_ctable, TRUE, "titlebar-inactive-right" }, + { 51, 17, 32, (const unsigned char*)titlebutton_round_data, 0, 0, TRUE, "titlebutton-round" }, + { 51, 17, 32, (const unsigned char*)titlebutton_square_data, 0, 0, TRUE, "titlebutton-square" }, + { 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +static const QImage& qembed_findImage( const QString& name ) +{ + + QImage* img = imageDict.find(name); + if ( !img ) { + for (int i=0; embed_image_vec[i].data; i++) { + if ( 0==strcmp(embed_image_vec[i].name, name) ) { + img = new QImage((uchar*)embed_image_vec[i].data, + embed_image_vec[i].width, + embed_image_vec[i].height, + embed_image_vec[i].depth, + (QRgb*)embed_image_vec[i].colorTable, + embed_image_vec[i].numColors, + QImage::BigEndian + ); + if ( embed_image_vec[i].alpha ) + img->setAlphaBuffer(TRUE); + break; + } + } + if ( !img ) { + static QImage dummy; + return dummy; + } + } + return *img; +} + +#endif