123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- #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();
- }
|