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 |