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

📄 uikey_hdr.c

📁 嵌入工linux开发的源码
💻 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 + -