📄 sublcdhistory.c
字号:
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2005
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*****************************************************************************
*
* Filename:
* ---------
* SubLCDHistory.c
*
* Project:
* --------
* MAUI
*
* Description:
* ------------
* This file is intends for sublcd history control
*
* Author:
* -------
* -------
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*============================================================================
****************************************************************************/
/**
* Copyright Notice
* ?2002 - 2003, Pixtel Communications, Inc., 1489 43rd Ave. W.,
* Vancouver, B.C. V6M 4K8 Canada. All Rights Reserved.
* (It is illegal to remove this copyright notice from this software or any
* portion of it)
*/
/**************************************************************
FILENAME : SubLCDHistory.c
PURPOSE : Implementation of Sub-LCD history stack
REMARKS : nil
AUTHOR : Deepali
DATE : Sept 23, 2003
**************************************************************/
#include "MMI_features.h"
#include "stdC.h"
#include "L4Dr1.h"
#include "PixtelDataTypes.h"
#include "DebugInitDef.h"
#include "FrameworkStruct.h"
#include "HistoryGprot.h"
#include "HistoryDcl.h"
#include "SubLCDHistoryDef.h"
#include "SubLCDHistoryGprot.h"
#include "Unicodexdcl.h"
#include "l4dr.h"
#include "MMI_trc.h"
#define SUB_LCD_DUMMY_SCRNID (0x9999)
/*
* Extern Varibales
*/
/*
* Local Variables
*/
#ifdef __MMI_SUBLCD__
static SubLCDHistoryInternalNode SubLCDHistoryData[MAX_SUBLCD_HISTORY]; /* array of history data */
static pBOOL IsBackSubLCDHistory = FALSE;
static signed char NodeIndex = -1;
static U16 gCurrTopSubLCDScrnID = 0;
static U16 gCurrExitSubLCDScrnID = 0;
static FuncPtr gCurrExitSubLCDFn = NULL;
static FuncPtr gCurrEntrySubLCDFn = NULL;
static SubLcdHistoryCBPtr ExecuteRootSubLcdHistoryScreenPtr = NULL;
#ifdef __MMI_UI_TAB_PANE__
S32 disable_subLCD_history_save = 0;
#endif
#endif /* __MMI_SUBLCD__ */
/*****************************************************************************
* FUNCTION
* ExecSubLCDCurrExitHandler
* DESCRIPTION
* Execute the Current Exit handler of SubLCD
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void ExecSubLCDCurrExitHandler(void)
{
#ifdef __MMI_SUBLCD__
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
MMI_TRACE((MMI_TRACE_G1_FRM, MMI_FRM_INFO_SUBHIST_EXE_SUBLCD_CUR_EXIT_HDLR));
/*
* When goback history in subLCD, we should execute current exit handler but
* not allow to add the history.
*/
if (gCurrExitSubLCDFn != NULL)
{
gCurrExitSubLCDFn();
gCurrExitSubLCDFn = NULL;
}
IsBackSubLCDHistory = FALSE;
#endif /* __MMI_SUBLCD__ */
}
/*****************************************************************************
* FUNCTION
* AddSubLCDHistory
* DESCRIPTION
* Saves Sublcd function in History
* PARAMETERS
* CurrSubLCDHistory [IN]
* RETURNS
* void
*****************************************************************************/
void AddSubLCDHistory(SubLCDHistoryNode *CurrSubLCDHistory)
{
#ifdef __MMI_SUBLCD__
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_UI_TAB_PANE__
if (disable_subLCD_history_save)
{
return;
}
#endif /* __MMI_UI_TAB_PANE__ */
#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_ADD_SUBLCD_HIST_HDLR));
/* MTK added by JL for back history. */
if (IsBackSubLCDHistory != TRUE)
{
FuncPtr CurrSubLCDEntryFn = CurrSubLCDHistory->entryFuncPtr;
if (CurrSubLCDEntryFn != NULL)
{
SubLCDHistoryData[++NodeIndex].entryFuncPtr = CurrSubLCDEntryFn;
SubLCDHistoryData[NodeIndex].scrnID = SUB_LCD_DUMMY_SCRNID;
SubLCDHistoryData[NodeIndex].guiLen = 0;
SubLCDHistoryData[NodeIndex].guiBuffer = NULL;
}
}
IsBackSubLCDHistory = FALSE;
#endif /* __MMI_SUBLCD__ */
}
/*****************************************************************************
* FUNCTION
* AddSubLCDHistoryWithScrID
* DESCRIPTION
* Saves Sublcd function in History with ScrID
* PARAMETERS
* CurrSubLCDHistory [IN]
* scrID [IN]
* RETURNS
* void
*****************************************************************************/
void AddSubLCDHistoryWithScrID(SubLCDHistoryNode *CurrSubLCDHistory, U16 scrID)
{
#ifdef __MMI_SUBLCD__
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
SubLCDHistoryNodeEx subLCDHistory = {0};
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_UI_TAB_PANE__
if (disable_subLCD_history_save)
{
return;
}
#endif /* __MMI_UI_TAB_PANE__ */
#ifdef __MMI_UI_SMALL_SCREEN_SUPPORT__
if (redraw_in_small_screen_proceduer())
{
return;
}
#endif /* __MMI_UI_SMALL_SCREEN_SUPPORT__ */
subLCDHistory.entryFuncPtr = CurrSubLCDHistory->entryFuncPtr;
subLCDHistory.scrnID = scrID;
AddSubLCDHistoryWithScrIDEx(&subLCDHistory, scrID);
#endif /* __MMI_SUBLCD__ */
}
/*****************************************************************************
* FUNCTION
* AddSubLCDHistoryWithScrIDEx
* DESCRIPTION
*
* PARAMETERS
* CurrSubLCDHistory [?]
* scrID [IN]
* RETURNS
* void
*****************************************************************************/
void AddSubLCDHistoryWithScrIDEx(SubLCDHistoryNodeEx *CurrSubLCDHistory, U16 scrID)
{
#ifdef __MMI_SUBLCD__
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_UI_TAB_PANE__
if (disable_subLCD_history_save)
{
return;
}
#endif /* __MMI_UI_TAB_PANE__ */
#ifdef __MMI_UI_SMALL_SCREEN_SUPPORT__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -