FireBirdLib - Topfield TMS PVR TAP Programming Library
OSDMenuButtonAdd.c
Go to the documentation of this file.
1#include <string.h>
2#include "FBLib_TMSOSDMenu.h"
3
4void OSDMenuButtonAdd(dword Line, tButtonIcon ButtonIcon, TYPE_GrData *ButtonGd, const char *Text)
5{
7
8 tMenu *pMenu;
9 TYPE_GrData *IconGd;
10
11 pMenu = &Menu[CurrentMenuLevel];
12
13 IconGd = OSDMenuGetIconPointer(ButtonIcon, ButtonGd);
14 if((Line == 0) || (Line > 3) || (!IconGd) || (!Text) || (pMenu->NrButtons >= MAXBUTTONS) || (pMenu->OSDMenuDisplayMode == OMDM_ListBox && Line == 3))
15 {
16 TRACEEXIT();
17 return;
18 }
19
20 pMenu->Buttons[pMenu->NrButtons].X = pMenu->ButtonXStart[Line];
21
22 switch(Line)
23 {
24 case 1: pMenu->Buttons[pMenu->NrButtons].Y = 487; break;
25 case 2: pMenu->Buttons[pMenu->NrButtons].Y = 511; break;
26 case 3: pMenu->Buttons[pMenu->NrButtons].Y = 535; break;
27 }
28 pMenu->Buttons[pMenu->NrButtons].pButtonGd = IconGd;
29 strncpy(pMenu->Buttons[pMenu->NrButtons].Text, Text, STDSTRINGSIZE);
30 pMenu->Buttons[pMenu->NrButtons].Text[STDSTRINGSIZE - 1] = '\0';
31 pMenu->Buttons[pMenu->NrButtons].Color = ButtonColor;
32 pMenu->NrButtons++;
33
34 ButtonsDirty = TRUE;
35
36 pMenu->ButtonXStart[Line] = pMenu->ButtonXStart[Line] + IconGd->width + FMUC_GetStringWidth(Text, pMenu->FontButtons) + 8;
37
38 TRACEEXIT();
39}
#define MAXBUTTONS
tMenu Menu[NRMENULEVELS]
Definition: OSDMenuInit.c:6
@ OMDM_ListBox
#define STDSTRINGSIZE
dword CurrentMenuLevel
Definition: OSDMenuInit.c:7
bool ButtonsDirty
dword ButtonColor
Definition: OSDMenuInit.c:8
dword FMUC_GetStringWidth(const char *Text, tFontDataUC *FontData)
void OSDMenuButtonAdd(dword Line, tButtonIcon ButtonIcon, TYPE_GrData *ButtonGd, const char *Text)
TYPE_GrData * OSDMenuGetIconPointer(tButtonIcon ButtonIcon, TYPE_GrData *UserDefinedButton)
tButtonIcon
Definition: libFireBird.h:2803
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define TRACEENTER()
Definition: libFireBird.h:1243
TYPE_GrData * pButtonGd
char Text[STDSTRINGSIZE]
dword NrButtons
tOSDMenuDisplayMode OSDMenuDisplayMode
tButtons Buttons[MAXBUTTONS]
dword ButtonXStart[4]
tFontDataUC * FontButtons