SOL9 2.0 Class: Separator

 SOL9 C++ Class Library  SOL9 Samples  SOL9 Tutorial  SOL9 FAQ  SOL9 ClassTree 

Source code

/*
 * Separator.h 
 * Copyright (c) 2011 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. 
 */


// SOL++2000
// 2000.02.18
#pragma once

#include <sol\Primitive.h>
#include <sol\PaintDC.h>
#include <sol\Pen.h>
#include <sol\Brush.h>
#include <sol\StockObject.h>

namespace SOL {

class Separator :public Primitive {
protected:

    long Separator::paint(Event& event)
    {
        PaintDC pdc(this);
        int x, y, w, h;
        getGeometry(x, y, w, h);

        int val = pdc.save();

        StockObject NULLPen(NULL_PEN);
        pdc.select(&NULLPen);

        Brush btnFace(::GetSysColor(COLOR_BTNFACE));
        pdc.select(&btnFace);

        pdc.rectangle(0, 0, w+1, h+1);

        Pen shadowPen(PS_SOLID, 1, ::GetSysColor(COLOR_BTNSHADOW));
        pdc.select(&shadowPen);

        pdc.moveTo(0,   h/2, NULL);
        pdc.lineTo(w+1, h/2);

        Pen colorPen(PS_SOLID, 1, ::GetSysColor(COLOR_WINDOW));
        pdc.select(&colorPen);

        pdc.moveTo(0,   1+h/2, NULL);
        pdc.lineTo(w+1, 1+h/2);

        pdc.restore(val);

        return NULL;
    }

 
public:
    Separator(): Primitive()  { }

public:
    Separator(View* parent, const char* label, Args& args)
    :Primitive(parent, label, args)
    {
        addEventHandler(WM_PAINT, this,
            (Handler)&Separator::paint, NULL);
        setValues(args);    
    }

public:
    virtual Boolean create(View* parent, const char* label, Args& args)
    {
        Boolean rc = Primitive::create(parent, label, args);

        addEventHandler(WM_PAINT, this,
            (Handler)&Separator::paint, NULL);
        setValues(args);
        return rc;
    }

    BOOL    hasCallback() { return FALSE; }
};

}



Last modified: 1 Feb 2012

Copyright (c) 2009-2012 Antillia.com ALL RIGHTS RESERVED.