#include "fx.h"


/* Generated by reswrap from file folder0a.gif */
const unsigned char folder0a[]={
  0x47,0x49,0x46,0x38,0x39,0x61,0x20,0x00,0x20,0x00,0xf2,0x06,0x00,0x00,0x00,0x00,
  0x00,0x00,0x99,0x00,0x00,0xff,0x99,0x99,0x99,0xc8,0xb4,0xc8,0xcc,0xcc,0xcc,0xff,
  0xff,0xff,0xc8,0xb4,0xc8,0x21,0xf9,0x04,0x01,0x00,0x00,0x07,0x00,0x21,0xfe,0x4e,
  0x54,0x68,0x65,0x20,0x49,0x63,0x6f,0x6e,0x6f,0x6c,0x6f,0x67,0x20,0x3a,0x20,0x54,
  0x68,0x65,0x20,0x41,0x72,0x74,0x20,0x6f,0x66,0x20,0x56,0x69,0x72,0x74,0x75,0x61,
  0x6c,0x20,0x4c,0x69,0x74,0x74,0x65,0x72,0x0a,0x20,0x20,0x20,0x68,0x74,0x74,0x70,
  0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6f,0x7a,0x65,0x6d,0x61,0x69,0x6c,0x2e,0x63,
  0x6f,0x6d,0x2e,0x61,0x75,0x2f,0x7e,0x61,0x66,0x61,0x63,0x74,0x6f,0x72,0x00,0x2c,
  0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0xc2,0x00,0x00,0x00,0x00,0x00,0x99,0x00,
  0x00,0xff,0x99,0x99,0x99,0xc8,0xb4,0xc8,0xcc,0xcc,0xcc,0xff,0xff,0xff,0xc8,0xb4,
  0xc8,0x03,0xbb,0x78,0xba,0x2c,0xce,0xf0,0x84,0x19,0x5b,0x15,0x95,0xca,0x7a,0x9c,
  0x00,0x85,0x11,0x86,0x40,0x69,0x96,0x53,0xa0,0xa8,0x5b,0x05,0x8a,0xc0,0x20,0xcf,
  0x74,0x3d,0x00,0x9c,0x82,0xe9,0xcf,0xce,0xa9,0x2c,0x8e,0xcf,0xf3,0x60,0xb0,0x28,
  0xc1,0x20,0xe3,0x35,0x82,0x9d,0x9e,0x50,0x5c,0x24,0x4a,0x35,0xe5,0x2e,0xc5,0x4e,
  0x4e,0xa3,0x84,0x78,0xbc,0xdb,0xee,0xa5,0xf1,0x35,0x1e,0x53,0x5d,0x22,0xe6,0xf4,
  0x3b,0xb6,0xde,0xcb,0xa6,0x5c,0x44,0x27,0xad,0xae,0x07,0x26,0xcc,0xc6,0x9f,0x49,
  0xa7,0x05,0x31,0x7d,0x7c,0x7f,0x78,0x86,0x87,0x39,0x5f,0x3e,0x11,0x5c,0x89,0x59,
  0x65,0x3f,0x70,0x11,0x18,0x90,0x8b,0x8c,0x62,0x60,0x93,0x6d,0x92,0x9a,0x9d,0x66,
  0x0b,0x98,0x16,0x3c,0x90,0x2b,0x6e,0x40,0x69,0xa4,0xa4,0x77,0x12,0x40,0xa0,0x0b,
  0x6a,0x7a,0x85,0xa0,0x4a,0x49,0x2e,0x75,0xb7,0x73,0x05,0x68,0x1a,0xb6,0xb9,0xb7,
  0x68,0xab,0x39,0x00,0xb8,0x82,0x83,0x35,0xb2,0x0a,0xc3,0x23,0xc5,0xc6,0x7e,0xc2,
  0x7b,0xcd,0x34,0xc8,0x10,0x25,0xd1,0xd2,0x88,0xd8,0xd9,0xda,0x78,0x09,0x00,0x3b
  };


/* Generated by reswrap from file compress0c.gif */
const unsigned char compress0c[]={
  0x47,0x49,0x46,0x38,0x39,0x61,0x20,0x00,0x20,0x00,0xf2,0x06,0x00,0x00,0x00,0x00,
  0x33,0x99,0x99,0x00,0xff,0xff,0x99,0x99,0x99,0xc8,0xb4,0xc8,0xcc,0xcc,0xcc,0xff,
  0xff,0xff,0xc8,0xb4,0xc8,0x21,0xf9,0x04,0x01,0x00,0x00,0x07,0x00,0x21,0xfe,0x4e,
  0x54,0x68,0x65,0x20,0x49,0x63,0x6f,0x6e,0x6f,0x6c,0x6f,0x67,0x20,0x3a,0x20,0x54,
  0x68,0x65,0x20,0x41,0x72,0x74,0x20,0x6f,0x66,0x20,0x56,0x69,0x72,0x74,0x75,0x61,
  0x6c,0x20,0x4c,0x69,0x74,0x74,0x65,0x72,0x0a,0x20,0x20,0x20,0x68,0x74,0x74,0x70,
  0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6f,0x7a,0x65,0x6d,0x61,0x69,0x6c,0x2e,0x63,
  0x6f,0x6d,0x2e,0x61,0x75,0x2f,0x7e,0x61,0x66,0x61,0x63,0x74,0x6f,0x72,0x00,0x2c,
  0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0xc2,0x00,0x00,0x00,0x33,0x99,0x99,0x00,
  0xff,0xff,0x99,0x99,0x99,0xc8,0xb4,0xc8,0xcc,0xcc,0xcc,0xff,0xff,0xff,0xc8,0xb4,
  0xc8,0x03,0xb4,0x78,0xba,0xdc,0x0e,0x10,0xba,0x49,0x17,0x34,0x05,0xe3,0x02,0x2a,
  0x08,0x60,0x28,0x06,0x9d,0x12,0x49,0x14,0x60,0x08,0x6b,0xcb,0xbe,0x46,0x79,0x46,
  0x55,0x3d,0xcd,0x36,0x20,0xec,0x7c,0x2f,0x94,0x07,0x5c,0x6a,0x44,0x04,0x9a,0x4e,
  0xa9,0x82,0x72,0xc9,0x6c,0x72,0x66,0x28,0xdb,0x6d,0xd6,0x14,0x06,0x9d,0xd8,0x25,
  0x34,0xca,0x50,0xc1,0xbe,0xab,0xdf,0x71,0x7b,0x73,0x99,0x59,0xc6,0x20,0x72,0x48,
  0x14,0xa5,0xad,0xec,0x36,0x08,0x08,0x97,0x7a,0x0a,0x03,0xbc,0x3e,0x6d,0x9f,0xd2,
  0xfa,0x0f,0x74,0x1a,0x4a,0x32,0x7c,0x35,0x51,0x00,0x7a,0x79,0x85,0x5d,0x5b,0x8e,
  0x0b,0x79,0x03,0x1e,0x8e,0x8e,0x4f,0x50,0x81,0x94,0x7f,0x57,0x91,0x7b,0x53,0x72,
  0x6e,0x0c,0x8b,0x39,0x3e,0xa4,0x69,0x78,0x86,0x5d,0x9f,0x73,0x0d,0xa2,0x87,0xa4,
  0x3e,0xa6,0x03,0xa8,0x41,0x67,0x66,0x86,0xad,0x1e,0xaa,0x24,0x0d,0xa7,0xa3,0xaf,
  0xb0,0x90,0x1c,0x87,0x99,0x7f,0x2a,0x19,0xc7,0xc2,0x0d,0xc4,0x50,0x96,0x75,0x63,
  0xcb,0x28,0xbd,0x80,0x52,0xce,0x09,0x00,0x3b
  };


// Main Window
class ShutterWindow : public FXMainWindow {

  // Macro for class hierarchy declarations
  FXDECLARE(ShutterWindow)

public:

  FXVerticalFrame *listFrame;
  FXVerticalFrame *buttonFrame;
  FXShutter       *shutterFrame;
  FXTreeList      *tree;
  FXGIFIcon       *foldericon;
  FXGIFIcon       *compressicon;

protected:
  ShutterWindow(){}

public:

  // Message handlers
  long onCmdExit(FXObject*,FXSelector,void*);

public:

  // Constructor
  ShutterWindow(FXApp* a);

  // Initialize
  virtual void create();

  virtual ~ShutterWindow();
  };



// Macro class hierarchy implementation
FXIMPLEMENT(ShutterWindow,FXMainWindow,nullptr,0)



// Construct an application
ShutterWindow::ShutterWindow(FXApp* a):FXMainWindow(a,"Shutter Widget Test",nullptr,nullptr,DECOR_ALL,0,0,600,600){
  FXHorizontalFrame *contents;
  foldericon=new FXGIFIcon(getApp(),folder0a);
  compressicon=new FXGIFIcon(getApp(),compress0c);
  FXShutterItem *shutterItem = 0;

  contents=new FXHorizontalFrame(this,LAYOUT_FILL_X|LAYOUT_FILL_Y);
  listFrame = new FXVerticalFrame(contents,LAYOUT_FILL_X|LAYOUT_FILL_Y|LAYOUT_TOP|LAYOUT_LEFT,0,0,0,0,10,10,10,10);
  new FXLabel(listFrame,"Tree List",nullptr,JUSTIFY_CENTER_X|LAYOUT_FILL_X);
  new FXHorizontalSeparator(listFrame,SEPARATOR_GROOVE|LAYOUT_FILL_X);
  tree = new FXTreeList(listFrame,nullptr,0,FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_X|LAYOUT_FILL_Y|LAYOUT_TOP|LAYOUT_RIGHT|TREELIST_SHOWS_LINES|TREELIST_SHOWS_BOXES);

  buttonFrame=new FXVerticalFrame(contents,FRAME_RAISED|LAYOUT_FILL_Y|LAYOUT_TOP|LAYOUT_LEFT,0,0,0,0,10,10,10,10);
  new FXLabel(buttonFrame,"Button Frame",nullptr,JUSTIFY_CENTER_X|LAYOUT_FILL_X);
  new FXHorizontalSeparator(buttonFrame,SEPARATOR_RIDGE|LAYOUT_FILL_X);

  shutterFrame = new FXShutter(buttonFrame,nullptr,0,FRAME_SUNKEN|LAYOUT_FILL_Y|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_LEFT,0,0,0,0,0,0,0,0,0,0);
  shutterItem = new FXShutterItem(shutterFrame,"Test 1",nullptr,LAYOUT_FILL_X|LAYOUT_FILL_Y,0,0,0,0,10,10,10,10,10,10);
  new FXButton(shutterItem->getContent(),FXString::null,foldericon,getApp(),FXApp::ID_QUIT,FRAME_THICK|FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_CENTER_X,0,0,0,0,10,10,5,5);
  new FXButton(shutterItem->getContent(),FXString::null,compressicon,getApp(),FXApp::ID_QUIT,FRAME_THICK|FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_CENTER_X,0,0,0,0,10,10,5,5);
  new FXButton(shutterItem->getContent(),FXString::null,compressicon,getApp(),FXApp::ID_QUIT,FRAME_THICK|FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_CENTER_X,0,0,0,0,10,10,5,5);
  new FXButton(shutterItem->getContent(),FXString::null,foldericon,getApp(),FXApp::ID_QUIT,FRAME_THICK|FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_CENTER_X,0,0,0,0,10,10,5,5);

  shutterItem = new FXShutterItem(shutterFrame,"Test 2",nullptr,LAYOUT_FILL_X,0,0,0,0,10,10,10,10,10,10);
  new FXButton(shutterItem->getContent(),FXString::null,foldericon,getApp(),FXApp::ID_QUIT,FRAME_THICK|FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_CENTER_X,0,0,0,0,10,10,5,5);
  new FXButton(shutterItem->getContent(),FXString::null,compressicon,getApp(),FXApp::ID_QUIT,FRAME_THICK|FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_CENTER_X,0,0,0,0,10,10,5,5);
  new FXButton(shutterItem->getContent(),FXString::null,foldericon,getApp(),FXApp::ID_QUIT,FRAME_THICK|FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_CENTER_X,0,0,0,0,10,10,5,5);

  shutterItem = new FXShutterItem(shutterFrame,"Test 3",nullptr,LAYOUT_FILL_X,0,0,0,0,10,10,10,10,10,10);
  new FXButton(shutterItem->getContent(),FXString::null,foldericon,getApp(),FXApp::ID_QUIT,FRAME_THICK|FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_CENTER_X,0,0,0,0,10,10,5,5);
  new FXButton(shutterItem->getContent(),FXString::null,compressicon,getApp(),FXApp::ID_QUIT,FRAME_THICK|FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_CENTER_X,0,0,0,0,10,10,5,5);

  shutterItem = new FXShutterItem(shutterFrame,"Test 4",nullptr,LAYOUT_FILL_X,0,0,0,0,10,10,10,10,10,10);
  new FXButton(shutterItem->getContent(),FXString::null,compressicon,getApp(),FXApp::ID_QUIT,FRAME_THICK|FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_CENTER_X,0,0,0,0,10,10,5,5);
  new FXButton(shutterItem->getContent(),FXString::null,compressicon,getApp(),FXApp::ID_QUIT,FRAME_THICK|FRAME_RAISED|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT|LAYOUT_TOP|LAYOUT_CENTER_X,0,0,120,120,10,10,5,5);
  }


ShutterWindow::~ShutterWindow(){
  delete foldericon;
  delete compressicon;
  }

// Create and initialize
void ShutterWindow::create(){

  // Create the windows
  FXMainWindow::create();

  // Make the main window appear
  show(PLACEMENT_SCREEN);
  }


// Here we begin
int main(int argc,char *argv[]){

  // Make application
  FXApp application("Shutter","FoxTest");

  // Open the display
  application.init(argc,argv);

  // Make window
  new ShutterWindow(&application);

  // Create the application's windows
  application.create();

  // Run the application
  return application.run();
  }


