Hi Petr,
The best I could do to make my keypad working is :
D4D_CHAR Menu1_text[] = "Menu item 1";
D4D_CHAR Menu2_text[] = "Menu item 2";
static void SreenMenu_OnClicked(D4D_OBJECT* pThis, D4D_MENU_INDEX ix);
static void ScrMain_OnClickButton11(D4D_OBJECT* pThis);
static void ScrMain_OnClickButton22(D4D_OBJECT* pThis);
D4D_DECLARE_TXT_RBUTTON(scrMain_Button11, Button11_text, 10, 220, 100, 45, 12, FONT_TIMES_TAHOMA11, ScrMain_OnClickButton11)
D4D_DECLARE_TXT_RBUTTON(scrMain_Button22, Button22_text, 130, 220, 100, 45, 12, FONT_TIMES_TAHOMA11, ScrMain_OnClickButton22)
D4D_DECLARE_STD_MENU_AUTOSIZE_BEGIN(scr_Menu_Menu, MenuTitle_text , FONT_TIMES_TAHOMA11, 0, 0, 480, 282,\
FONT_TIMES_TAHOMA11, FONT_TIMES_TAHOMA11, NULL, SreenMenu_OnClicked)
D4D_DECLARE_MENU_ITEM(Menu1_text, NULL)
D4D_DECLARE_MENU_ITEM(Menu2_text, NULL)
D4D_DECLARE_MENU_END(scr_Menu_Menu)
D4D_DECLARE_STD_SCREEN_BEGIN(screen_menu, ScreenMenu_)
D4D_DECLARE_SCREEN_OBJECT(scr_Menu_Menu)
D4D_DECLARE_SCREEN_OBJECT(scrMain_Button11)
D4D_DECLARE_SCREEN_OBJECT(scrMain_Button22)
D4D_DECLARE_SCREEN_END()
static void SreenMenu_OnClicked(D4D_OBJECT* pThis, D4D_MENU_INDEX ix)
{
D4D_UNUSED(pThis);
switch(ix)
{
case 0:
D4D_SetText(&scrMain_Button44, "OOOO"); // Change text
break;
case 1:
D4D_SetText(&scrMain_Button44, "SSSS"); // Change text
break;
default:
break;
}
}
//Button Stop OnClick CallBack
static void ScrMain_OnClickButton11(D4D_OBJECT* pThis)
{
D4D_SetText(&scrMain_Button44, "Text1");
}
static void ScrMain_OnClickButton22(D4D_OBJECT* pThis)
{
D4D_SetText(&scrMain_Button44, "Text2");
}
static void ScreenMenu_OnActivate()
{
D4D_CaptureKeys(&scr_Menu_Menu);
}
static void ScreenMenu_OnMain()
{
if(ToggleButton)
{
if(Button1)
{
D4D_KeysChanged(D4D_KEY_UP); // This change key and assign action
d4d_msg.nMsgId = D4D_MSG_TOUCHED; // Change button color
d4d_msg.pObject = (D4D_OBJECT*) &scrMain_Button11; // Select button
D4D_SendMessage(&d4d_msg); // Send message to the object
ToggleButton = 0;
}
else if(Button2)
{
D4D_KeysChanged(D4D_KEY_DOWN);
d4d_msg.nMsgId = D4D_MSG_TOUCHED; // Button action
d4d_msg.pObject = (D4D_OBJECT*) &scrMain_Button22; // Select object
D4D_SendMessage(&d4d_msg); // Send message to the object
ToggleButton = 0;
}
}
if(!repeatedKey)
{
D4D_KeysChanged(0); // Get ready for next key change
ToggleButton = 0;
}
}
My problem now is that function
static void SreenMenu_OnClicked(D4D_OBJECT* pThis, D4D_MENU_INDEX ix)
does not do anything, and functions
static void ScrMain_OnClickButton11(D4D_OBJECT* pThis)
static void ScrMain_OnClickButton22(D4D_OBJECT* pThis)
respond just after I pressed the same button twice.
Also is there any way to update menu items text "Menu1_text" in real time (from my host). If not, then what will be the best way to make menu like screen which menu items names can be updated from host, be able to scroll and select them. I was thiniking of labels array, but not sure if it is going to work. Takes me to much time to experiment with all this stuff, but there is not sample code anywhere. Please can you help me to solve those problems, and if you have any comment (suggestion) for my code above reply it to me.
Thanks,
Harry