Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Oct 20, 2009, 6:47:40 PM (15 years ago)
Author:
rgrieder
Message:

Small stuff:

  • Using a reference to the Shell in InGameConsole
  • Replaced the caller macro in the Shell with a template function
File:
1 edited

Legend:

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

    r5929 r5969  
    3535#include "Core.h"
    3636#include "ConsoleCommand.h"
    37 
    38 #define SHELL_UPDATE_LISTENERS(function) \
    39     for (std::list<ShellListener*>::iterator it = this->listeners_.begin(); it != this->listeners_.end(); ) \
    40         (*(it++))->function()
    4137
    4238namespace orxonox
     
    153149    void Shell::registerListener(ShellListener* listener)
    154150    {
    155         this->listeners_.insert(this->listeners_.end(), listener);
     151        this->listeners_.push_back(listener);
    156152    }
    157153
     
    161157        {
    162158            if ((*it) == listener)
    163                 this->listeners_.erase(it++);
     159                it = this->listeners_.erase(it);
    164160            else
    165161                ++it;
     
    170166    {
    171167        this->inputBuffer_->setCursorPosition(cursor);
    172         SHELL_UPDATE_LISTENERS(cursorChanged);
     168        this->updateListeners<&ShellListener::cursorChanged>();
    173169    }
    174170
     
    199195        this->finishedLastLine_ = true;
    200196
    201         SHELL_UPDATE_LISTENERS(linesChanged);
     197        this->updateListeners<&ShellListener::linesChanged>();
    202198    }
    203199
     
    258254                if (!this->scrollPosition_)
    259255                {
    260                     SHELL_UPDATE_LISTENERS(lineAdded);
     256                    this->updateListeners<&ShellListener::lineAdded>();
    261257                }
    262258            }
     
    265261                (*this->lines_.begin()) += output;
    266262                this->finishedLastLine_ = newline;
    267                 SHELL_UPDATE_LISTENERS(onlyLastLineChanged);
     263                this->updateListeners<&ShellListener::onlyLastLineChanged>();
    268264            }
    269265
     
    273269    void Shell::inputChanged()
    274270    {
    275         SHELL_UPDATE_LISTENERS(inputChanged);
    276         SHELL_UPDATE_LISTENERS(cursorChanged);
     271        this->updateListeners<&ShellListener::inputChanged>();
     272        this->updateListeners<&ShellListener::cursorChanged>();
    277273    }
    278274
     
    299295    {
    300296        this->inputBuffer_->removeBehindCursor();
    301         SHELL_UPDATE_LISTENERS(inputChanged);
    302         SHELL_UPDATE_LISTENERS(cursorChanged);
     297        this->updateListeners<&ShellListener::inputChanged>();
     298        this->updateListeners<&ShellListener::cursorChanged>();
    303299    }
    304300
     
    306302    {
    307303        this->inputBuffer_->removeAtCursor();
    308         SHELL_UPDATE_LISTENERS(inputChanged);
     304        this->updateListeners<&ShellListener::inputChanged>();
    309305    }
    310306
     
    313309        this->inputBuffer_->clear();
    314310        this->historyPosition_ = 0;
    315         SHELL_UPDATE_LISTENERS(inputChanged);
    316         SHELL_UPDATE_LISTENERS(cursorChanged);
     311        this->updateListeners<&ShellListener::inputChanged>();
     312        this->updateListeners<&ShellListener::cursorChanged>();
    317313    }
    318314
     
    320316    {
    321317        this->inputBuffer_->increaseCursor();
    322         SHELL_UPDATE_LISTENERS(cursorChanged);
     318        this->updateListeners<&ShellListener::cursorChanged>();
    323319    }
    324320
     
    326322    {
    327323        this->inputBuffer_->decreaseCursor();
    328         SHELL_UPDATE_LISTENERS(cursorChanged);
     324        this->updateListeners<&ShellListener::cursorChanged>();
    329325    }
    330326
     
    332328    {
    333329        this->inputBuffer_->setCursorToEnd();
    334         SHELL_UPDATE_LISTENERS(cursorChanged);
     330        this->updateListeners<&ShellListener::cursorChanged>();
    335331    }
    336332
     
    338334    {
    339335        this->inputBuffer_->setCursorToBegin();
    340         SHELL_UPDATE_LISTENERS(cursorChanged);
     336        this->updateListeners<&ShellListener::cursorChanged>();
    341337    }
    342338
     
    366362            ++this->scrollPosition_;
    367363
    368             SHELL_UPDATE_LISTENERS(linesChanged);
     364            this->updateListeners<&ShellListener::linesChanged>();
    369365        }
    370366    }
     
    377373            --this->scrollPosition_;
    378374
    379             SHELL_UPDATE_LISTENERS(linesChanged);
     375            this->updateListeners<&ShellListener::linesChanged>();
    380376        }
    381377    }
     
    393389        this->scrollIterator_ = this->lines_.begin();
    394390
    395         SHELL_UPDATE_LISTENERS(exit);
     391        this->updateListeners<&ShellListener::exit>();
    396392    }
    397393}
Note: See TracChangeset for help on using the changeset viewer.