SOL9 Sample: ColorChooser

SOL9 2.0 Samples

1 Screenshot


2 Source code

/*
 * ColorChooser.cpp 
 * Copyright (c) 2015 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. 
 */


// SOL++2000
// 2000.06.15

#include <sol\ApplicationView.h>
#include <sol\ColorChooser.h>
#include <sol\ColorBox.h>

#include "resource.h"

namespace SOL {


class MainView :public ApplicationView {
private:
  ColorChooser colorChooser;
  COLORREF   rgb;
  ColorBox   colorBox;

public:
  /**
   * Constructor
   */
  MainView(Application& applet, const TCHAR* label, Args& args)
    :ApplicationView(applet, label, args.set(XmNstyle, WS_CLIPCHILDREN))
  {
    Args ar;

    ar.set(XmNx, 10);
    ar.set(XmNy, 10);

    ar.set(XmNstyle, WS_VISIBLE);

    //ar.set(XmNstyle, (ulong)SS_OWNERDRAW);
    colorChooser.create(this, NULL, ar);
    
    rgb = colorChooser.getCurrentColor();

    ar.reset();
    colorBox.create(this, NULL, ar);
    colorBox.setColor(rgb);

    addEventHandler(WM_COLORCHOOSER_PICKED, this,
      (Handler)&MainView::picked, NULL);

    addCallback(XmNmenuCallback, IDM_EXIT, this, 
      (Callback)&MainView::exit, NULL);
  }

private:
  long picked(Event& event)
  {
    rgb = (COLORREF)event.getLParam();
    colorBox.setColor(rgb);
    
    return 0L;
  }

private:
  long size(Event& event)
  {
    int width, height;
    event.getSize(width, height);
    
    WINDOWPLACEMENT p;
    colorChooser.getPlacement(&p);
    RECT rc =p.rcNormalPosition;
    
    //colorChooser.getSize(w, h);

    colorBox.reshape(rc.right, 10, width-(rc.right-rc.left)-20, height-20); 
    return 0L;
  }
};

}

//
void  Main(int argc, TCHAR** argv)
{
  ModuleFileName module(argv[0]);
  const TCHAR* name = module.getFileName();
  try {
    Application applet(name, argc, argv);

    Args args;
    args.set(XmNwidth, 540);
    args.set(XmNheight, 580);
  
    //2009/10/11 To avoid a window flicker
    args.set(XmNclassStyle, 0);

    args.set(XmNexStyle, (ulong)WS_EX_CLIENTEDGE);
    MainView colorModel(applet, name, args);
    colorModel.realize();
    applet.run();
    
  } catch (Exception& ex) {
    caught(ex);
  } catch (...) {
    caught(UnknownException());
  } 
}

Last modified: 1 Feb 2017

Copyright (c) 2017 Antillia.com ALL RIGHTS RESERVED.