SOL9 2.0 Class: GadgetList

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

Source code

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


// SOL++2000
#pragma once

#include <sol\LinkedList.h>
#include <sol\Gadget.h>
#include <sol\DC.h>


namespace SOL {

class GadgetList :public LinkedList {
public:
    GadgetList() { }

    BOOL    addLast(Gadget* gadget) {
            return LinkedList::addLast(gadget);   
    }

    BOOL    addFirst(Gadget* gadget) {
            return LinkedList::addFirst(gadget);   
    }

    Gadget*    getNth(int n) {
            return (Gadget*)LinkedList::getNth(n);
    }

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

public:
    void draw(DC* dc, int x, int y)
    {
        ListEntry* ptr = getEntry();
        while(ptr) {
            Gadget* gadget = (Gadget*) ptr -> getObject();
            if(gadget) {
                gadget -> draw(dc, x, y);
            }
            ptr  = ptr -> getNext();
        }
    }

public:
    virtual void getExtent(int* width, int* height)
    {
        *width  = 0;
        *height = 0;
        ListEntry* ptr = getEntry();
        while(ptr) {
            Gadget* gadget = (Gadget*) ptr -> getObject();
            if(gadget) {
                RECT r;
                gadget -> getRect(&r);

                if(r.right >= *width) {
                    *width = r.right;
                }
                if(r.bottom >= *height) {
                    *height = r.bottom;
                }
            }
            ptr  = ptr -> getNext();
        }
    }


};

}



Last modified: 1 Feb 2012

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