SOL9 2.0 Class: Circle

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

Source code

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


// SOL++2000
#pragma once

#include <sol\Shape.h>

namespace SOL {

class Circle :public Shape {
private:
    int      x,  y;
    unsigned int radius;
   
public:
    Circle(int x1, int y1, unsigned int r) {
        x = x1; y = y1;
        radius = r;
    }

public:
    void     draw(DC* dc) {
        Circle::draw(dc, 0, 0);
    }
public:

    void draw(DC* dc, int px, int py)
    {
        if(getFillMode()) {
               Brush brush(getBackColor());
            Pen pen(PS_SOLID, getBorderWidth(), getBorderColor());
               HGDIOBJ oldbrush = dc->select(&brush);
            HGDIOBJ oldpen   = dc->select(&pen);
               dc -> ellipse(px+x-radius, py+y-radius, 
                px+x+radius, py+y+radius);
               dc->select(oldbrush);
            dc->select(oldpen);
        }
        else {
            StockObject brush(NULL_BRUSH);
            Pen pen(PS_SOLID, getBorderWidth(), getBorderColor());
            dc ->select(&brush);
            HGDIOBJ oldpen =dc ->select(&pen);
               dc -> ellipse(px+x-radius, py+y-radius, 
                px+x+radius, py+y+radius);
            dc -> select(oldpen);
        }
    }

    void    get(int* x1, int* y1, unsigned int *r) {
          *x1 = 1; *y1 = y;
          *r  = radius;
    }

    void    move(int x1, int y1) {
        x += x1; y += y1;
    }

    void    set(int x1, int y1, unsigned int r) {
        x = x1; y = y1;
        radius = r;
    }
};

}


Last modified: 1 Feb 2012

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