Rev 123 | Blame | Compare with Previous | Last modification | View Log | RSS feed
//************************************************************************//// LCDStreamingText.h//// The CLCDStreamingText class draws streaming text onto the LCD.// Streaming text is a single line of text that is repeatedly streamed// horizontally across the LCD.//// Logitech LCD SDK//// Copyright 2005 Logitech Inc.//************************************************************************#ifndef _LCDSTREAMINGTEXT_H_INCLUDED_#define _LCDSTREAMINGTEXT_H_INCLUDED_#include "LCDBase.h"#include "LCDCollection.h"#include "LCDText.h"#include <string>class CLCDStreamingText: public CLCDCollection{public:CLCDStreamingText();virtual ~CLCDStreamingText();// CLCDBasevirtual HRESULT Initialize(void);virtual void ResetUpdate(void);virtual void Show(BOOL bShow);virtual void SetOrigin(POINT pt);virtual void SetOrigin(int nX, int nY);void SetText(LPCTSTR szText);void SetText ( const std::wstring &sszText);void SetGapText(LPCTSTR szGapText);void SetStartDelay(DWORD dwMilliseconds);void SetSpeed(DWORD dwSpeed);void SetScrollingStep(DWORD dwStepInPixels);void SetAlignment(int nAlignment = DT_LEFT);void SetFont(LOGFONT& lf);void SetFontFaceName(LPCTSTR szFontName);void SetFontPointSize(int nSize);void SetFontWeight(int nPointSize);HFONT GetFont();enum { DEFAULT_DPI = 96, DEFAULT_POINTSIZE = 8 };protected:virtual void OnUpdate(DWORD dwTimestamp);virtual void OnDraw(CLCDGfx &rGfx);private:int AddText(LPCTSTR szText);void RemoveText(int nIndex);void RemoveAllText();private:BOOL RecalcTextBoxes(CLCDGfx &rGfx);void RecalcTextBoxOrigins();void ApplyOrigins(int nOffset);enum eSCROLL_STATES { STATE_DELAY, STATE_SCROLL};DWORD m_dwEllapsedTime; // ellapsed time in stateDWORD m_dwStartDelay; // millisecondsDWORD m_dwSpeed; // pixels/secondDWORD m_dwStepInPixels; // Number of pixels to shiftDWORD m_dwLastUpdate; // millisecondseSCROLL_STATES m_eState;BOOL m_bRecalcExtent;CLCDText* m_pQueueHead;#ifdef UNICODEstd::wstring m_sText;std::wstring m_sGapText;#elsestd::string m_sText;std::string m_sGapText;#endifHFONT m_hFont;int m_nTextAlignment;float m_fFractDistance;};#endif // !_LCDSTREAMINGTEXT_H_INCLUDED_//** end of LCDStreamingText.h *******************************************