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

📄 oskernel.c

📁 好记星的控件,包括button,list,对文件操作
💻 C
📖 第 1 页 / 共 4 页
字号:
/****************************************************************************/
/*    NAME         DATE               REMARKS                               */
/* ==========  ============   ==============================================*/
/*   谢永良     2005-03-31          创建                                    */
/****************************************************************************/
static  INT _GuiModelHandleEvent(UINT uEvent, UINT uParam)
{
    APGUI_STRUCT_MODEL  *pGui;
    INT     nRet;

/*
#ifdef  __ED928__		//只在668机中需要将TIMER转给DESKTOP处理
	if(uEvent == EVENT_TIMER &&(uParam == ELP_BL_TIMER_ID || uParam == ELP_DISP_TIMER_ID))
	{
		if(g_pDesktopGuiModel != NULL)
		{
		    pGui = (APGUI_STRUCT_MODEL*)g_pDesktopGuiModel;
		    nRet = pGui->fpHandleFunc( pGui, uEvent, uParam );
		}
	}
	else
	{
#endif
*/

    // 依次将消息发给AP和其控件进行处理
    pGui = (APGUI_STRUCT_MODEL*)g_pCurrGuiModel;
    nRet = 0;
    while( pGui->uReserveMark != 0 )
    {
        // Dennyhan added: Special to EVENT_IME
        if (   (uEvent==EVENT_IME)
           &&  (  ( (IMEGUI_STRUCT*)pGui)->uCurrentIme != NULL )  )
        {
            IMeManager( (IMEGUI_STRUCT*)pGui, &uEvent, &uParam);
            nRet=TRUE;
            break;
        }

        nRet = pGui->fpHandleFunc( pGui, uEvent, uParam );

        if ( nRet )
            break;
        pGui++;
    }
/*
#ifdef  __ED928__		//只在668机中需要将TIMER转给DESKTOP处理
	}
#endif
*/

    return nRet;
}


/****************************************************************************/
// 设置优先事件处理函数
FPHANDLEEVENT   KnlSetEventPrevHandle( FPHANDLEEVENT fpProc)
{
    FPHANDLEEVENT   fpOld;
    fpOld = (FPHANDLEEVENT)g_fpKernelEventPrev;
    g_fpKernelEventPrev = fpProc;
    return fpOld;
}

// 设置事后事件处理函数
FPHANDLEEVENT   KnlSetEventBehindHandle( FPHANDLEEVENT fpProc)
{
    FPHANDLEEVENT   fpOld;
    fpOld = g_fpKernelEventPrev;
    g_fpKernelEventBehind = fpProc;
    return fpOld;
}

//获取DESKTOP GUI 的指针
APGUI_STRUCT  **KnlGetDesktopGui(VOID)
{
	return &g_pDesktopGuiModel;
}


/****************************************************************************/
/* FUNCTION:   APGUI_STRUCT_MODEL* GetApHandle(VOID)						*/
/* DESCRIPTION:取得当前AP模板句柄	                                        */
/* INPUTS:																	*/
/* OUTPUTS:    NONE                                                        */
/* RETURN:     Ap模板句柄                                                  */
/****************************************************************************/
/*    NAME         DATE               REMARKS                               */
/* ==========  ============   ==============================================*/
/*  gaolinhui     2006-01-12          创建                                  */
/****************************************************************************/
APGUI_STRUCT_MODEL* GetApHandle(VOID)
{
	return (APGUI_STRUCT_MODEL*)g_pCurrGuiModel;
}

//============================================================================
//
// the following is used for pen of ED135
//
//============================================================================
//============================================================================
//
// the following is used for for Alarm Event
//
//============================================================================
/*************************************************************************
    Function   : AlarmEventCallBack
    Description: send EV_ALARM to gui queue when alarm interupt active,
                 make sure the queue is exist.

      DATE      AUTHOR   VERSION  REMARKS
==========================================================================
    2006-01-23  gaolinhui    1.0     create
    2006.1.24    Dennyhan     1.01 changed void-> static void
**************************************************************************/
static void AlarmEventCallBack(void)
{
    TimeType    time;
    DateType    date;
	UINT32		dwEVParam;

    // get current time
    TimGetTime(&time);
    TimGetDate(&date);
	/*闹铃消息参数说明: 年(bit20 - bit31)
						月(bit16 - bit19)
						日(bit11 - bit15)
						时(bit6 - bit10)
						分(bit0 - bit5)
	*/
	dwEVParam = (date.wYear<<20) + (date.byMonth<<16)
		+(date.byDay<<11) + (time.byHour<<6) + time.byMinute;
	//发送一个闹铃消息
	MsgPost((APGUI_STRUCT_MODEL*)NULL, EVENT_ALARM, (UINT)dwEVParam);
}

//===================================================
// DennyHan Added for USB Key
// // It is reserved by now
//==========
//---------------------------------------------------
VOID GetOsKnlMsg(UINT *pEvent,UINT *pMsg)
{
UINT        aEvent[2];
UNSIGNED    dwRetLen;

	*pEvent=0;
	*pMsg=0;
	if (NU_Receive_From_Queue(&g_quEventQueue, aEvent, EVENT_SIZE, &dwRetLen, NU_NO_SUSPEND) == NU_SUCCESS )
	{	 
		if ( dwRetLen == 2 )
		{
			*pEvent=aEvent[0];
			*pMsg = aEvent[1];
		}
	}
}
//===========================================================================
/****************************************************************************/
/* FUNCTION:   UINT OsGuiHelpSet(UINT uParam, INT nLevel)                  */
/* FUNCTION:   UINT OsGuiHelpGet(INT nLevel)                               */
/* FUNCTION:   UINT SetGuiHelp(UINT uParam)                                */
/* FUNCTION:   UINT GetGuiHelp(VOID)                                       */
/* FUNCTION:   INT GetGuiHelpLevel(VOID)                                   */
/* FUNCTION:   INT IncGuiHelpLevel(VOID)                                   */
/* FUNCTION:   INT DecGuiHelpLevel(VOID)                                   */
/* DESCRIPTION:Help ID or String   										*/
/* INPUTS:     NONE                                                        */
/* OUTPUTS:    NONE                                                        */
/* RETURN:     NONE					                                    */
/****************************************************************************/
/*    NAME         DATE               REMARKS                               */
/* ==========  ============   ==============================================*/
/*   DennyHan    2006-02-21          First Issue							*/
/****************************************************************************/
// For Help
#define OSGUI_MAX_HELP  (GUI_BUFFER_COUNT+2)
static UINT             g_aGuiHelpPool[OSGUI_MAX_HELP];
static INT              g_uGuiHelpNum;
BOOL OsGuiHelpInitialize(VOID)
{
    memset(g_aGuiHelpPool,0,sizeof(g_aGuiHelpPool));
    g_uGuiHelpNum = 0 ;
    return TRUE;    
}

// Set Current Help Resorce
UINT OsGuiHelpSet(UINT uParam, INT nLevel)
{
    UINT uRet = 0;
   
	if (  (nLevel < OSGUI_MAX_HELP) && (nLevel >=0)   )
    {
        uRet = g_aGuiHelpPool[nLevel];
        g_aGuiHelpPool[nLevel] = uParam;
    }
    
	return uRet;
}

// Get Current Help Resorce
UINT OsGuiHelpGet(INT nLevel)
{
UINT uRet = 0;
    if (  (nLevel < OSGUI_MAX_HELP)
        &&(nLevel >=0)               )
    {
        uRet = g_aGuiHelpPool[nLevel];
    }
    return uRet;
}

// Set Current Help Resorce
UINT SetGuiHelp(UINT uParam)
{
    return OsGuiHelpSet(uParam, g_uGuiHelpNum);
}

// Get Current Help Resorce
UINT GetGuiHelp(VOID)
{
    return OsGuiHelpGet(g_uGuiHelpNum);
}

// Get Current Help Level 
INT GetGuiHelpLevel(VOID)
{
    return g_uGuiHelpNum;
}

// Inc Curretn Help Level
INT IncGuiHelpLevel(VOID)
{
INT uRet = -1;
    
    if (  (g_uGuiHelpNum < OSGUI_MAX_HELP)
        &&(g_uGuiHelpNum >=0)               )
    {
        g_uGuiHelpNum++;
        SetGuiHelp(0);
    }

    return uRet;
}

// Dec Curretn Help Level
INT DecGuiHelpLevel(VOID)
{
UINT uRet = -1;
    
    if (  (g_uGuiHelpNum < OSGUI_MAX_HELP)
        &&(g_uGuiHelpNum >=0)               )
    {
        SetGuiHelp(0);
        g_uGuiHelpNum--;
    }

    return uRet;
}
//================================================================================
// for DrawCurrentAp();   
// DrawFullScreenAp();      : Not Fixed
// Only FullScreenAp();     :Fixed
//===========================================================================
/****************************************************************************/
/*  static UINT _GuiFlagGet(UINT uPos)                                      */
/*  static VOID _GuiFlagSet(UINT uStPos, UINT uEndPos, UINT uValue)         */
/****************************************************************************/
/*    NAME         DATE               REMARKS                               */
/* ==========  ============   ==============================================*/
/*   DennyHan    2006-02-21          First Issue							*/
/****************************************************************************/
#ifdef GUI_INIT_DRAW_FG_EN
static UINT8    g_aGuiInitDrawFlag[GUI_BUFFER_COUNT+1];

/****************************************************************************/
/* FUNCTION:   VOID _GuiFlagClr(UINT uStPos, UINT uEndPos)                 */
/* DESCRIPTION:GUI Flag Clear Flag                                         */
/* INPUTS:     uStPos:     Starting GUI Model Count                        */
/*              uStPos:     Ending GUI Model Count                          */
/* OUTPUTS:    NONE                                                        */
/* RETURN:     NONE                                                        */
/****************************************************************************/
/*    NAME         DATE               REMARKS                               */
/* ==========  ============   ==============================================*/
/*   DennyHan   2006-05-24                                                  */
/****************************************************************************/
static VOID _GuiFlagSet(UINT uStPos, UINT uEndPos, UINT uValue)
{
    if ((INT)uStPos<0)
    {
        uStPos = 0;
    }
    
    if ( uEndPos >= (sizeof(g_aGuiInitDrawFlag)/sizeof(UINT8)) )
    {// if Overflow
        uEndPos = (sizeof(g_aGuiInitDrawFlag)/sizeof(UINT8))-1;
    }
    
    while( (uStPos) <= uEndPos)
    {
        g_aGuiInitDrawFlag[uStPos] = uValue;
        uStPos++;
    }
}

static UINT _GuiFlagGet(UINT uPos)
{
    if ( uPos >= (sizeof(g_aGuiInitDrawFlag)/sizeof(UINT8)) )
    {// if Overflow
        return 0;
    }

    return g_aGuiInitDrawFlag[uPos];
}
#endif
//====================== End of the file ====================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -