]> Shamusworld >> Repos - apple2/commitdiff
Added missing files...
authorShamus Hammons <jlhamm@acm.org>
Tue, 29 May 2007 13:52:59 +0000 (13:52 +0000)
committerShamus Hammons <jlhamm@acm.org>
Tue, 29 May 2007 13:52:59 +0000 (13:52 +0000)
src/gui/draggablewindow2.cpp [new file with mode: 0755]
src/gui/draggablewindow2.h [new file with mode: 0755]
src/gui/guielements.h [new file with mode: 0755]

diff --git a/src/gui/draggablewindow2.cpp b/src/gui/draggablewindow2.cpp
new file mode 100755 (executable)
index 0000000..25df4d0
--- /dev/null
@@ -0,0 +1,202 @@
+//
+// DRAGGABLEWINDOW2.CPP
+//
+// Graphical User Interface draggable window class
+// by James L. Hammons
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// WHO  WHEN        WHAT
+// ---  ----------  ------------------------------------------------------------
+// JLH  03/17/2006  Created this file
+// JLH  03/17/2006  Added clipping against parent extents
+//
+// STILL TO DO:
+//
+// - Check for parent's extents and clip movement against those extents [DONE]
+//
+
+#include "draggablewindow2.h"
+#include "guimisc.h"                                                           // Various support functions
+#include <algorithm>
+
+// Debugging support
+
+//#define DESTRUCTOR_TESTING
+#define BACKGROUND_IMG_TEST
+#define USE_COVERAGE_LISTS
+
+#if SDL_BYTEORDER == SDL_BIG_ENDIAN
+#define MASK_R 0xFF000000
+#define MASK_G 0x00FF0000
+#define MASK_B 0x0000FF00
+#define MASK_A 0x000000FF
+#else
+#define MASK_R 0x000000FF
+#define MASK_G 0x0000FF00
+#define MASK_B 0x00FF0000
+#define MASK_A 0xFF000000
+#endif
+
+//
+// DraggableWindow class implementation
+//
+// NOTE: FG/BG colors are hard-wired
+//
+
+DraggableWindow2::DraggableWindow2(uint32 x/*= 0*/, uint32 y/*= 0*/, uint32 w/*= 0*/, uint32 h/*= 0*/,
+       void (* f)(Element *)/*= NULL*/):
+       Window(x, y, w, h, f), clicked(false)
+{
+#ifdef BACKGROUND_IMG_TEST
+       uint16 imgWidth = (floppyDiskImg[0] << 8) | floppyDiskImg[1];
+       uint16 imgHeight = (floppyDiskImg[2] << 8) | floppyDiskImg[3];
+       img = SDL_CreateRGBSurfaceFrom(&floppyDiskImg[4], imgWidth, imgHeight, 32, imgWidth * 4,
+               MASK_R, MASK_G, MASK_B, MASK_A);
+       label = SDL_CreateRGBSurface(SDL_SWSURFACE, 16*7, 32, 32,
+               MASK_R, MASK_G, MASK_B, MASK_A);
+
+//Prolly should draw this in the constructor...
+//Now is! :-D
+       extern char textChar2e[];
+       uint8 * fontAddr = (uint8 *)textChar2e + ((128 + 32) * 7 * 8);
+       SetNewFont(Font(fontAddr, 7, 8));
+       DrawStringOpaque(label, 0,  0, 0xFF000000, 0xFFFFFFFF, "Ultima III - Boo");
+       DrawStringOpaque(label, 0,  8, 0xFF000000, 0xFFFFFFFF, "0123456789012345");
+       DrawStringOpaque(label, 0, 16, 0xFF000000, 0xFFFFFFFF, "1234567890123456");
+       DrawStringOpaque(label, 0, 24, 0xFF000000, 0xFFFFFFFF, "2345678901234567");
+       RestoreOldFont();
+#endif
+
+//     CreateBackstore();
+//Bleh. We only have to do this here because Window's constructor is doing it too. !!! FIX !!!
+//Mebbe put this shiaut into Element? What about stuff that doesn't draw itself right away?
+//Perhaps we should just hit needToRefreshScreen or some such--but will that trigger a redraw?
+       RestoreScreenFromBackstore();
+       Draw(); // Can we do this in the constructor??? Mebbe.
+}
+
+DraggableWindow2::~DraggableWindow2()
+{
+#ifdef DESTRUCTOR_TESTING
+printf("Inside ~DraggableWindow2()...\n");
+#endif
+
+#ifdef BACKGROUND_IMG_TEST
+       SDL_FreeSurface(img);
+       SDL_FreeSurface(label);
+#endif
+}
+
+void DraggableWindow2::HandleMouseMove(uint32 x, uint32 y)
+{
+       if (clicked)
+       {
+//Need to check whether or not we've run into the extents of the screen... !!! FIX !!!
+//[DONE]
+               int32 newX = x - offset.x;
+               int32 newY = y - offset.y;
+               SDL_Rect clip = GetParentRect();
+
+               if (newX < clip.x)
+                       newX = clip.x;
+               else if (newX > (clip.w - extents.w))
+                       newX = clip.w - extents.w;
+
+               if (newY < clip.y)
+                       newY = clip.y;
+               else if (newY > (clip.h - extents.h))
+                       newY = clip.h - extents.h;
+
+               RestoreScreenFromBackstore();
+               extents.x = newX;
+               extents.y = newY;
+               SaveScreenToBackstore();
+//             SDL_BlitSurface(screen, &extents, backstore, NULL);
+               Draw();
+
+               return;
+       }
+
+       // Handle the items this window contains...
+//     for(uint32 i=0; i<list.size(); i++)
+               // Make coords relative to upper right corner of this window...
+//             list[i]->HandleMouseMove(x - extents.x, y - extents.y);
+       Window::HandleMouseMove(x, y);
+}
+
+void DraggableWindow2::HandleMouseButton(uint32 x, uint32 y, bool mouseDown)
+{
+       clicked = false;
+
+       if (mouseDown && Inside(x, y))
+       {
+               clicked = true;
+               offset.x = x - extents.x;
+               offset.y = y - extents.y;
+       }
+
+       // Handle the items this window contains...
+       for(uint32 i=0; i<list.size(); i++)
+       {
+               // Make coords relative to upper right corner of this window...
+               list[i]->HandleMouseButton(x - extents.x, y - extents.y, mouseDown);
+
+               if (list[i]->Inside(x - extents.x, y - extents.y))
+                       clicked = false;
+       }
+}
+
+void DraggableWindow2::Draw(void)
+{
+#ifdef USE_COVERAGE_LISTS
+       // These are *always* top level and parentless, so no need to traverse up through
+       // the parent chain...
+       for(std::list<SDL_Rect>::iterator i=coverList.begin(); i!=coverList.end(); i++)
+       {
+               SDL_Rect src, dst;
+               src.x = (*i).x - extents.x, src.y = (*i).y - extents.y, src.w = (*i).w, src.h = (*i).h;
+               dst.x = (*i).x, dst.y = (*i).y;
+               SDL_BlitSurface(img, &src, screen, &dst);
+       }
+
+//This doesn't get clipped at all... !!! FIX !!!
+       SDL_Rect src, dst;
+       src.x = 0, src.y = 0, src.w = label->w, src.h = label->h;
+       dst.x = extents.x + 8, dst.y = extents.y + 6;
+       SDL_BlitSurface(label, &src, screen, &dst);
+
+       // Handle the items this window contains...
+       for(uint32 i=0; i<list.size(); i++)
+               list[i]->Draw();
+#else
+       // These are *always* top level and parentless, so no need to traverse up through
+       // the parent chain...
+//Perhaps we can make these parentable, put the parent traversal in the base class?
+//Prolly.
+#ifdef BACKGROUND_IMG_TEST
+       SDL_Rect src, dst;
+       src.x = 0, src.y = 0, src.w = extents.w, src.h = extents.h;
+       dst.x = extents.x, dst.y = extents.y;
+       SDL_BlitSurface(img, &src, screen, &dst);
+
+       extern char textChar2e[];
+       uint8 * fontAddr = (uint8 *)textChar2e + ((128 + 32) * 7 * 8);
+       SetNewFont(Font(fontAddr, 7, 8));
+       DrawStringOpaque(screen, extents.x + 8, extents.y +  6, 0xFF000000, 0xFFFFFFFF, "Ultima III - Boo");
+       DrawStringOpaque(screen, extents.x + 8, extents.y + 14, 0xFF000000, 0xFFFFFFFF, "0123456789012345");
+       DrawStringOpaque(screen, extents.x + 8, extents.y + 22, 0xFF000000, 0xFFFFFFFF, "1234567890123456");
+       DrawStringOpaque(screen, extents.x + 8, extents.y + 30, 0xFF000000, 0xFFFFFFFF, "2345678901234567");
+       RestoreOldFont();
+#else
+       SDL_FillRect(screen, &extents, bgColor);
+#endif
+
+       // Handle the items this window contains...
+       for(uint32 i=0; i<list.size(); i++)
+               list[i]->Draw();
+#endif
+
+//Prolly don't need this since the close button will do this for us...
+       needToRefreshScreen = true;
+}
diff --git a/src/gui/draggablewindow2.h b/src/gui/draggablewindow2.h
new file mode 100755 (executable)
index 0000000..47113ff
--- /dev/null
@@ -0,0 +1,32 @@
+//
+// DRAGGABLEWINDOW2.H
+//
+// Graphical User Interface window class
+//
+
+#ifndef __DRAGGABLEWINDOW2_H__
+#define __DRAGGABLEWINDOW2_H__
+
+#include "window.h"
+#include <vector>
+
+class DraggableWindow2: public Window
+{
+       public:
+               DraggableWindow2(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0,
+                       void (* f)(Element *) = NULL);
+               ~DraggableWindow2(); // Does this destructor need to be virtual? No, it doesn't!
+               virtual void HandleMouseMove(uint32 x, uint32 y);
+               virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown);
+               virtual void Draw(void);
+
+       protected:
+               bool clicked;
+               SDL_Rect offset;
+
+       private:
+               SDL_Surface * img;
+               SDL_Surface * label;
+};
+
+#endif // __DRAGGABLEWINDOW2_H__
diff --git a/src/gui/guielements.h b/src/gui/guielements.h
new file mode 100755 (executable)
index 0000000..4ea89a3
--- /dev/null
@@ -0,0 +1,343 @@
+//
+// GUIELEMENTS.H
+//
+// Graphical User Interface bitmaps and such
+//
+
+#ifndef __GUIELEMENTS_H__
+#define __GUIELEMENTS_H__
+
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// Okay, this is ugly but works and I can't think of any better way to handle this. So what
+// we do when we pass the GIMP bitmaps into a function is pass them as a (void *) and then
+// cast them as type (Bitmap *) in order to use them. Yes, it's ugly. Come up with something
+// better!
+
+struct Bitmap {
+       unsigned int width;
+       unsigned int height;
+       unsigned int bytesPerPixel;                                     // 3:RGB, 4:RGBA
+       unsigned char pixelData[];
+};
+
+//NOTE: 32-bit pixels are in the format of ABGR...
+//      This may not be endian safe... Mac users?
+//Using the GIMP C style bitmap is portable in that it's specified in bytes
+//but we can cast it in uint32s and thus it will display correctly regardless of
+//the underlying endianess. At least, in theory. ;-)
+
+uint32 mousePic[] = {
+       6, 8,
+
+       0xFF00FF00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,              // +
+       0xFF00C600,0xFF00FF00,0x00000000,0x00000000,0x00000000,0x00000000,              // @+
+       0xFF00C600,0xFF00FF00,0xFF00FF00,0x00000000,0x00000000,0x00000000,              // @++
+       0xFF00C600,0xFF00C600,0xFF00FF00,0xFF00FF00,0x00000000,0x00000000,              // @@++
+       0xFF00C600,0xFF00C600,0xFF00FF00,0xFF00FF00,0xFF00FF00,0x00000000,              // @@+++
+       0xFF00C600,0xFF00C600,0xFF00C600,0xFF00FF00,0xFF00FF00,0xFF00FF00,              // @@@+++
+       0xFF00C600,0xFF00C600,0xFF00C600,0x00000000,0x00000000,0x00000000,              // @@@
+       0xFF00C600,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000               // @
+/*
+       0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000,              // +
+       0x0300,0x03E0,0x0000,0x0000,0x0000,0x0000,              // @+
+       0x0300,0x03E0,0x03E0,0x0000,0x0000,0x0000,              // @++
+       0x0300,0x0300,0x03E0,0x03E0,0x0000,0x0000,              // @@++
+       0x0300,0x0300,0x03E0,0x03E0,0x03E0,0x0000,              // @@+++
+       0x0300,0x0300,0x0300,0x03E0,0x03E0,0x03E0,              // @@@+++
+       0x0300,0x0300,0x0300,0x0000,0x0000,0x0000,              // @@@
+       0x0300,0x0000,0x0000,0x0000,0x0000,0x0000               // @
+
+       0xFFFF,0x0000,0x0000,0x0000,0x0000,0x0000,              // +
+       0xE318,0xFFFF,0x0000,0x0000,0x0000,0x0000,              // @+
+       0xE318,0xFFFF,0xFFFF,0x0000,0x0000,0x0000,              // @++
+       0xE318,0xE318,0xFFFF,0xFFFF,0x0000,0x0000,              // @@++
+       0xE318,0xE318,0xFFFF,0xFFFF,0xFFFF,0x0000,              // @@+++
+       0xE318,0xE318,0xE318,0xFFFF,0xFFFF,0xFFFF,              // @@@+++
+       0xE318,0xE318,0xE318,0x0000,0x0000,0x0000,              // @@@
+       0xE318,0x0000,0x0000,0x0000,0x0000,0x0000               // @
+*/
+};
+
+uint32 upArrowBox[] = {
+       8, 8,
+
+       0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,                // ++++++++
+       0xFFF7D649,0x00000000,0x00000000,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000,0xFFBD8400,                // +  @@  .
+       0xFFF7D649,0x00000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0xFFBD8400,                // + @@@@ .
+       0xFFF7D649,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFBD8400,                // +@@@@@@.
+       0xFFF7D649,0x00000000,0x00000000,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000,0xFFBD8400,                // +  @@  .
+       0xFFF7D649,0x00000000,0x00000000,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000,0xFFBD8400,                // +  @@  .
+       0xFFF7D649,0x00000000,0x00000000,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000,0xFFBD8400,                // +  @@  .
+       0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400                 // ........
+};
+
+uint32 downArrowBox[] = {
+       8, 8,
+
+       0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,                // ++++++++
+       0xFFF7D649,0x00000000,0x00000000,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000,0xFFBD8400,                // +  @@  .
+       0xFFF7D649,0x00000000,0x00000000,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000,0xFFBD8400,                // +  @@  .
+       0xFFF7D649,0x00000000,0x00000000,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000,0xFFBD8400,                // +  @@  .
+       0xFFF7D649,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFBD8400,                // +@@@@@@.
+       0xFFF7D649,0x00000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0xFFBD8400,                // + @@@@ .
+       0xFFF7D649,0x00000000,0x00000000,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000,0xFFBD8400,                // +  @@  .
+       0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400                 // ........
+};
+
+/* GIMP RGBA C-Source image dump (unlit button (16x16).png.c) */
+
+static const struct {
+  unsigned int          width;
+  unsigned int          height;
+  unsigned int          bytes_per_pixel; /* 3:RGB, 4:RGBA */ 
+  unsigned char         pixel_data[16 * 16 * 4 + 1];
+} pbUp = {
+  16, 16, 4,
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\26\26\26\40`__\203\205rr\305\216mm\344\205"
+  "cc\345kWW\306@??\202\16\16\16\37\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\2\2\2\4nll\205\277\217\217\372\251LL\377\23588\377\23155\377\227"
+  "22\377\22600\377\22477\377\204UU\371>;;\203\1\1\1\3\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\2\2\2\4\225\215\215\260\271hh\377\234==\377\22499\377\22366\377\22233"
+  "\377\22111\377\221//\377\220--\377\221,,\377\213==\377SJJ\254\1\1\1\4\0\0"
+  "\0\0\0\0\0\0omm\205\271hh\377\231==\377\224::\377\22377\377\22344\377\223"
+  "22\377\22100\377\220..\377\220--\377\220,,\377\220++\377\213<<\377=;;\204"
+  "\0\0\0\0\27\27\27\"\301\220\220\372\234==\377\224::\377\22388\377\22555\377"
+  "\22533\377\22411\377\223//\377\222--\377\220,,\377\220++\377\221**\377\222"
+  "**\377\204RR\372\16\16\16\37baa\205\252MM\377\224::\377\22377\377\22655\377"
+  "\22433\377\22111\377\216//\377\214..\377\214,,\377\217++\377\221++\377\221"
+  "**\377\224**\377\22422\377=<<\203\207tt\307\23599\377\22366\377\22355\377"
+  "\22533\377\22111\377\215//\377\213..\377\213--\377\212,,\377\212++\377\221"
+  "**\377\222**\377\226**\377\227**\377dNN\306\222oo\344\23155\377\22244\377"
+  "\22322\377\22411\377\216//\377\213..\377\213--\377\212,,\377\212++\377\212"
+  "**\377\220**\377\223**\377\230))\377\231**\377xTT\345\210ff\345\23033\377"
+  "\22111\377\22100\377\223//\377\215..\377\213--\377\212,,\377\212++\377\212"
+  "**\377\212**\377\221**\377\224))\377\232))\377\233))\377yTT\344lYY\304\230"
+  "11\377\221//\377\220..\377\222--\377\215,,\377\212,,\377\212++\377\212**"
+  "\377\212**\377\211**\377\224))\377\226))\377\235))\377\235**\377dNN\305?"
+  ">>\177\230;;\377\220..\377\220--\377\220,,\377\217++\377\212++\377\212**"
+  "\377\212**\377\212**\377\222))\377\225))\377\234))\377\237))\377\23455\377"
+  ";;;\200\15\15\15\34\207YY\367\222--\377\220,,\377\220++\377\221++\377\222"
+  "**\377\220**\377\221**\377\224))\377\224))\377\232))\377\237))\377\237**"
+  "\377\211UU\367\14\14\14\34\0\0\0\0:88{\221CC\377\220++\377\221++\377\221"
+  "**\377\222**\377\223**\377\224))\377\226))\377\234))\377\237))\377\237))"
+  "\377\232AA\377988{\0\0\0\0\0\0\0\0\1\1\1\2NGG\243\221CC\377\223++\377\224"
+  "**\377\226**\377\227))\377\232))\377\235))\377\236))\377\237**\377\232BB"
+  "\377OGG\244\1\1\1\2\0\0\0\0\0\0\0\0\0\0\0\0\1\1\1\2""766w\204WW\365\2279"
+  "9\377\231,,\377\231**\377\233**\377\236++\377\23388\377\207VV\365766w\1\1"
+  "\1\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12\12\12\30""777w]M"
+  "M\272rSS\330sSS\330]MM\270777w\12\12\12\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0",
+};
+
+uint32 pushButtonUp[] = {
+       8, 8,
+
+       0x00000000, 0xFF1B1B1B, 0xFF545477, 0xFF525292, 0xFF474787, 0xFF363659, 0xFF0F0F0F, 0x00000000,
+       0xFF1B1B1C, 0xFF6666A7, 0xFF393995, 0xFF343492, 0xFF2F2F90, 0xFF2C2C90, 0xFF3B3B7E, 0xFF0F0F0F,
+       0xFF555578, 0xFF3A3A95, 0xFF353594, 0xFF303091, 0xFF2D2D8F, 0xFF2B2B90, 0xFF2A2A92, 0xFF333358,
+       0xFF545493, 0xFF343492, 0xFF303092, 0xFF2D2D8B, 0xFF2B2B8A, 0xFF2A2A8D, 0xFF292994, 0xFF3D3D83,
+       0xFF484889, 0xFF2F2F90, 0xFF2D2D8F, 0xFF2B2B8A, 0xFF2A2A89, 0xFF29298E, 0xFF292998, 0xFF3D3D84,
+       0xFF37375A, 0xFF2C2C90, 0xFF2B2B90, 0xFF2A2A8D, 0xFF29298E, 0xFF292995, 0xFF29299D, 0xFF34345B,
+       0xFF0E0E0E, 0xFF3E3E7F, 0xFF2A2A92, 0xFF292994, 0xFF292998, 0xFF29299D, 0xFF3C3C88, 0xFF0E0E0E,
+       0x00000000, 0xFF0D0D0D, 0xFF343456, 0xFF3D3D80, 0xFF3D3D82, 0xFF333358, 0xFF0D0D0D, 0x00000000
+};
+
+uint8 pbuAlpha[] = {
+       0xFF, 0xE4, 0xA0, 0x99, 0xA4, 0xBE, 0xF0, 0xFF, 
+       0xE3, 0x85, 0x00, 0x00, 0x00, 0x00, 0xAF, 0xF0, 
+       0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 
+       0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAD, 
+       0xA3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 
+       0xBD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 
+       0xF1, 0xAD, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xF1, 
+       0xFF, 0xF2, 0xC0, 0xAD, 0xAD, 0xC0, 0xF2, 0xFF
+};
+
+/* GIMP RGBA C-Source image dump (Lit Button (16x16).png.c) */
+
+static const struct {
+  unsigned int          width;
+  unsigned int          height;
+  unsigned int          bytes_per_pixel; /* 3:RGB, 4:RGBA */ 
+  unsigned char         pixel_data[16 * 16 * 4 + 1];
+} pbDown = {
+  16, 16, 4,
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\261\261\261\36\276\276\276\200\272\272\272"
+  "\302\255\255\255\343\236\236\236\343\214\214\214\302~~~\177uuu\35\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\223\223\223\3\332\332\332\200\353"
+  "\353\353\371\347\323\323\377\321\224\224\377\303rr\377\274jj\377\263uu\377"
+  "\237\212\212\377\205\205\205\370xxx\177ccc\3\0\0\0\0\0\0\0\0\0\0\0\0\236"
+  "\236\236\3\345\345\345\252\371\362\362\377\326\203\203\377\325BB\377\353"
+  "DD\377\365DD\377\365CC\377\351>>\377\31777\377\251TT\377\210\200\200\377"
+  "yyy\250```\3\0\0\0\0\0\0\0\0\333\333\333\200\371\362\362\377\320cc\377\356"
+  "GG\377\371HH\377\366FF\377\363CC\377\363BB\377\365AA\377\367@@\377\351<<"
+  "\377\257@@\377\203{{\377www\177\0\0\0\0\261\261\261\36\354\354\354\370\326"
+  "\204\204\377\356GG\377\370HH\377\362EE\377\351BB\377\340>>\377\337==\377"
+  "\347>>\377\357??\377\366??\377\352;;\377\242LL\377{{{\370sss\35\300\300\300"
+  "\200\350\324\324\377\326BB\377\371HH\377\362EE\377\341@@\377\324<<\377\326"
+  "<<\377\325;;\377\32199\377\335;;\377\360>>\377\370??\377\32033\377\205pp"
+  "\377xxx\177\274\274\274\302\322\225\225\377\353DD\377\366FF\377\351BB\377"
+  "\324<<\377\331==\377\335>>\377\335==\377\330;;\377\32088\377\347<<\377\365"
+  ">>\377\353::\377\225UU\377xxx\303\260\260\260\343\305tt\377\366EE\377\363"
+  "DD\377\340>>\377\326<<\377\335>>\377\342??\377\342>>\377\334<<\377\32388"
+  "\377\33599\377\363>>\377\371==\377\237II\377yyy\343\237\237\237\343\275l"
+  "l\377\365CC\377\363BB\377\337==\377\325;;\377\335==\377\342>>\377\342>>\377"
+  "\334<<\377\32388\377\33699\377\364>>\377\372==\377\240II\377yyy\343\216\216"
+  "\216\303\264vv\377\352??\377\365AA\377\347>>\377\32199\377\330;;\377\334"
+  "<<\377\334<<\377\327::\377\31777\377\350;;\377\371>>\377\357;;\377\227UU"
+  "\377xxx\302~~~\200\240\214\214\377\32188\377\367@@\377\357??\377\335;;\377"
+  "\32088\377\32388\377\32388\377\31777\377\33799\377\362==\377\376>>\377\326"
+  "55\377\204nn\377www\177vvv\34\205\205\205\370\253UU\377\353==\377\366??\377"
+  "\360>>\377\347<<\377\33599\377\33699\377\350;;\377\362==\377\375>>\377\362"
+  ";;\377\246HH\377zzz\370rrr\36\0\0\0\0xxx\177\210\200\200\377\261AA\377\353"
+  "==\377\370??\377\365>>\377\363>>\377\364>>\377\370>>\377\376>>\377\362<<"
+  "\377\266<<\377~uu\377www\177\0\0\0\0\0\0\0\0ddd\3yyy\250\203{{\377\243MM"
+  "\377\32155\377\354<<\377\371>>\377\372>>\377\357;;\377\32755\377\246HH\377"
+  "~uu\377xxx\250___\3\0\0\0\0\0\0\0\0\0\0\0\0hhh\3www\177{{{\370\205pp\377"
+  "\225UU\377\237JJ\377\240JJ\377\227UU\377\204nn\377zzz\370www\177```\3\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ttt\35www\200xxx\303yyy\343y"
+  "yy\343xxx\303xxx\177sss\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",
+};
+
+uint32 pushButtonDown[] = {
+       8, 8,
+
+       0x00000000, 0xFF1B1B1B, 0xFF8B8B90, 0xFF8C8CAF, 0xFF767699, 0xFF56565B, 0xFF0F0F0F, 0x00000000,
+       0xFF1B1B1B, 0xFFB8B8D6, 0xFF5555E4, 0xFF4444F2, 0xFF4040F1, 0xFF4141D5, 0xFF626282, 0xFF0F0F0F,
+       0xFF8C8C91, 0xFF5555E4, 0xFF4444EF, 0xFF3E3EDC, 0xFF3B3BDB, 0xFF3D3DEC, 0xFF3E3ED4, 0xFF4B4B51,
+       0xFF8D8DB1, 0xFF4444F2, 0xFF3E3EDC, 0xFF3E3EDD, 0xFF3C3CDC, 0xFF3939D9, 0xFF3C3CF3, 0xFF59597E,
+       0xFF77779B, 0xFF4141F1, 0xFF3B3BDB, 0xFF3C3CDC, 0xFF3B3BDC, 0xFF3838D9, 0xFF3C3CF5, 0xFF595980,
+       0xFF57575D, 0xFF4242D8, 0xFF3D3DEC, 0xFF3939D9, 0xFF3838D9, 0xFF3C3CEF, 0xFF3D3DDC, 0xFF4C4C52,
+       0xFF101010, 0xFF636385, 0xFF3E3ED8, 0xFF3D3DF4, 0xFF3D3DF6, 0xFF3D3DDD, 0xFF5D5D83, 0xFF101010,
+       0x00000000, 0xFF101010, 0xFF4E4E55, 0xFF5B5B83, 0xFF5B5B84, 0xFF4D4D54, 0xFF101010, 0x00000000
+};
+
+uint8 pbdAlpha[] = {
+       0xFF, 0xE4, 0x72, 0x68, 0x7E, 0xA7, 0xF0, 0xFF, 
+       0xE4, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x93, 0xF0, 
+       0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB2, 
+       0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9A, 
+       0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9A, 
+       0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 
+       0xEF, 0x91, 0x00, 0x00, 0x00, 0x00, 0x96, 0xEF, 
+       0xFF, 0xEF, 0xAE, 0x98, 0x97, 0xAF, 0xEF, 0xFF
+};
+
+uint32 slideSwitchUp[] = {
+       8, 16,
+
+//0C7F -> 000011 00011 11111 -> 0000 1100 0001 1000 1111 1111 -> 0C 18 FF
+       0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,                // ++++++++
+       0xFFF7D649,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFBD8400,                // +      .
+       0xFFF7D649,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFBD8400,                // +      .
+       0xFFF7D649,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFBD8400,                // +      .
+       0xFFF7D649,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFBD8400,                // +      .
+       0xFFF7D649,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFBD8400,                // +      .
+       0xFFF7D649,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFBD8400,                // +      .
+       0xFFF7D649,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFBD8400,                // +      .
+       0xFFF7D649,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xFFBD8400,                // +.......
+       0xFFF7D649,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xFFBD8400,                // +.......
+       0xFFF7D649,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xFFBD8400,                // +.......
+       0xFFF7D649,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xFFBD8400,                // +.......
+       0xFFF7D649,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xFFBD8400,                // +.......
+       0xFFF7D649,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xFFBD8400,                // +.......
+       0xFFF7D649,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xFFBD8400,                // +.......
+       0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400                 // ........
+};
+
+uint32 slideSwitchDown[] = {
+       8, 16,
+
+       0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,0xFFF7D649,                // ++++++++
+       0xFFF7D649,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xFFBD8400,                // +.......
+       0xFFF7D649,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xFFBD8400,                // +.......
+       0xFFF7D649,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xFFBD8400,                // +.......
+       0xFFF7D649,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xFFBD8400,                // +.......
+       0xFFF7D649,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xFFBD8400,                // +.......
+       0xFFF7D649,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xFFBD8400,                // +.......
+       0xFFF7D649,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xFFBD8400,                // +.......
+       0xFFF7D649,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFBD8400,                // +      .
+       0xFFF7D649,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFBD8400,                // +      .
+       0xFFF7D649,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFBD8400,                // +      .
+       0xFFF7D649,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFBD8400,                // +      .
+       0xFFF7D649,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFBD8400,                // +      .
+       0xFFF7D649,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFBD8400,                // +      .
+       0xFFF7D649,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFFF180C,0xFFBD8400,                // +      .
+       0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400,0xFFBD8400                 // ........
+};
+
+#define CLOSEBOX_WIDTH         15
+#define CLOSEBOX_HEIGHT                15
+
+uint32 closeBox[] = {
+       15, 15,
+
+       0x00000000, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0x00000000, 
+       0xFF3838ED, 0xFF5858E7, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF5858E7, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF3838ED, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF3838ED, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF3838ED, 0xFF3838ED, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF3838ED, 0xFF3838ED, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF000000, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF5858E7, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF5858E7, 0xFF3838ED, 
+       0x00000000, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0x00000000
+};
+
+uint32 closeBoxHover[] = {
+       15, 15,
+
+       0x00000000, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0x00000000, 
+       0xFF3838ED, 0xFF5858E7, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF5858E7, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF3838ED, 0xFF3838ED, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF3838ED, 0xFF3838ED, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF52B7FF, 0xFF52B7FF, 0xFF52B7FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF40AFFF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF63BEFF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF40AFFF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF40AFFF, 0xFF52B7FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF52B7FF, 0xFF40AFFF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF40AFFF, 0xFF52B7FF, 0xFF63BEFF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF63BEFF, 0xFF52B7FF, 0xFF40AFFF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF40AFFF, 0xFF52B7FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF52B7FF, 0xFF40AFFF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF40AFFF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF63BEFF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF40AFFF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF52B7FF, 0xFF52B7FF, 0xFF52B7FF, 0xFF3838ED, 0xFF6B6BFB, 0xFF3838ED, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF3838ED, 0xFF3838ED, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF40AFFF, 0xFF3838ED, 0xFF3838ED, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF6B6BFB, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF20A2FF, 0xFF6B6BFB, 0xFF3838ED, 
+       0xFF3838ED, 0xFF5858E7, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF6B6BFB, 0xFF5858E7, 0xFF3838ED, 
+       0x00000000, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0x00000000
+};
+
+uint32 closeBoxDown[] = {
+       15, 15,
+
+       0x00000000, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0x00000000, 
+       0xFF3838ED, 0xFF1D1DE2, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF1D1DE2, 0xFF3838ED, 
+       0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, 
+       0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF3838ED, 0xFF3838ED, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF3838ED, 0xFF3838ED, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, 
+       0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0077CC, 0xFF0077CC, 0xFF0077CC, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, 
+       0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF0786E2, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF006EBD, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0786E2, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, 
+       0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF0786E2, 0xFF0077CC, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0077CC, 0xFF0786E2, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, 
+       0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF0786E2, 0xFF0077CC, 0xFF006EBD, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF006EBD, 0xFF0077CC, 0xFF0786E2, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, 
+       0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF0786E2, 0xFF0077CC, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0077CC, 0xFF0786E2, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, 
+       0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF0786E2, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF006EBD, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0786E2, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, 
+       0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF0077CC, 0xFF0077CC, 0xFF0077CC, 0xFF3838ED, 0xFF2B2BC0, 0xFF3838ED, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, 
+       0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF3838ED, 0xFF3838ED, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF0786E2, 0xFF3838ED, 0xFF3838ED, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, 
+       0xFF3838ED, 0xFF2B2BC0, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF1F9DF7, 0xFF2B2BC0, 0xFF3838ED, 
+       0xFF3838ED, 0xFF1D1DE2, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF2B2BC0, 0xFF1D1DE2, 0xFF3838ED, 
+       0x00000000, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0xFF3838ED, 0x00000000
+};
+
+#include "vj_title_small.c"
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __GUIELEMENTS_H__