Subversion Repositories Projects

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1702 - 1
#if !defined(__SCREENITEM_H__)
2
#define __SCREENITEM_H__
3
 
4
#include <inttypes.h>
5
#include <Max_LCD.h>
6
#include "dataitem.h"
7
 
8
struct ScreenItemAttributes
9
{
10
    uint16_t  bmLeft         : 4;
11
    uint16_t  bmTop          : 2;
12
    uint16_t  bmLen          : 5;
13
    uint16_t  bmHighlighted  : 1;
14
    uint16_t  bmHlChanged    : 1;
15
    uint16_t  bmPgmString    : 1;
16
};
17
 
18
class ScreenItem
19
{
20
      ScreenItemAttributes    itemAttribs;
21
      void                    *dataItem;
22
 
23
      void Print(Max_LCD *p);
24
 
25
      void SetAttribs(uint8_t left, uint8_t top, uint8_t len, bool highlighted, bool pgm);
26
 
27
public:
28
    ScreenItem(uint8_t left, uint8_t top, uint8_t len, bool highlighted, DataItemBase *item);
29
    ScreenItem(uint8_t left, uint8_t top, uint8_t len, bool highlighted, const char *item);
30
 
31
    void Update(Max_LCD *pLcd, bool initial = true);
32
    void Highlight(bool on) { itemAttribs.bmHighlighted = (on) ? 1 : 0; itemAttribs.bmHlChanged = 1; };
33
    bool IsHighlighted() { return (itemAttribs.bmHighlighted == 1); };
34
};
35
 
36
#endif