#include "Bilder.h" // Inhalt der Bilder Klasse aus Bilder.h // Konstruktor Bilder::Bilder() { next = 0; name = new Text( "" ); bild = 0; } // Destruktor Bilder::~Bilder() { if( bild ) bild->release(); name->release(); delete (Bilder*)next; } // nicht constant bool Bilder::add( const char *name, Bild *bild ) { if( this->name->istGleich( name ) ) { bild->release(); return 0; } if( !this->bild ) { this->name->setText( name ); this->bild = bild; return 1; } if( !next ) next = new Bilder(); return next->add( name, bild ); } bool Bilder::set( const char *name, Bild *bild ) { if( this->name->istGleich( name ) ) { this->bild->release(); this->bild = bild; return 1; } if( !next ) { bild->release(); return 0; } return next->set( name, bild ); } bool Bilder::remove( const char *name ) { if( this->name->istGleich( name ) ) { this->bild->release(); this->bild = next->zThis(); this->name->setText( ((Bilder*)next)->name ); BilderV *tmp = next->zNext(); next->setNext( 0 ); next->release(); next = tmp; return 1; } if( !next ) return 0; return next->remove( name ); } void Bilder::setNext( BilderV *next ) { this->next = next; } void Bilder::deleteAll() { bild = bild->release(); name->setText( "" ); next->release(); next = 0; } void Bilder::release() { delete this; } // constant Bild *Bilder::get( const char *name ) const { if( this->name->istGleich( name ) ) return bild ? bild->getThis() : 0; if( !next ) return 0; return next->get( name ); } Bild *Bilder::z( const char *name ) const { if( this->name->istGleich( name ) ) return bild; if( !next ) return 0; return next->get( name ); } Bild *Bilder::zThis() const { return bild; } BilderV *Bilder::zNext() const { return next; } char *Bilder::getName() const { return name->getText(); }