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

📄 mwselect_rtems.c

📁 神龙卡开发原代码
💻 C
字号:
/*/////////////////////////////////////////////////////////////////////////////// $Header: /bigbig/dungeon/ndc/havana_project/havana/jasper_files/microwindows/src/drivers/mwselect_rtems.c,v 1.1 2003/05/26 12:08:41 crinon Exp $//// Copyright (c) 2000 - Rosimildo da Silva//  // MODULE DESCRIPTION: // This module implements the "GsSelect()" function for MicroWindows.//// MODIFICATION/HISTORY://// $Log: mwselect_rtems.c,v $// Revision 1.1  2003/05/26 12:08:41  crinon// add gui in havana application//// Revision 1.1  2003/03/20 18:30:55  crinon// jasper gui project//* * 1     5/29/02 1:16p Fabrice// Revision 1.1.1.1  2001/06/21 06:32:41  greg// Microwindows pre8 with patches//// Revision 1.1.1.1  2001/06/05 03:44:01  root// First import of 5/5/2001 Microwindows to CVS/////////////////////////////////////////////////////////////////////////////////*/#include <stdio.h>#include <errno.h>#include <rtems/mw_uid.h>#include "device.h"#include "windef.h"extern MWBOOL MwCheckMouseEvent();extern MWBOOL MwCheckKeyboardEvent();#if ANIMATEPALETTEstatic int fade = 0;#endifextern struct MW_UID_MESSAGE m_kbd;extern struct MW_UID_MESSAGE m_mou;extern HWND  dragwp;	 /* window user is dragging*//* * "Select() routine called by the Microwindows framework to receive events  * from the input devices. */void MwSelect(void){  struct MW_UID_MESSAGE m;  int rc;  unsigned int timeout = 0;  /* perform pre-select duties, if any*/  if(scrdev.PreSelect)  {     scrdev.PreSelect(&scrdev);  }	/* Set up the timeout for the main select().  If	 * the mouse is captured we're probably moving a window,	 * so poll quickly to allow other windows to repaint while	 * checking for more event input.	 */	if( !dragwp )   {		timeout = MwGetNextTimeoutValue();	/* returns ms*/#if ANIMATEPALETTE		if(fade < 100)			timeout = 40;		else #endif		if(timeout == 0)			timeout = 10;	/* 10ms required for vt fb switch*/	}  /* let's make sure that the type is invalid */  m.type = MV_UID_INVALID;  /* wait up to 100 milisecons for events */  rc = uid_read_message( &m, timeout );  /* return if timed-out or something went wrong */  if( rc < 0 )  {     if( errno != ETIMEDOUT )        EPRINTF( " rc= %d, errno=%d\n", rc, errno );     else     {#if ANIMATEPALETTE       if(fade <= 100) {		   	setfadelevel( &scrdev, fade );			   fade += 5;		 }#endif		MwHandleTimers();     }     return;  }  /* let's pass the event up to microwindows */  switch( m.type )  {    /* Mouse or Touch Screen event */    case MV_UID_REL_POS:    case MV_UID_ABS_POS:        m_mou = m;        while( MwCheckMouseEvent() )  		         continue;        break;    /* KBD event */    case MV_UID_KBD:        m_kbd = m;        MwCheckKeyboardEvent();        break;    /* micro-windows does nothing with those.. */    case MV_UID_TIMER:    case MV_UID_INVALID:    default:       ;  }}

⌨️ 快捷键说明

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