| Version 1 (modified by , 5 years ago) ( diff ) |
|---|
ShowItem
CFormItem* CForm::ShowItem(const char* name, bool updateDisplay = true)
Parameters
- name = The button title or input prompt text
- updateDisplay = (optional parameter, true if not included) true to update the display, false do not update the display
Return Value
The ShowItem function returns a pointer to the CFormItem found based on the provided name value; NULL is returned if no item is found with a matching name value.
Remarks
ShowItem is a wrapper for EnableItem to simply code. It is equivalent to EnableItem(name, true, updateDisplay)
Example
void UpdateLocalRemoteForm(CForm *pForm)
{
int mode = 0;
int type = 0;
CFormInput *pMode = (CFormInput*)pForm->FindName(LANG(STR_LOCREM_MODE_PROMPT));
if(pMode != NULL)
{
mode = pMode->GetSelItem();
}
CFormInput *pType = (CFormInput*)pForm->FindName(LANG(STR_LOCREM_COMMTYPE_PROMPT));
if(pType != NULL)
{
type = pType->GetSelItem();
}
// Must do hide items first to allow for conditional items to be at the same place
// in the form otherwise we might show a condition item and then blank it out
if(mode == MODE_OFF)
{
pForm->HideItem(LANG(STR_LOCREM_COMMTYPE_PROMPT));
pForm->HideItem(LANG(STR_LOCREM_PORT_PROMPT));
pForm->HideItem(LANG(STR_LOCREM_IPADDR_PROMPT));
pForm->HideItem(LANG(STR_LOCREM_COMMPORT_PROMPT));
}
else
{
if(type == SERIAL)
{
pForm->HideItem(LANG(STR_LOCREM_IPADDR_PROMPT));
pForm->HideItem(LANG(STR_LOCREM_PORT_PROMPT));
pForm->ShowItem(LANG(STR_LOCREM_COMMPORT_PROMPT));
}
else
{
pForm->HideItem(LANG(STR_LOCREM_COMMPORT_PROMPT));
if(mode == MODE_REMOTE || mode == MODE_REMOTE_SMA)
{
pForm->ShowItem(LANG(STR_LOCREM_IPADDR_PROMPT));
}
else
{
pForm->HideItem(LANG(STR_LOCREM_IPADDR_PROMPT));
}
pForm->ShowItem(LANG(STR_LOCREM_PORT_PROMPT));
}
pForm->ShowItem(LANG(STR_LOCREM_COMMTYPE_PROMPT));
}
}
int CLocalRemote::Config(void)
{
Shutdown();
uint8 byMode = (uint8) GetMode();
commType = (uint8) GetCommType();
commPort = (uint8) GetCommPort();
FORM_INIT(CfgLR, EventLocalRemoteShow, NULL, NULL, NULL, nFormFlgShowHelp);
FORM_ADD_INPUT(CfgLR, Mode, FONT_WIDTH * 0, FONT_HEIGHT * 2, LANG(STR_LOCREM_MODE_PROMPT), 10, 0, 2, EventModeOrTypeChg, &byMode, FORM_UINT8_SEL, LANG(STR_LOCREM_MODE_CHOICES), LANG(STR_LOCREM_MODE_HELP));
FORM_ADD_INPUT(CfgLR, Type, FONT_WIDTH * 0, FONT_HEIGHT * 4, LANG(STR_LOCREM_COMMTYPE_PROMPT), 10, 0, 1, EventModeOrTypeChg, &commType, FORM_UINT8_SEL | FORM_FLAG_DISABLE, LANG(STR_LOCREM_TYPE_CHOICES), LANG(STR_LOCREM_COMMTYPE_HELP));
FORM_ADD_INPUT(CfgLR, ComP, FONT_WIDTH * 0, FONT_HEIGHT * 6, LANG(STR_LOCREM_COMMPORT_PROMPT), 10, 0, 1, NULL, &commPort, FORM_UINT8_SEL | FORM_FLAG_DISABLE, LANG(STR_LOCREM_COMPORT_CHOICES), LANG(STR_LOCREM_COMPORT_HELP) );
FORM_ADD_INPUT(CfgLR, Port, FONT_WIDTH * 0, FONT_HEIGHT * 6, LANG(STR_LOCREM_PORT_PROMPT), 6, 0, 65535, NULL, &GetPort(), FORM_UINT32 | FORM_FLAG_DISABLE, NULL, LANG(STR_LOCREM_PORT_HELP));
FORM_ADD_INPUT(CfgLR, IP, FONT_WIDTH * 0, FONT_HEIGHT * 8, LANG(STR_LOCREM_IPADDR_PROMPT) , 18, 0, 0, NULL, GetIP(), FORM_STR | FORM_FLAG_DISABLE, NULL, LANG(STR_LOCREM_IP_HELP));
FORM_SHOW(CfgLR);
UpdateLocalRemoteForm(&formCfgLR);
int result = FORM_RUN(CfgLR);
FORM_HIDE(CfgLR);
if (result != FORM_RESULT_ESC)
{
SetMode((LocalRemoteMode) byMode);
SetComType((LocalRemoteComm) commType);
SetComPort((LocalRemotePort) commPort);
appCfg.Write();
}
Startup();
return result;
}
EVENT(ModeOrTypeChg)
{
UpdateLocalRemoteForm(pForm);
return 0;
}
EVENT(LocalRemoteShow)
{
ClearLCD();
SetCurColor(COLOR_ATTENTION);
DisplayText(0, 0, LANG(STR_LOCREM_TITLE));
return 0;
}
Note:
See TracWiki
for help on using the wiki.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/cardinal.gif)