📄 hotkey.c
字号:
/*
*********************************************************************************************************
* Samsung ARM S3C2410 Software Frame
*
* (c) Copyright 2008-2010, LastRitter
* All Rights Reserved
*
* File :
* By : LastRitter
*********************************************************************************************************
*/
#include "SystemTool.h"
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#define SW_HOT_KEY_MAX SW_WINDOW_MAX
#define SW_KEY_ACTION_NO 0
#define SW_KEY_MASK_NO 0
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
typedef struct
{
uint16 uiHandle;
uint32 ulAction;
uint32 ulMask;
}hotkey;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
static hotkey sta_HotKey[SW_HOT_KEY_MAX];
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
void SW_HotKeyInit(void)
{
uint16 uiCount;
for(uiCount=0;uiCount<SW_HOT_KEY_MAX;uiCount++)
{
sta_HotKey[uiCount].uiHandle=SW_DEF_HANDLE;
sta_HotKey[uiCount].ulAction=SW_KEY_ACTION_NO;
sta_HotKey[uiCount].ulMask=SW_KEY_MASK_NO;
}
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_HotKey(uint16 uiKey,uint16 uiState)
{
uint16 uiCount,uiHandle;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
for(uiCount=0;uiCount<SW_HOT_KEY_MAX;uiCount++)
{
uiHandle=sta_HotKey[uiCount].uiHandle;
if(uiHandle!=SW_DEF_HANDLE&&SW_IsTopWindow(uiHandle)
&&(sta_HotKey[uiCount].ulMask&(1<<(uiKey-1))))
SW_PostMessage(uiHandle,uiKey,0,uiState);
}
return 0;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_RegisterKey(uint16 uiHandle,uint32 ulMask)
{
uint16 uiCount;
for(uiCount=0;uiCount<SW_HOT_KEY_MAX;uiCount++)
{
if(sta_HotKey[uiCount].uiHandle==SW_DEF_HANDLE)
{
sta_HotKey[uiCount].uiHandle=uiHandle;
// UART_TextOut("Key Handle is %d\n",uiHandle);
sta_HotKey[uiCount].ulMask=ulMask;
return 0;
}
}
UART_TextOut("Can't Register more key(SW_RegisterKey).\n");
return 1;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_UnRegisterKey(uint16 uiHandle)
{
uint16 uiCount;
for(uiCount=0;uiCount<SW_HOT_KEY_MAX;uiCount++)
{
if(sta_HotKey[uiCount].uiHandle==uiHandle)
{
sta_HotKey[uiCount].uiHandle=SW_DEF_HANDLE;
sta_HotKey[uiCount].ulMask=SW_KEY_MASK_NO;
// UART_TextOut("Key Handle is %d Unregistered\n",uiHandle);
return 0;
}
}
UART_TextOut("Can't Unregister key(SW_UnRegisterKey).\n");
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -