// Maintainer: Max Howell , (C) 2003-5 // Copyright: See COPYING file that comes with this distribution // #ifndef BLOCKANALYZER_H #define BLOCKANALYZER_H #include "analyzerbase.h" #include class TQResizeEvent; class TQMouseEvent; class TQPalette; /** * @author Max Howell */ class BlockAnalyzer : public Analyzer::Base2D { public: BlockAnalyzer( TQWidget* ); ~BlockAnalyzer(); static const uint HEIGHT = 2; static const uint WIDTH = 4; static const uint MIN_ROWS = 3; //arbituary static const uint MIN_COLUMNS = 32; //arbituary static const uint MAX_COLUMNS = 256; //must be 2**n static const uint FADE_SIZE = 90; protected: virtual void transform( Scope& ); virtual void analyze( const Scope& ); virtual void resizeEvent( TQResizeEvent* ); virtual void contextMenuEvent( TQContextMenuEvent* ); virtual void paletteChange( const TQPalette& ); void drawBackground(); void determineStep(); private: TQPixmap* const bar() { return &m_barPixmap; } uint m_columns, m_rows; //number of rows and columns of blocks uint m_y; //y-offset from top of widget TQPixmap m_barPixmap; TQPixmap m_topBarPixmap; Scope m_scope; //so we don't create a vector every frame std::vector m_store; //current bar heights std::vector m_yscale; //FIXME why can't I namespace these? c++ issue? std::vector m_fade_bars; std::vector m_fade_pos; std::vector m_fade_intensity; float m_step; //rows to fall per frame }; #endif