// $Id: IconLayer.hh 5733 2006-10-02 13:16:39Z m9710797 $ #ifndef ICONLAYER_HH #define ICONLAYER_HH #include "Layer.hh" #include "LedEvent.hh" #include "FilenameSetting.hh" #include "noncopyable.hh" #include class SDL_Surface; namespace openmsx { class CommandController; class Display; class IconStatus; class IntegerSetting; template class IconLayer : public Layer, private SettingChecker, private noncopyable { public: IconLayer(CommandController& commandController, Display& display, IconStatus& iconStatus, SDL_Surface* screen); virtual ~IconLayer(); // Layer interface: virtual void paint(); virtual const std::string& getName(); private: void createSettings(CommandController& commandController, LedEvent::Led led, const std::string& name); // SettingChecker virtual void check(SettingImpl& setting, std::string& value); Display& display; IconStatus& iconStatus; SDL_Surface* outputScreen; double scaleFactor; struct LedInfo { std::auto_ptr xcoord; std::auto_ptr ycoord; std::auto_ptr fadeTime[2]; std::auto_ptr fadeDuration[2]; std::auto_ptr name[2]; std::auto_ptr icon[2]; }; LedInfo ledInfo[LedEvent::NUM_LEDS]; }; class SDLImage; class GLImage; typedef IconLayer SDLIconLayer; typedef IconLayer GLIconLayer; } // namespace openmsx #endif