📄 uikey_hdr.c
字号:
/**************************************************************
INCLUDE FILE
***************************************************************/
#include <uiGui_Cfg.h>
#include <uiWm_Queue.h>
#include <uiWnd.h>
#include <uicontrol.h>
#include <uiprg_mgr.h>
//#include <uiscroll.h>
//#include <uiListbox.h>
#include <keypad.h>
extern void guiRestoreCustomAreaCallback(void);
extern int guiSwitch2AppByShortcut(int index); // by zhang xue ping
PF_VOID gaKeyHandler[GUI_MAX_KEY_NUMBER];
//void _guiLaunchShortcut4();
//void _guiLaunchShortcut5();
//void _guiLaunchShortcut6();
void _guiLaunchPlayer();
void _guiLaunchMeReader();
void _guiLaunchSche();
void _guiLaunchTele();
void _guiNotifySysShutDown();
HNDL _guiSearchScrollInTopWindow();
// key event handler of window thread
void guiKeyEventHandler(int key)
{
TGuiMessage tMessage;
if(key<0||key>=GUI_MAX_KEY_NUMBER)
{
return;
}
/*
if(key==HARDKEY_PLAYER)
guiSwitch2AppByShortcut(0);
//else if(key==HARDKEY_RECORDER)
else if(key==HARDKEY_MEREADER)
guiSwitch2AppByShortcut(1);
else if(key==HARDKEY_SCHE)
guiSwitch2AppByShortcut(2);
else if(key==HARDKEY_EBOOK)
guiSwitch2AppByShortcut(3);
else if(gpTopWindow!=NULL)
{
tMessage.messageType = KEYPAD_CLICK;
tMessage.handle = gpTopWindow->handle;
tMessage.x=(short)key;
tMessage.y=(short)key;
_guiEnqueue(gpTopWindow->messageQueue,&tMessage);
}
*/
if(gpTopWindow!=NULL)
{
if((key==HARDKEY_UP)||(key==HARDKEY_LEFT)||(key==HARDKEY_RIGHT)||(key==HARDKEY_DOWN)||(key==HARDKEY_CFCARD_IN)||(key==HARDKEY_CFCARD_OUT))
{
tMessage.messageType = KEYPAD_CLICK;
tMessage.handle = gpTopWindow->handle;
tMessage.x=(short)key;
tMessage.y=(short)key;
_guiEnqueue(gpTopWindow->messageQueue,&tMessage);
return;
}
}
gaKeyHandler[key]() ;
}
/* 注册 Key Handler */
DLL_EXP(int) guiRegistergaKeyHandler(int keyType,PF_VOID handler)
{
if(keyType>=0&&keyType<GUI_MAX_KEY_NUMBER)
{
gaKeyHandler[keyType]=handler;
return 0;
}
else
{
return -1;
}
}
DLL_EXP(void) guiRestoreKeyCallback(void)
{
/*
guiRegistergaKeyHandler(GUI_KEY3,_guiLaunchShortcut4);
guiRegistergaKeyHandler(GUI_KEY4,_guiNotifySysShutDown);
guiRegistergaKeyHandler(GUI_KEY5,_guiLaunchShortcut5);
#ifdef __WIN32__
guiRegistergaKeyHandler(GUI_KEY6,(PF_VOID)NULL);
#endif
guiRegistergaKeyHandler(GUI_KEY7,_guiLaunchShortcut6);
guiRestoreCustomAreaCallback();
*/
guiRegistergaKeyHandler(HARDKEY_PLAYER, _guiLaunchPlayer);
guiRegistergaKeyHandler(HARDKEY_MEREADER, _guiLaunchMeReader);
guiRegistergaKeyHandler(HARDKEY_SCHE, _guiLaunchSche);
guiRegistergaKeyHandler(HARDKEY_EBOOK, _guiLaunchTele);
}
void _guiLaunchPlayer()
{
guiSwitch2AppByShortcut(0);
}
void _guiLaunchMeReader()
{
guiSwitch2AppByShortcut(1);
}
void _guiLaunchSche()
{
//tong pdaSwitch2AppByShortcut(6);
guiSwitch2AppByShortcut(2);
}
void _guiLaunchTele()
{
guiSwitch2AppByShortcut(3);
}
void _guiNotifySysShutDown()
{
TGuiMessage tMessage;
tMessage.handle=0;
tMessage.messageType=SYS_SHUTDOWN;
guiEnqueue(SysMsgQueue,&tMessage);
}
/**************************************************************
* key: HARDKEY_LEFT, HARDKEY_RIGHT, HARDKEY_UP, HARDKEY_DOWN *
* function: process vport, listbox, editor *
* *
***************************************************************/
DLL_EXP(void) guiArrowKeyCallBack(int key)
{
HNDL pScrollControl;
TGuiControl *pControl;
//WORD type;
pScrollControl = guiSearchScrollControl(&(gpTopWindow->controlList)) ;
if(pScrollControl==NULL)
return;
pControl=(TGuiControl *)pScrollControl;
(pControl->actionFun)(pScrollControl, KEYPAD_CLICK, key, 0) ;
return;
}
/*
HNDL _guiSearchScrollInTopWindow()
{
struct dLinkList *pLink,*pLinkVPort;
TGuiControl *pControl;
if(gpTopWindow==NULL)
{
return NULL;
}
pLink=gpTopWindow->controlList.back;
while(pLink!=NULL)
{
pControl=(TGuiControl *)pLink->elementPointer;
if(pControl!=NULL&&guiControl_QueryIsActive((HNDL)pControl)==TRUE)
{
//tong if(pControl->type==CONTROL_VSCROLL)
if(pControl->type==CONTROL_SCROLL)
{
return (HNDL)pControl;
}
else if(pControl->type==CONTROL_VIEWPORT)
{
pLinkVPort=((TViewport *)pControl)->tControlList.back;
while(pLinkVPort!=NULL)
{
pControl=(TGuiControl *)pLinkVPort->elementPointer;
if(pControl!=NULL&&guiControl_QueryIsActive((HNDL)pControl)==TRUE&&pControl->type==CONTROL_SCROLL)
{
return (HNDL)pControl;
}
pLinkVPort=pLinkVPort->back;
}
}
}
pLink=pLink->back;
}
return NULL;
}
*/
/*
static WORD pdaScroll_PageUp( HNDL handle )
{
struct pdaScroll *pdaScrollcontrol;
if(handle == NULL)
{
return 0;
}
pdaScrollcontrol=(struct pdaScroll *)handle;
if(pdaScrollcontrol->base.checkFlag != GUI_CONTROL_CHECK_FLAG)
return 0;
if((pdaScrollcontrol->current - pdaScrollcontrol->page)>=0)
pdaScrollcontrol->current -=pdaScrollcontrol->page;
else
pdaScrollcontrol->current = 0;
pdaScrollcontrol->base.showFun(handle);
return 1;
}
static WORD pdaScroll_PageDown( HNDL handle )
{
struct pdaScroll *pdaScrollcontrol;
if(handle == NULL)
{
return 0;
}
pdaScrollcontrol=(struct pdaScroll *)handle;
if(pdaScrollcontrol->base.checkFlag != GUI_CONTROL_CHECK_FLAG)
return 0;
if(pdaScrollcontrol->total<=pdaScrollcontrol->page)
{
pdaScrollcontrol->current = 0;
}
else
{
if((pdaScrollcontrol->current + pdaScrollcontrol->page)<(pdaScrollcontrol->total-1-pdaScrollcontrol->page))
pdaScrollcontrol->current += pdaScrollcontrol->page;
else
pdaScrollcontrol->current = pdaScrollcontrol->total - pdaScrollcontrol->page;
}
pdaScrollcontrol->base.showFun(handle);
return 1;
}
void pdaLetScrollPageUp(void)
{
HNDL hScroll;
hScroll=_guiSearchScrollInTopWindow();
if(hScroll!=NULL)
{
pdaScroll_PageUp(hScroll);
}
}
void pdaLetScrollPageDown(void)
{
HNDL hScroll;
hScroll=_guiSearchScrollInTopWindow();
if(hScroll!=NULL)
{
pdaScroll_PageDown(hScroll);
}
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -