⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sublcdhistory.c

📁 MTK手机平台的MMI部分的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
        {
            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 + -