SOL9 2.0 Class: Oval

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

Source code

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


// SOL++2000
#pragma once

#include <sol\Shape.h>


namespace SOL {

class Oval :public Shape {
private:
    int x1, y1;
    int x2, y2;
   
public:
    Oval(int p1, int q1, int p2, int q2) {
        x1 = p1; y1 = q1;
        x2 = p2; y2 = q2;
    }

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

    void    draw(DC* dc, int x, int y)
    {
        if(getFillMode()) {
               Brush brush(getBackColor());
            Pen pen(PS_SOLID, getBorderWidth(), getBorderColor());
               HGDIOBJ oldbrush = dc->select(&brush);
            HGDIOBJ oldpen   = dc->select(&pen);
            dc -> ellipse(x+x1, y+y1, x+x2, y+y2);
               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(x+x1, y+y1, x+x2, y+y2);
            dc -> select(oldpen);
        }
    }


    void    get(int* p1, int* q1, int* p2, int* q2) {
              *p1 = x1; *q1 = y1;
              *p2 = x2; *q2 = y2;
    }

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

    void    set(int p1, int q1, int p2, int q2) {
              x1 = p1; y1 = q1;
              x2 = p2; y2 = q2;
    }
};

}


Last modified: 1 Feb 2012

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