Welcome to mirror list, hosted at ThFree Co, Russian Federation.

LCDScrollingText.h « LCDUI « ui « src - github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
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 *******************************************