Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 17, 2008, 3:58:19 AM (16 years ago)
Author:
landauf
Message:
  • implemented Shell, but not yet linked with the graphical console
  • added new features (cursor, OIS::KeyCode listener) to InputBuffer
  • changed some includes to avoid circular header-dependencies in OrxonoxClass and Shell
File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/console/src/core/OutputBuffer.cc

    r1312 r1313  
    3333namespace orxonox
    3434{
    35     OutputBuffer& OutputBuffer::getOutputBuffer()
    36     {
    37         static OutputBuffer instance;
    38         return instance;
    39     }
    40 
    4135    void OutputBuffer::registerListener(OutputBufferListener* listener)
    4236    {
    43         this->listeners_.insert(listener);
     37        this->listeners_.insert(this->listeners_.end(), listener);
    4438    }
    4539
    4640    void OutputBuffer::unregisterListener(OutputBufferListener* listener)
    4741    {
    48         std::set<OutputBufferListener*>::iterator it = this->listeners_.find(listener);
    49         if (it != this->listeners_.end())
    50             this->listeners_.erase(it);
     42        for (std::list<OutputBufferListener*>::iterator it = this->listeners_.begin(); it != this->listeners_.end(); )
     43        {
     44            if ((*it) == listener)
     45                this->listeners_.erase(it++);
     46            else
     47                ++it;
     48        }
    5149    }
    5250
     
    6361            this->stream_.flush();
    6462
     63        // Return true if this was a whole new line, ended by \n
    6564        return (!eof);
    6665    }
     
    6867    void OutputBuffer::callListeners()
    6968    {
    70         for (std::set<OutputBufferListener*>::iterator it = this->listeners_.begin(); it != this->listeners_.end(); ++it)
    71             (*it)->bufferChanged();
     69        for (std::list<OutputBufferListener*>::iterator it = this->listeners_.begin(); it != this->listeners_.end(); ++it)
     70            (*it)->outputChanged();
    7271    }
    7372}
Note: See TracChangeset for help on using the changeset viewer.