blob: 8438c39522b205b7e7668374e8ee54c377118de5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
//************************************************************************
//
// LCDScrollingText.h
//
// The CLCDScrollingText class draws scrolling text onto the LCD.
//
// Logitech LCD SDK
//
// Copyright 2005 Logitech Inc.
//************************************************************************
#ifndef _LCDSCROLLINGTEXT_H_INCLUDED_
#define _LCDSCROLLINGTEXT_H_INCLUDED_
#include "LCDBase.h"
#include "LCDText.h"
class CLCDScrollingText : public CLCDText
{
public:
CLCDScrollingText();
virtual ~CLCDScrollingText();
// CLCDBase
virtual HRESULT Initialize(void);
virtual void ResetUpdate(void);
// CLCDText
virtual void SetText(LPCTSTR szText);
void SetStartDelay(DWORD dwMilliseconds);
void SetEndDelay(DWORD dwMilliseconds);
void EnableRepeat(BOOL bEnable);
void SetSpeed(DWORD dwSpeed);
enum eSCROLL_DIR { SCROLL_HORZ, SCROLL_VERT};
void SetScrollDirection(eSCROLL_DIR eScrollDir);
eSCROLL_DIR GetScrollDirection();
BOOL IsScrollingDone();
protected:
virtual void OnUpdate(DWORD dwTimestamp);
virtual void OnDraw(CLCDGfx &rGfx);
private:
enum eSCROLL_STATES { STATE_START_DELAY, STATE_SCROLL, STATE_END_DELAY, STATE_DONE};
DWORD m_dwEllapsedTime; // ellapsed time in state
DWORD m_dwStartDelay; // milliseconds
DWORD m_dwEndDelay; // milliseconds
DWORD m_dwSpeed; // pixels/second
DWORD m_dwLastUpdate; // milliseconds
BOOL m_bRepeat; // repeat
int m_nScrollingDistance;
float m_fTotalDistance;
eSCROLL_DIR m_eScrollDir;
eSCROLL_STATES m_eState;
};
#endif // !_LCDSCROLLINGTEXT_H_INCLUDED_
//** end of LCDScrollingText.h *******************************************
|