📄 sublcdhistory.c
字号:
{
DecrementSubLCD();
}
}
else
{
ExecTopScrnCallbackHandler_ex(0);
if (ExecuteRootSubLcdHistoryScreenPtr != NULL)
{
gCurrTopSubLCDScrnID = SUB_LCD_DUMMY_SCRNID;
gCurrEntrySubLCDFn = (FuncPtr) ExecuteRootSubLcdHistoryScreenPtr;
ExecuteRootSubLcdHistoryScreenPtr(NULL);
gCurrExitSubLCDScrnID = SUB_LCD_DUMMY_SCRNID;
}
NodeIndex = -1;
}
#endif /* __MMI_SUBLCD__ */
}
/*****************************************************************************
* FUNCTION
* GoBacknSubLCDHistory
* DESCRIPTION
* Go back 'n' history On SubLCD Screen
* PARAMETERS
* nHistory [IN]
* RETURNS
* void
*****************************************************************************/
void GoBacknSubLCDHistory(U16 nHistory)
{
#ifdef __MMI_SUBLCD__
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S16 Count = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_UI_SMALL_SCREEN_SUPPORT__
if (redraw_in_small_screen_proceduer())
{
return;
}
#endif /* __MMI_UI_SMALL_SCREEN_SUPPORT__ */
MMI_TRACE((MMI_TRACE_G1_FRM, MMI_FRM_INFO_SUBHIST_GO_BACK_N_SUBLCD_HDLR, nHistory));
if (NodeIndex >= nHistory)
{
IsBackSubLCDHistory = TRUE;
for (Count = nHistory; Count >= 0; --Count)
{
/* JL, if want to stop to run next decrement will return true. */
if (ExecHistoryScrnCallBackHandle_ex(NodeIndex, 0) == MMI_HIST_STOP_DELETING)
{
break;
}
DecrementSubLCD();
}
GoBackSubLCDHistory();
}
#endif /* __MMI_SUBLCD__ */
}
/*****************************************************************************
* FUNCTION
* GoBackToSubLCDHistory
* DESCRIPTION
* Goes back to specified screen on sub-LCD
* PARAMETERS
* scrnid [IN]
* RETURNS
* U8 - status
*****************************************************************************/
U8 GoBackToSubLCDHistory(U16 scrnid)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 Status = ST_FAILURE;
#ifdef __MMI_SUBLCD__
S16 count = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_UI_SMALL_SCREEN_SUPPORT__
if (redraw_in_small_screen_proceduer())
{
return ST_SUCCESS;
}
#endif /* __MMI_UI_SMALL_SCREEN_SUPPORT__ */
MMI_TRACE((MMI_TRACE_G1_FRM, MMI_FRM_INFO_SUBHIST_GO_BACK_TO_SUBLCD_HDLR, scrnid));
count = NodeIndex;
if (!IsSubLCDScreenPresent(scrnid))
{
return ST_FAILURE;
}
do
{
if (NodeIndex >= 0)
{
if (SubLCDHistoryData[NodeIndex].scrnID == scrnid)
{
Status = ST_SUCCESS;
break;
}
if (ExecHistoryScrnCallBackHandle_ex(NodeIndex, 0) == MMI_HIST_STOP_DELETING)
{
Status = ST_SUCCESS;
break;
}
DecrementSubLCD();
}
} while ((count != NodeIndex) && (SubLCDHistoryData[NodeIndex].entryFuncPtr != NULL) && (NodeIndex > 0));
GoBackSubLCDHistory();
#endif /* __MMI_SUBLCD__ */
return Status;
}
/*****************************************************************************
* FUNCTION
* GoBeyondSubLCDMarkerScr
* DESCRIPTION
* Go one node beyond marker screen on sub-LCD
* PARAMETERS
* scrnid [IN]
* RETURNS
* U8 - status
*****************************************************************************/
U8 GoBeyondSubLCDMarkerScr(U16 scrnid)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 Status = ST_FAILURE;
#ifdef __MMI_SUBLCD__
S16 count = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_UI_SMALL_SCREEN_SUPPORT__
if (redraw_in_small_screen_proceduer())
{
return ST_SUCCESS;
}
#endif /* __MMI_UI_SMALL_SCREEN_SUPPORT__ */
MMI_TRACE((MMI_TRACE_G1_FRM, MMI_FRM_INFO_SUBHIST_GO_BEYOND_SUBLCD_HDLR, scrnid));
count = NodeIndex;
if (!IsSubLCDScreenPresent(scrnid))
{
return ST_FAILURE;
}
do
{
if (NodeIndex > 0)
{
if (SubLCDHistoryData[NodeIndex].scrnID == scrnid)
{
Status = ST_SUCCESS;
break;
}
if (ExecHistoryScrnCallBackHandle_ex(NodeIndex, 0) == MMI_HIST_STOP_DELETING)
{
Status = ST_FAILURE;
break;
}
DecrementSubLCD();
}
} while ((count != NodeIndex) && (SubLCDHistoryData[NodeIndex].entryFuncPtr != NULL));
MMI_ASSERT(NodeIndex >= 0);
if (Status)
{
/* go one node beyond marker screen */
if (ExecHistoryScrnCallBackHandle_ex(NodeIndex, 0) == MMI_HIST_ALLOW_DELETING)
{
DecrementSubLCD();
}
}
Status = ST_SUCCESS;
GoBackSubLCDHistory();
#endif /* __MMI_SUBLCD__ */
return Status;
}
/*****************************************************************************
* FUNCTION
* GoBackBothLCDHistory
* DESCRIPTION
* Go back to history on Main LCD & SubLCD Screen
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void GoBackBothLCDHistory(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_UI_SMALL_SCREEN_SUPPORT__
if (redraw_in_small_screen_proceduer())
{
return;
}
#endif /* __MMI_UI_SMALL_SCREEN_SUPPORT__ */
MMI_TRACE((MMI_TRACE_G1_FRM, MMI_FRM_INFO_SUBHIST_BACK_BOTHLCD_HIST_HDLR));
#ifdef __MMI_SUBLCD__
GoBackSubLCDHistory();
#endif
GoBackHistory();
}
/*****************************************************************************
* FUNCTION
* DeleteUptoSubLCDScrID
* DESCRIPTION
* Go to a screen on sub-LCD and delete history of all ahead of it
* PARAMETERS
* scrnid [IN]
* RETURNS
* U8 - status
*****************************************************************************/
U8 DeleteUptoSubLCDScrID(U16 scrnid)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 Status = ST_FAILURE;
#ifdef __MMI_SUBLCD__
S16 count = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_UI_SMALL_SCREEN_SUPPORT__
if (redraw_in_small_screen_proceduer())
{
return ST_SUCCESS;
}
#endif /* __MMI_UI_SMALL_SCREEN_SUPPORT__ */
MMI_TRACE((MMI_TRACE_G1_FRM, MMI_FRM_INFO_SUBHIST_DEL_UPTO_SUBLCD_SCR_HDLR, scrnid));
count = NodeIndex;
if (!IsSubLCDScreenPresent(scrnid))
{
return ST_FAILURE;
}
do
{
if (SubLCDHistoryData[NodeIndex].scrnID == scrnid)
{
Status = ST_SUCCESS;
break;
}
if (ExecHistoryScrnCallBackHandle_ex(NodeIndex, 0) == MMI_HIST_STOP_DELETING)
{
Status = ST_SUCCESS;
break;
}
DecrementSubLCD();
} while ((count != NodeIndex) && (SubLCDHistoryData[NodeIndex].entryFuncPtr != NULL));
#endif /* __MMI_SUBLCD__ */
return Status;
}
/*****************************************************************************
* FUNCTION
* DeleteNSubLCDScrId
* DESCRIPTION
* Deletes up to screen id on sub-LCD and go beyond it one node
* PARAMETERS
* scrnid [IN]
* RETURNS
* U8 - status
*****************************************************************************/
U8 DeleteNSubLCDScrId(U16 scrnid)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 Status = ST_FAILURE;
#ifdef __MMI_SUBLCD__
S16 count = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_UI_SMALL_SCREEN_SUPPORT__
if (redraw_in_small_screen_proceduer())
{
return ST_SUCCESS;
}
#endif /* __MMI_UI_SMALL_SCREEN_SUPPORT__ */
MMI_TRACE((MMI_TRACE_G1_FRM, MMI_FRM_INFO_SUBHIST_DEL_N_SUBLCD_SCR_HDLR, scrnid));
count = NodeIndex;
if (!IsSubLCDScreenPresent(scrnid))
{
return ST_FAILURE;
}
do
{
if (SubLCDHistoryData[NodeIndex].scrnID == scrnid)
{
Status = ST_SUCCESS;
break;
}
if (ExecHistoryScrnCallBackHandle_ex(NodeIndex, 0) == MMI_HIST_STOP_DELETING)
{
Status = ST_FAILURE;
break;
}
DecrementSubLCD();
} while ((count != NodeIndex) && (SubLCDHistoryData[NodeIndex].entryFuncPtr != NULL));
if (Status)
{
/* delete the one more scrnid of SubLCD history */
if (ExecHistoryScrnCallBackHandle_ex(NodeIndex, 0) == MMI_HIST_ALLOW_DELETING)
{
DecrementSubLCD();
}
}
#endif /* __MMI_SUBLCD__ */
return Status;
}
/*****************************************************************************
* FUNCTION
* DeleteSubLCDScreen
* DESCRIPTION
* Deletes Screen from sub-LCD history
* This screen id won't be deleted
* PARAMETERS
* ScrId [IN]
* RETURNS
* U16 - status
* REMARK
* The behavior is the same with DeleteScreenIfPresent()
*****************************************************************************/
U16 DeleteSubLCDScreen(U16 ScrId)
{
U8 Status = ST_SUCCESS;
#ifdef __MMI_SUBLCD__
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S16 count, i;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_UI_SMALL_SCREEN_SUPPORT__
if (redraw_in_small_screen_proceduer())
{
return ST_SUCCESS;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -