Commit ed8ac2a5 authored by jan.koester's avatar jan.koester
Browse files

some api changes

parent 5c0b6df7
Loading
Loading
Loading
Loading
+43 −6
Changes for src/html.cpp: 43 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -454,6 +454,18 @@ void libhtmlpp::HtmlElement::insertChild(libhtmlpp::Element* el){
    _childElement=el;
}

void libhtmlpp::HtmlElement::appendChild(libhtmlpp::Element* el){
    if(_childElement){
        Element *curel=_childElement->nextElement();
        while(curel){
            curel=curel->nextElement();
        }
        curel->_nextElement=el;
    }else{
        _childElement=el;
    }
}


void libhtmlpp::Element::insertBefore(libhtmlpp::Element* el){
    _prevElement->_nextElement=el;
@@ -466,15 +478,23 @@ void libhtmlpp::Element::insertBefore(libhtmlpp::Element* el){
}

void libhtmlpp::Element::insertAfter(libhtmlpp::Element* el){
    _nextElement=el;
    Element *prevel;
    do{
        prevel=el->_prevElement;
    }while(prevel!=nullptr);
    el->_nextElement=_nextElement;
    _nextElement=el;
}

libhtmlpp::Element *libhtmlpp::Element::nextElement(){
    return _nextElement;
}

libhtmlpp::Element *libhtmlpp::Element::prevElement(){
    return _prevElement;
}

int libhtmlpp::Element::getType(){
    return _Type;
}


libhtmlpp::HtmlPage::HtmlPage(){
}

@@ -607,7 +627,24 @@ void libhtmlpp::print(Element* el, HtmlElement* parent,std::string& output) {
            break;
    }
}

#include <iostream>
libhtmlpp::HtmlElement *libhtmlpp::HtmlElement::getElementbyID(const char *id){
    for(Element *curel=this; curel; curel=curel->nextElement()){
        if(curel->getType()==HtmlEl){
            if(((HtmlElement*)curel)->_childElement){
                HtmlElement *find=((HtmlElement*)curel)->getElementbyID(id);
                if(find)
                    return find;
            }
            const char *key=((HtmlElement*)curel)->getAtributte("id");
            if(key && strcmp(key,id)==0){
                std::cout << "hurray" << std::endl;
                return (HtmlElement*)curel;
            }
        }
    }
    return nullptr;
}

void libhtmlpp::HtmlElement::setAttribute(const char* name, const char* value) {
    Attributes* cattr = nullptr;
+10 −2
Changes for src/html.h: 10 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ namespace libhtmlpp {
        HtmlEl=1
    };

    struct Element {
    class Element {
    public:
        Element(){
            _prevElement=nullptr;
@@ -49,17 +49,22 @@ namespace libhtmlpp {
        }

        virtual ~Element(){
            // delete _nextElement;
            delete _nextElement;
        };

        void insertAfter(Element* el);
        void insertBefore(Element* el);

        Element*       nextElement();
        Element*       prevElement();

        int            getType();
    protected:
        Element*      _prevElement;
        Element*      _nextElement;
        int           _Type;

        friend class HtmlElement;
        friend class HtmlString;
        friend void print(Element* el, HtmlElement* parent,std::string &output);
    };
@@ -76,6 +81,9 @@ namespace libhtmlpp {
        int          getIntAtributte(const char* name);

        void         insertChild(Element* el);
        void         appendChild(Element* el);

        HtmlElement *getElementbyID(const char *id);
    protected:

        Element*    _childElement;