コード例 #1
0
ファイル: con_os2.cpp プロジェクト: AaronDP/efte_adbshell
GUI::GUI(int  & argc,
         char **argv,
         int    XSize,
         int    YSize) {
  fArgc = argc;
  fArgv = argv;
  ::ConInit(-1, -1);
  SaveScreen();
  ::ConSetSize(XSize, YSize);
  gui = this;
}
コード例 #2
0
ファイル: switcher.c プロジェクト: mingpen/OpenNT
LONG APIENTRY WndProc(
    HWND hWnd,
    UINT message,      // type of message
    WPARAM wParam,     // additional information
    LPARAM lParam)     // additional information
{

    int newThread;      // Thread index to switch to
    int i;
    ThreadData *ptd;
    static HWND hShowing = NULL;           // which preview window is being shown
    static LONG fntHeight = CONTROLHEIGHT; // height for the edit control
    switch (message)
    {
       case WM_CREATE:
       {
          HDC hDC;
          HBITMAP hBmp;

         // Create edit control, button, and label at the bottom of the window
         // This will allow the user to input a program to run

         SetWindowLong (hWnd, GWL_USERDATA,
                        (LONG)((CREATESTRUCT *)lParam)->lpCreateParams);
         ptd = (ThreadData *)GetWindowLong (hWnd, GWL_USERDATA);
         CreateControls (ptd, hWnd);
         fntHeight = GetFontHeight (hWnd);
         //
         // initialize the DC array entry
         //
         hDC = CreateDC (TEXT("DISPLAY"), NULL, NULL, NULL);
         gHDCArray[ptd->index] = CreateCompatibleDC (hDC);
         //
         // Halftone is the best stretching algorithm
         //
         SetStretchBltMode (gHDCArray[ptd->index], HALFTONE);
         SetBrushOrgEx (gHDCArray[ptd->index], 0, 0, NULL);
         //
         // Use a bitmap the same size as the desktop preview rectangles
         //
         hBmp = CreateCompatibleBitmap (hDC, gWidth*2, gHeight*2);
         SelectObject (gHDCArray[ptd->index], hBmp);
         DeleteDC (hDC);
         SaveScreen (ptd->index);
         TitleWindow (hWnd);
         //
         // Register hot keys
         //
         for (i=0;i<10;i++)
         {
            RegisterHotKey (hWnd, VK_F1+i, MOD_CONTROL, VK_F1+i);
         }
         return 0;
       }

       case WM_SIZE:
       {
         //
         // Put the child controls at the right places
         //
          #define PADDING 5

          RECT rect;
          ThreadData *ptd;
          if (GetClientRect (hWnd, &rect))
          {
            ptd = (ThreadData *)GetWindowLong (hWnd, GWL_USERDATA);
            MoveWindow (ptd->hWndStatic, 0, rect.bottom - CONTROLHEIGHT,
                        gStaticWidth, fntHeight + PADDING, TRUE);

            MoveWindow (ptd->hWndEdit, gStaticWidth + 5,
                        rect.bottom - fntHeight - PADDING,
                        gEditWidth, fntHeight+PADDING, TRUE);

            MoveWindow (ptd->hWndBtn, gStaticWidth + gEditWidth + 10,
                        rect.bottom - fntHeight - PADDING,
                        gBtnWidth, fntHeight+PADDING, TRUE);

            MoveWindow (ptd->hWndNew, gStaticWidth+gEditWidth+gBtnWidth+15,
                        rect.bottom - fntHeight- PADDING,
                        gNewWidth, fntHeight+PADDING, TRUE);


          }
          return 0;
       }
       case WM_PAINT:
          PaintMainWnd (hWnd);
          return 0;

       case WM_RBUTTONDOWN:
       {
          //
          // Find the rectangle in which the button was pressed
          //
          POINTS pts;
          ThreadData *ptd;
          ptd = (ThreadData *)GetWindowLong(hWnd, GWL_USERDATA);
          pts = MAKEPOINTS (lParam);
          if (pts.y > gHeight)
          {
             return 1;
          }
          newThread = pts.x/gWidth;

          //
          // Get a snapshot of the current desktop
          //
          SaveScreen (ptd->index);

          //
          // Switch to the selected desktop
          //
          if (!gDeskArray[newThread])
          {
             StartNewDesktop (newThread);
          }
          if (!SwitchDesktop (gDeskArray[newThread]))
             MessageBox (hWnd,
                         PSZ(IDS_BADDESKTOP),
                         PSZ(IDS_ERRCAPTION), MB_OK);

          return 0;
       }

       case WM_LBUTTONDOWN:
       //
       // show the preview window
       //
       {
          POINTS pts;
          POINT ptl;
          int *index;

          pts = MAKEPOINTS (lParam);
          if (pts.y > gHeight)
          {
             return 1;
          }
          newThread = pts.x/gWidth;
          index = GlobalAlloc (GMEM_FIXED, sizeof(int));
          if (!index)
          {
             return 1;
          }
          *index = newThread;
          //
          // Want to show the preview window where the button was clicked.
          // Map the given points to screen coords.
          // ClientToScreen is expecting a POINT structure, not a POINTS
          //
          ptl.x = (LONG)pts.x;
          ptl.y = (LONG)pts.y;
          ClientToScreen (hWnd, &ptl);
          hShowing = CreateWindow (szPreviewClass, TEXT(""),
                                  WS_POPUP | WS_VISIBLE | WS_BORDER,
                                  ptl.x+3,
                                  ptl.y+3,
                                  gWidth*2,
                                  gHeight*2,
                                  hWnd,
                                  (HMENU)0, ghInst, (LPVOID)index);
          return 0;
       }

       case WM_CHAR:
          if (wParam == VK_RETURN)
          {
              PostMessage (hWnd, WM_COMMAND, (WPARAM)IDC_RUNMEBTN, 0);
          }
          return 0;

       case WM_SYSCHAR:
       {
          ThreadData *ptd;
          ptd = (ThreadData *)GetWindowLong(hWnd, GWL_USERDATA);
          switch (wParam)
          {
             // alt+r == focus on the edit control
             case TEXT('r'):
             case TEXT('R'):
                if (GetKeyState (VK_MENU))
                {
                   SetFocus (ptd->hWndEdit);
                }
                return 0;
             // alt+n = create a new desktop
             case TEXT('n'):
             case TEXT('N'):
                if (GetKeyState (VK_MENU))
                {
                   PostMessage (hWnd, WM_COMMAND, (WPARAM)IDC_NEWDSKBTN, 0);
                }
          }
          return 0;
       }
       case WM_HOTKEY:
       case WM_KEYDOWN:
          //
          // F1-F9 switches to corresponding desktop
          //

          if ((wParam >= VK_F1 && wParam <= VK_F10)
              && (wParam - VK_F1 <= (UINT)gMaxIndex))
          {
             LONG x, y;
             x = (wParam - VK_F1) * gWidth + 2;
             y = gHeight - 4;
             PostMessage (hWnd, WM_RBUTTONDOWN, 0, MAKELPARAM (x, y));
          }
          return 0;

       case WM_SETFOCUS:
       case WM_NCLBUTTONUP:
       case WM_LBUTTONUP:

         //
         // destroy the preview window
         //
         if (hShowing)
         {
            DestroyWindow (hShowing);
            hShowing = NULL;
         }
         return 0;



       case WM_CLOSE:
         //
         // to be safe, check for a preview window
         //
         if (hShowing)
         {
            DestroyWindow (hShowing);
            hShowing = NULL;
         }
         //
         // go to the default desktop so the DestroyWindow calls all succeed
         //
         SwitchDesktop (DEFAULT_DESKTOP);
         //
         // kill the window on this desktop
         // all the windows will be destroyed if this is the default desktop
         //
         for (i=gMaxIndex;i>=0;i--)
         {
            DestroyWindow (hWndArray[i]);
         }
         //
         // Unregister the hot keys
         //
         for (i=0;i<10;i++)
         {
            UnregisterHotKey (hWnd,VK_F1+i);
         }
         return 0;

       case WM_DESTROY:  // message: window being destroyed

         PostQuitMessage(0);
         return 0;


       case WM_COMMAND:
       {

          switch (LOWORD(wParam))
          {
             case IDC_RUNMEBTN:
             {
                RunApp (hWnd);
                return 0;
             }

             case IDC_NEWDSKBTN:
             //
             // Create a new desktop and resize the windows to show it.
             //
             {
                RECT rect;
                int i;
                if (gMaxIndex + 1 < MAX_THREADS)
                {
                   gMaxIndex++;
                   StartNewDesktop (gMaxIndex);
                   GetWindowRect (hWnd,&rect);
                   for (i=0;i<gMaxIndex;i++)
                   {
                      MoveWindow (hWndArray[i],
                               rect.left, rect.top,
                               rect.right + gWidth, rect.bottom-rect.top,
                               TRUE);

                   }
                }
               return 0;

             }

             default:
                return DefWindowProc (hWnd, message, wParam, lParam);
          }
       }

    default:          // Passes it on if unprocessed
        return (DefWindowProc (hWnd, message, wParam, lParam));
    }

}
コード例 #3
0
ファイル: con_os2.cpp プロジェクト: AaronDP/efte_adbshell
int GUI::ConContinue(void) {
  SaveScreen();
  return ::ConContinue();
}
コード例 #4
0
ファイル: SERIAL.C プロジェクト: AnerolCoo/idsetup
int SerialConfig(void)
{
	short	key;
	short field;
	int   rval = 0;
	char  *args[MAXARGS];
	int   argcount;
	char  string[MAXARGS*2][12];
	int   i;
	int   level;


	sinfo = serialinfo;       // save copy of modeminfo

	SaveScreen();
	DrawPup(&cserial);

	//
	// Set defaults
	//
	sinfo.skillLevel = 3;
	DrawRadios(&sskillg);

	sinfo.episode = 1;
	#ifndef DOOM2
	DrawRadios(&sepig);
	#endif

	sinfo.deathMatch = 1;
	DrawRadios(&sdeathg);

	sinfo.comport = comport;
	DrawRadios(&scomg);

	while(1)
	{
		SetupMenu(&cserialmenu);
		field = GetMenuInput();
		key = menukey;
		switch ( key )
		{
			case KEY_ESC:
				rval = -1;
				goto func_exit;

			//
			// Secret WARP code: F5+warp
			//
			case KEY_F1:
			{
				level = WarpTime();
				if (!level)
					continue;

				serialinfo = sinfo;

				M_SaveDefaults();
				RestoreScreen();

				argcount = 1;

				args[0] = "sersetup.exe ";

				if (cdrom)
					args[argcount++] = "-cdrom";

				args[argcount++] = "-skill";
				sprintf(string[argcount],"%d",serialinfo.skillLevel);
				args[argcount] = string[argcount];
				argcount++;

				if (!level)
				{
					#ifndef DOOM2
					 args[argcount++] = "-episode";
					 sprintf(string[argcount],"%d",serialinfo.episode);
					 args[argcount] = string[argcount];
					 argcount++;
					#endif
				}
				else
				{
					args[argcount++] = "-warp";
					#ifdef DOOM2
					sprintf(string[argcount],"%d",level);
					args[argcount] = string[argcount];
					#else
					sprintf(string[argcount],"%d",level>>8);
					args[argcount] = string[argcount];
					argcount++;
					sprintf(string[argcount],"%d",level&0x0f);
					args[argcount] = string[argcount];
					#endif
					argcount++;
				}

				if (serialinfo.deathMatch)
					args[argcount++] = "-deathmatch";

				if (nomonsters)
					args[argcount++] = "-nomonsters";

				if (respawn)
					args[argcount++] = "-respawn";

				if (deathmatch2 && serialinfo.deathMatch)
					args[argcount++] = "-altdeath";

				sprintf(string[argcount],"-com%d",serialinfo.comport);
				args[argcount] = string[argcount];
				argcount++;

				for (i = 1;i < myargc; i++)
					args[argcount++] = myargv[i];

				args[argcount] = NULL;

				textbackground(0);
				textcolor(7);
				clrscr();

				execv("sersetup.exe",args);

				//
				// ERROR EXECing!
				//
				printf("Problem EXECing SERSETUP for netplay. Need to be in same directory!");
				exit(1);

			}
			break;

exitandsave:
			case KEY_F10:

				serialinfo = sinfo;

				M_SaveDefaults();
				RestoreScreen();

				argcount = 1;

				args[0] = "sersetup.exe ";

					if (cdrom)
						args[argcount++] = "-cdrom";

				args[argcount++] = "-skill";
				sprintf(string[argcount],"%d",serialinfo.skillLevel);
				args[argcount] = string[argcount];
				argcount++;

				if (serialinfo.deathMatch)
					args[argcount++] = "-deathmatch";

				#ifndef DOOM2
				args[argcount++] = "-episode";
				sprintf(string[argcount],"%d",serialinfo.episode);
				args[argcount] = string[argcount];
				argcount++;
				#endif

				sprintf(string[argcount],"-com%d",serialinfo.comport);
				args[argcount] = string[argcount];
				argcount++;
            
            for (i = 1;i < myargc; i++)
               args[argcount++] = myargv[i];

            args[argcount] = NULL;

				textbackground(0);
				textcolor(7);
				clrscr();

				execv("sersetup.exe",args);

				//
				// ERROR EXECing!
				//
				printf("Problem EXECing SERSETUP for netplay. Need to be in same directory!");
				exit(1);

			case KEY_ENTER:
			case 32:
			switch ( field )
			{
				#ifndef DOOM2
				//
				// Episode
				//
				case SER_EPISODE0:
				case SER_EPISODE1:
				case SER_EPISODE2:
					sinfo.episode = field - SER_EPISODE0 + 1;
					DrawRadios(&sepig);
					break;
				#endif

				//
				// Skill level
				//
				case SER_SKILL1:
				case SER_SKILL2:
				case SER_SKILL3:
				case SER_SKILL4:
					sinfo.skillLevel = field - SER_SKILL1 + 2; break;

				//
				// Deathmatch
				//
				case SER_DEATHNO:
				case SER_DEATHYES:
					sinfo.deathMatch = field - SER_DEATHNO;
					break;

				//
				// COM port
				//
				case SER_COM1:
				case SER_COM2:
				case SER_COM3:
				case SER_COM4:
					comport = sinfo.comport = field - SER_COM1 + 1;
					break;

				default:
					break;
			}
			DrawRadios(&sskillg);
			DrawRadios(&sdeathg);
			DrawRadios(&scomg);
			break;
		}
	}

	func_exit:

	RestoreScreen();
	return ( rval );
}
コード例 #5
0
ファイル: SERREST.C プロジェクト: AnerolCoo/idsetup
int RestoreSerial(void)
{
	short field;
	short	key;
	int   rval = 0;
	char  *args[MAXARGS];
	int   argcount;
	char  string[MAXARGS*2][16];
	int   i;
	int   numplayers[6];
	int   saveslot;
	int   handle;
	char  name[32];
	char  p1,p2,p3,p4;


	sinfo = serialinfo;       // save copy of netinfo

	SaveScreen();
	DrawPup(&sersave);

	saveslot = -1;
	memset(savenames,0,6*24);

	//
	// Read in savegame strings
	//
	textbackground(1);
	textcolor(15);
	for (i = 0;i < 6;i++)
	{
		sprintf(name,SAVENAME,i);
		handle = open (name, O_BINARY | O_RDONLY);
		if (handle == -1)
			continue;

		read(handle,savenames[i],24);
		lseek(handle,27+16,SEEK_SET);
		read(handle,&p1,1);
		read(handle,&p2,1);
		read(handle,&p3,1);
		read(handle,&p4,1);
		numplayers[i] = p1+p2+p3+p4;
		close(handle);

		Clear(&sersaveitems[i]);
		Pos(&sersaveitems[i]);
		cprintf("%s",savenames[i]);
	}

	//
	// Set defaults
	//
	sinfo.comport = comport;
	DrawRadios(&serscomg);

	sinfo.deathMatch = 0;
	DrawRadios(&sersdeathg);
	gotoxy(1,25);

	while(1)
	{
		SetupMenu(&sersavemenu);
		field = GetMenuInput();
		key = menukey;
      switch ( key )
		{
			case KEY_ESC:
				rval = -1;
				goto func_exit;

exitandsave:
			case KEY_F10:

				if (saveslot < 0)
				{
					ErrorWindow(&netserr);
					break;
				}

				serialinfo = sinfo;

				M_SaveDefaults();
				RestoreScreen();

				argcount = 1;

				args[0] = "sersetup.exe ";

					if (cdrom)
						args[argcount++] = "-cdrom";

				args[argcount++] = "-nodes";
				sprintf(string[argcount],"%d",numplayers[saveslot]);
				args[argcount] = string[argcount];
				argcount++;

				if (modeminfo.deathMatch)
					args[argcount++] = "-deathmatch";

				sprintf(string[argcount],"-com%d",serialinfo.comport);
				args[argcount] = string[argcount];
				argcount++;

				args[argcount++] = "-loadgame";
				sprintf(string[argcount],"%d",saveslot);
				args[argcount] = string[argcount];
				argcount++;

				for (i = 1;i < myargc; i++)
					args[argcount++] = myargv[i];

				args[argcount] = NULL;

				textbackground(0);
				textcolor(7);
				clrscr();

				execv("sersetup.exe",args);

				//
				// ERROR EXECing!
				//
				printf("Problem EXECing SERSETUP for netplay. Need to be in same directory!");
				exit(0);

			case KEY_ENTER:
				switch ( field )
				{
					case SERS_COM1:
					case SERS_COM2:
					case SERS_COM3:
					case SERS_COM4:
						sinfo.comport = field - SERS_COM1 + 1;
						DrawRadios(&serscomg);
						break;

					case SERS_0:
					case SERS_1:
					case SERS_2:
					case SERS_3:
					case SERS_4:
					case SERS_5:
						if (!savenames[field - SERS_0][0])
						{
							Sound(1000,12);
							break;
						}
						saveslot = field - SERS_0;
						DrawRadios(&serslotsg);
						break;

					//
					// Deathmatch
					//
					case SERS_DEATHNO:
					case SERS_DEATHYES:
						sinfo.deathMatch = field - SERS_DEATHNO;
						DrawRadios(&sersdeathg);

					default:
						break;
				}
            break;
      }
   }
  
   func_exit:
  
	RestoreScreen();
	return ( rval );
}
コード例 #6
0
ファイル: CONTROL.C プロジェクト: AnerolCoo/idsetup
int ChooseController (void)
{
	short	key;
	short field;
	int   rval = 0;

	SaveScreen();
	DrawPup(&control);

	// DEFAULT FIELD ========================================

	if (newc.control == C_MOUSE)
		field = CON_MOUSE;
   else
   if (newc.control == C_JOYSTICK)
      field = CON_JOY;
   else
   field = CON_KEY;

	controlmenu.startitem = field;
	while(1)
	{
		SetupMenu(&controlmenu);
		field = GetMenuInput();
		key = menukey;
		switch ( key )
		{
			case KEY_ESC:
				rval = -1;
				goto func_exit;

         case KEY_ENTER:
         case KEY_F10:
         switch ( field )
         {
            case CON_KEY:
               newc.control = C_KEY;
               usemouse = 0;
               usejoystick = 0;
               goto func_exit;
  
            case CON_MOUSE:
               newc.control = C_MOUSE;
               usemouse = 1;
               usejoystick = 0;
               goto func_exit;
  
            case CON_JOY:
               newc.control = C_JOYSTICK;
               usemouse = 0;
               usejoystick = 1;
               goto func_exit;
  
            default:
               break;
         }
            break;
      }
   }
  
   func_exit:

	RestoreScreen();
	DrawCurrentConfig();
   return ( rval );
}
コード例 #7
0
ファイル: SFX.C プロジェクト: AnerolCoo/idsetup
int ChooseNumDig (void)
{
	short	key;
	short field;
	int   rval = 0;

	SaveScreen();
	DrawPup(&numdig);

	// DEFAULT FIELD ========================================

	switch ( newc.numdig )
	{
		default:
			field = DIG_4;
			break;

		case 1:
			field = DIG_1;
			break;

		case 2:
			field = DIG_2;
			break;

		case 3:
			field = DIG_3;
			break;

		case 4:
			field = DIG_4;
			break;

		case 5:
			field = DIG_5;
			break;

		case 6:
			field = DIG_6;
			break;

		case 7:
			field = DIG_7;
			break;

		case 8:
			field = DIG_8;
			break;
	}
	numdigmenu.startitem = field;

	while(1)
	{
		SetupMenu(&numdigmenu);
		field = GetMenuInput();
		key = menukey;
		switch ( key )
		{
			case KEY_ESC:
				rval = -1;
				goto func_exit;

			case KEY_ENTER:
			case KEY_F10:
			switch ( field )
			{
				case DIG_1:
					newc.numdig = 1;
					goto func_exit;

				case DIG_2:
					newc.numdig = 2;
					goto func_exit;

				case DIG_3:
					newc.numdig = 3;
					goto func_exit;

				case DIG_4:
					newc.numdig = 4;
					goto func_exit;

				case DIG_5:
					newc.numdig = 5;
					goto func_exit;

				case DIG_6:
					newc.numdig = 6;
					goto func_exit;

				case DIG_7:
					newc.numdig = 7;
					goto func_exit;

				case DIG_8:
					newc.numdig = 8;
					goto func_exit;

				default:
					break;
			}
				break;
		}
	}

	func_exit:

	RestoreScreen();
	return ( rval );
}
コード例 #8
0
ファイル: SFX.C プロジェクト: AnerolCoo/idsetup
int ChooseFxCard (void)
{
	short field;
	short	key;
	int   rval = 0;

	switch ( newc.d.card )
	{
		default:
		case M_NONE:
			field = DCARD_NONE;
			break;

#ifndef HERETIC
		case M_PC:
			field = DCARD_PC;
			break;
#endif

		case M_GUS:
			field = DCARD_GUS;
			break;

		case M_SB:
			field = DCARD_SB;
			break;

		case M_PAS:
			field = DCARD_PAS;
			break;

		case M_WAVE:
			field = DCARD_SB;
			break;
	}

	SaveScreen();
	DrawPup(&idcard);
	idcardmenu.startitem = field;

	while(1)
	{
		SetupMenu(&idcardmenu);
		field = GetMenuInput();
		key = menukey;
		switch ( key )
		{
			case KEY_ESC:
				rval = -1;
				goto func_exit;

			case KEY_ENTER:
			case KEY_F10:
			switch ( field )
			{
				case DCARD_PAS:
					newc.d.card = M_PAS;
					goto func_exit;

				case DCARD_SB:
					newc.d.card = M_SB;
					goto func_exit;

				case DCARD_GUS:
					newc.d.card = M_GUS;
					newc.d.midiport   = -1;
					goto func_exit;

#ifndef HERETIC
				case DCARD_PC:
					newc.d.card       = M_PC;
					newc.d.port       = -1;
					newc.d.midiport   = -1;
					newc.d.irq        = -1;
					newc.d.dma        = -1;
					goto func_exit;
#endif
				case DCARD_NONE:
					newc.d.card = M_NONE;
					newc.d.port       = -1;
					newc.d.midiport   = -1;
					newc.d.irq        = -1;
					newc.d.dma        = -1;
					goto func_exit;

				default:
					break;
			}
				break;
		}
	}

	func_exit:

	RestoreScreen();
	return ( rval );
}
コード例 #9
0
ファイル: SFX.C プロジェクト: AnerolCoo/idsetup
int ChooseSbIrq (DMXCARD * card)
{
	short field;
	short	key;
	int   rval = 0;

	if ( card->irq > 8 )
		ErrorWindow(&irqerr);

	switch ( card->irq )
	{
		case 2:
			field = SB_IRQ_2;
			break;

		default:
		case 5:
			field = SB_IRQ_5;
			break;

		case 7:
			field = SB_IRQ_7;
			break;

	}

	SaveScreen();
	DrawPup(&sbirq);
	sbirqmenu.startitem = field;

	while(1)
	{
		SetupMenu(&sbirqmenu);
		field = GetMenuInput();
		key = menukey;
		switch ( key )
		{
			case KEY_ESC:
				rval = -1;
				goto func_exit;

			case KEY_ENTER:
			case KEY_F10:
			switch ( field )
			{
				case SB_IRQ_2:
					card->irq = 2;
					goto func_exit;

				case SB_IRQ_5:
					card->irq = 5;
					goto func_exit;

				case SB_IRQ_7:
					card->irq = 7;
					goto func_exit;

				default:
					break;
			}
				break;
		}
	}

	func_exit:

	RestoreScreen();
	return ( rval );
}
コード例 #10
0
ファイル: SFX.C プロジェクト: AnerolCoo/idsetup
int ChooseSbDma (DMXCARD * card)
{
	short	key;
	short field;
	int   rval = 0;

	switch ( card->dma )
	{
		case 0:
			field = SB_DMA_0;
			break;

		default:
		case 1:
			field = SB_DMA_1;
			break;

		case 3:
			field = SB_DMA_3;
			break;

		case 5:
			field = SB_DMA_5;
			break;

		case 6:
			field = SB_DMA_6;
			break;

		case 7:
			field = SB_DMA_7;
			break;
	}

	SaveScreen();
	DrawPup(&sbdma);
	sbdmamenu.startitem = field;

	while(1)
	{
		SetupMenu(&sbdmamenu);
		field = GetMenuInput();
		key = menukey;
		switch ( key )
		{
			case KEY_ESC:
				rval = -1;
				goto func_exit;

			case KEY_ENTER:
			case KEY_F10:
			switch ( field )
			{
				case SB_DMA_0:
					card->dma = 0;
					goto func_exit;

				case SB_DMA_1:
					card->dma = 1;
					goto func_exit;

				case SB_DMA_3:
					card->dma = 3;
					goto func_exit;

				case SB_DMA_5:
					card->dma = 5;
					goto func_exit;

				case SB_DMA_6:
					card->dma = 6;
					goto func_exit;

				case SB_DMA_7:
					card->dma = 7;
					goto func_exit;

				default:
					break;
			}
				break;
		}
	}

	func_exit:

	RestoreScreen();
	return ( rval );
}
コード例 #11
0
ファイル: FarUtils.cpp プロジェクト: Esika/sevenzipjbinding
HANDLE CStartupInfo::SaveScreen()
{
  return SaveScreen(0, 0, -1, -1);
}
コード例 #12
0
ファイル: WARP.C プロジェクト: AnerolCoo/idsetup
unsigned WarpTime(void)
{
	int   e;
	int   l;
	short	key;
	short field;
	int   exit;


	SaveScreen();
	DrawPup(&cwarp);

	SetMark(&cwarpitems[W_RESPAWN],respawn);
	SetMark(&cwarpitems[W_NOMON],nomonsters);
	#ifndef HERETIC
	SetMark(&cwarpitems[W_DM2],deathmatch2);
	#endif

	exit = 0;

	while(1)
	{
		SetupMenu(&cwarpmenu);
		field = GetMenuInput();
		key = menukey;

		switch(key)
		{
			case KEY_ESC:
				RestoreScreen();
				return 0;

			case KEY_F10:
			case KEY_ENTER:

				switch(field)
				{
					case E1M1: e=1;l=1; exit=1; break;
					case E1M2: e=1;l=2; exit=1; break;
					case E1M3: e=1;l=3; exit=1; break;
					case E1M4: e=1;l=4; exit=1; break;
					case E1M5: e=1;l=5; exit=1; break;
					case E1M6: e=1;l=6; exit=1; break;
					case E1M7: e=1;l=7; exit=1; break;
					case E1M8: e=1;l=8; exit=1; break;
					case E1M9: e=1;l=9; exit=1; break;
					#ifdef DOOM2
					case E1M10: e=1;l=10; exit=1; break;
					#endif

					case E2M1: e=2;l=1; exit=1; break;
					case E2M2: e=2;l=2; exit=1; break;
					case E2M3: e=2;l=3; exit=1; break;
					case E2M4: e=2;l=4; exit=1; break;
					case E2M5: e=2;l=5; exit=1; break;
					case E2M6: e=2;l=6; exit=1; break;
					case E2M7: e=2;l=7; exit=1; break;
					case E2M8: e=2;l=8; exit=1; break;
					case E2M9: e=2;l=9; exit=1; break;
					#ifdef DOOM2
					case E2M10: e=2;l=10; exit=1; break;
					#endif

					case E3M1: e=3;l=1; exit=1; break;
					case E3M2: e=3;l=2; exit=1; break;
					case E3M3: e=3;l=3; exit=1; break;
					case E3M4: e=3;l=4; exit=1; break;
					case E3M5: e=3;l=5; exit=1; break;
					case E3M6: e=3;l=6; exit=1; break;
					case E3M7: e=3;l=7; exit=1; break;
					case E3M8: e=3;l=8; exit=1; break;
					case E3M9: e=3;l=9; exit=1; break;
					#ifdef DOOM2
					case E3M10: e=3;l=10; exit=1; break;
					#endif

					case W_RESPAWN:
						respawn ^= 1;
						SetMark(&cwarpitems[W_RESPAWN],respawn);
						break;

					case W_NOMON:
						nomonsters ^= 1;
						SetMark(&cwarpitems[W_NOMON],nomonsters);
						break;
					#ifndef HERETIC
					case W_DM2:
						deathmatch2 ^= 1;
						SetMark(&cwarpitems[W_DM2],deathmatch2);
						break;
					#endif
				}

				if (exit)
				{
					RestoreScreen();
					#ifdef DOOM2
					return ((e-1)*10+l);
					#else
					return (e<<8)+l;
					#endif
				}
		 }
	}
}
コード例 #13
0
ファイル: ViewerIBAIO.cpp プロジェクト: haochihlin/ICE-BA
bool ViewerIBA::OnKeyDown(int key) {
#ifdef __linux__
  if (key == VW_KEY_CTRL_KEY_VALUE) {
    m_ctrlDown = true;
    return true;
  }
  if (m_ctrlDown) {
    key = key - 'a' + 1;
  }
#endif
  if (Viewer::OnKeyDown(key)) {
    return true;
  }
//#ifdef CFG_DEBUG
#if 0
//#if 1
  UT::Print("%d\n", key);
#endif
//#ifdef CFG_DEBUG
#if 0
  if (key == '+' || key == '-') {
    Camera &C = m_LBA->m_CsLF[m_iLFActive];
    if (key == '+') {
      C.m_p.y() += 0.1f;
    } else {
      C.m_p.y() -= 0.1f;
    }
    C.m_T.SetPosition(C.m_p);
    return true;
  }
#endif
#ifdef CFG_STEREO
  if (key == '1' || key == '2') {
     ActivateCamera(key == '2');
    return true;
  }
#endif
  const int nKFs = GetKeyFrames();
  const bool activeKF = m_iFrmActive < nKFs;
  switch (key) {
  case VW_KEY_XD_DRAW_VIEW_TYPE:
    if (m_keyDrawViewType == DRAW_VIEW_PROFILE) {
      m_keyDrawViewType = m_keyDrawViewTypeBkp;
    } else {
      m_keyDrawViewType.Press();
    }
    return true;
  case VW_KEY_XD_PAUSE:   m_keyPause.Press();   return true;
  case VW_KEY_XD_STEP:    m_keyStep.Press();    return true;
  case VW_KEY_XD_SAVE:
    if (m_fileNameSave == "") {
      m_fileNameSave = UT::Input<std::string>("save_file");
    }
    m_iFrmSave = GetLocalFrame(m_iLF)->m_T.m_iFrm;
    m_keyStep.Press();
    //m_handler.Quit();
    return true;
  case VW_KEY_XD_SCREEN:
    if (m_fileNameScreen == "") {
      m_fileNameScreen = UT::Input<std::string>("screen_file");
    }
    if (m_fileNameScreen != "" && UT::FileNameExtractSuffix<int>(m_fileNameScreen) == -1) {
      bool resize = m_pWnd->size().x != m_K.m_K.w() || m_pWnd->size().y != m_K.m_K.h();
      if (resize) {
        const char inp = UT::Input<char>("resize (y/n)");
        if (inp != 'y' && inp != 'Y') {
          resize = false;
        }
      }
      SaveScreen(UT::FileNameAppendSuffix(m_fileNameScreen), resize);
    }
    return true;
  //case VW_KEY_XD_ACTIVATE_NEXT_FRAME:   ActivateFrame(m_iFrmActive + 1);  return true;
  //case VW_KEY_XD_ACTIVATE_LAST_FRAME:   ActivateFrame(m_iFrmActive - 1);  return true;
  case VW_KEY_XD_ACTIVATE_NEXT_FRAME:
  case VW_KEY_XD_ACTIVATE_LAST_FRAME: {
    const bool next = key == VW_KEY_XD_ACTIVATE_NEXT_FRAME;
    int iFrm = next ? m_iFrmActive + 1 : m_iFrmActive - 1;
    if (m_iFtrActive.Valid()) {
      const int nLFs = GetLocalFrames(), nFrms = nKFs + nLFs;
      const int iKF = m_iFtrActive.m_ix.m_iKF, ix = m_iFtrActive.m_ix.m_ix;
      while (iFrm >= 0 && iFrm < nFrms && iFrm != iKF) {
        const FRM::Frame &F = *(iFrm < nKFs ? GetKeyFrame(iFrm) :
                                              GetLocalFrame((iFrm - nKFs + m_iLF + 1) % nLFs));
        const int iz = F.SearchFeatureMeasurement(iKF, ix);
        if (iz != -1
#ifdef CFG_STEREO
        && (!m_rightActive && F.m_zs[iz].m_z.Valid() || m_rightActive && F.m_zs[iz].m_zr.Valid())
#endif
        ) {
          break;
        }
        iFrm = next ? iFrm + 1 : iFrm - 1;
      }
    }
    ActivateFrame(iFrm);
    return true;
  }
  case VW_KEY_XD_ACTIVATE_KEY_FRAME:
    if (m_iFtrActive.m_ix.Valid()) {
      ActivateFrame(m_iFtrActive.m_ix.m_iKF);
    } else {
      ActivateFrame(m_iKFActive);
    }
    return true;
  case VW_KEY_XD_ACTIVATE_LOCAL_FRAME:
    if (m_iFtrActive.m_iz.Valid() && m_iFtrActive.m_iz.m_iLF != -1) {
      ActivateLocalFrame(m_iFtrActive.m_iz.m_iLF);
    } else if (activeKF) {
      ActivateLocalFrame(m_iLFActive);
    } else {
      ActivateLocalFrame(m_iLFActiveLast);
    }
    return true;
  case VW_KEY_XD_ACTIVATE_CURRENT_FRAME:
    ActivateLocalFrame(m_iLF);
    return true;
  case VW_KEY_XD_DRAW_CAMERA_TYPE_NEXT:
  case VW_KEY_XD_DRAW_CAMERA_TYPE_LAST:
    if (activeKF) {
      m_keyDrawCamTypeKF.Press(key == VW_KEY_XD_DRAW_CAMERA_TYPE_NEXT, false);
      switch (m_keyDrawCamTypeKF) {
      case DRAW_CAM_KF_LBA:
        m_keyDrawCamTypeLF = DRAW_CAM_LF_LBA;
        m_keyDrawDepType = DRAW_DEP_LBA;
        break;
      case DRAW_CAM_KF_GBA:
        m_keyDrawDepType = DRAW_DEP_GBA;
        break;
#ifdef CFG_GROUND_TRUTH
      case DRAW_CAM_KF_GT:
        m_keyDrawCamTypeLF = DRAW_CAM_LF_GT;
        if (!m_solver->m_internal->m_DsGT.empty()) {
          m_keyDrawDepType = DRAW_DEP_GT;
        }
        break;
#endif
      }
    } else {
      m_keyDrawCamTypeLF.Press(key == VW_KEY_XD_DRAW_CAMERA_TYPE_NEXT, false);
      switch (m_keyDrawCamTypeLF) {
      case DRAW_CAM_LF_LBA:
        m_keyDrawCamTypeKF = DRAW_CAM_KF_LBA;
        m_keyDrawDepType = DRAW_DEP_LBA;
        break;
#ifdef CFG_GROUND_TRUTH
      case DRAW_CAM_LF_GT:
        m_keyDrawCamTypeKF = DRAW_CAM_KF_GT;
        if (!m_solver->m_internal->m_DsGT.empty()) {
          m_keyDrawDepType = DRAW_DEP_GT;
        }
        break;
#endif
      }
    }
    ActivateFrame(m_iFrmActive);
    return true;
#ifdef CFG_GROUND_TRUTH
  case VW_KEY_XD_DRAW_CAMERA_TYPE_GROUND_TRUTH:
    if (activeKF && m_keyDrawCamTypeKF == DRAW_CAM_KF_GT) {
      m_keyDrawCamTypeKF.Set(DRAW_CAM_KF_GBA);
      m_keyDrawDepType = DRAW_DEP_GBA;
    } else if (!activeKF && m_keyDrawCamTypeLF == DRAW_CAM_LF_GT) {
      m_keyDrawCamTypeKF.Set(DRAW_CAM_KF_LBA);
      m_keyDrawCamTypeLF = DRAW_CAM_LF_LBA;
      m_keyDrawDepType = DRAW_DEP_LBA;
    } else if (activeKF && GetCameraKF(m_iKFActive, DRAW_CAM_KF_GT).Valid() ||
              !activeKF && GetCameraLF(m_iLFActive, DRAW_CAM_LF_GT).Valid()) {
      m_keyDrawCamTypeKF.Set(DRAW_CAM_KF_GT);
      m_keyDrawCamTypeLF = DRAW_CAM_LF_GT;
      if (!m_solver->m_internal->m_DsGT.empty()) {
        m_keyDrawDepType = DRAW_DEP_GT;
      }
    }
    ActivateFrame(m_iFrmActive);
    return true;
#endif
  case VW_KEY_XD_DRAW_DEPTH_TYPE_NEXT:
  case VW_KEY_XD_DRAW_DEPTH_TYPE_LAST:
    m_keyDrawDepType.Press(key == VW_KEY_XD_DRAW_DEPTH_TYPE_NEXT, false);
    return true;
  case VW_KEY_XD_DRAW_STRING:     m_keyDrawString.Press();  return true;
  case VW_KEY_XD_DRAW_TIME_LINE:  m_keyDrawTlnType.Press(); return true;
  case VW_KEY_XD_DRAW_TIME_LINE_BRIGHTNESS_INCREASE_1:
  case VW_KEY_XD_DRAW_TIME_LINE_BRIGHTNESS_DECREASE_1:
  case VW_KEY_XD_DRAW_TIME_LINE_BRIGHTNESS_INCREASE_2:
  case VW_KEY_XD_DRAW_TIME_LINE_BRIGHTNESS_DECREASE_2:
    if (m_keyDrawTlnType == DRAW_TLN_FEATURE_MATCH) {
      m_keyDrawTlnMaxFtrMatches.Press(key == VW_KEY_XD_DRAW_TIME_LINE_BRIGHTNESS_DECREASE_1 ||
                                      key == VW_KEY_XD_DRAW_TIME_LINE_BRIGHTNESS_DECREASE_2);
    } else if (key == VW_KEY_XD_DRAW_TIME_LINE_BRIGHTNESS_INCREASE_1 ||
               key == VW_KEY_XD_DRAW_TIME_LINE_BRIGHTNESS_DECREASE_1) {
      m_keyDrawTlnPriorVarPos.Press(key == VW_KEY_XD_DRAW_TIME_LINE_BRIGHTNESS_INCREASE_1);
    } else {
      m_keyDrawTlnPriorVarRot.Press(key == VW_KEY_XD_DRAW_TIME_LINE_BRIGHTNESS_INCREASE_2);
    }
    return true;
  }
  if (m_keyDrawViewType == DRAW_VIEW_2D || m_keyDrawViewType == DRAW_VIEW_3D) {
    switch (key) {
    case VW_KEY_XD_DRAW_AXIS:
      m_keyDrawAxis.Press();
      return true;
    case VW_KEY_XD_DRAW_AXIS_LENGTH_INCREASE:
    case VW_KEY_XD_DRAW_AXIS_LENGTH_DECREASE:
      if (m_keyDrawAxis != DRAW_AXIS_NONE) {
        m_keyDrawAxisLen.Press(key == VW_KEY_XD_DRAW_AXIS_LENGTH_INCREASE);
        m_frustrum.SetAxisLength(m_keyDrawAxisLen);
        m_frustrumActive.SetAxisLength(m_keyDrawAxisLen);
        return true;
      }
      break;
    case VW_KEY_XD_DRAW_DEPTH_PLANE:
      m_keyDrawDepPlane.Press();
      return true;
    case VW_KEY_XD_DRAW_DEPTH_VARIANCE_INCREASE:
    case VW_KEY_XD_DRAW_DEPTH_VARIANCE_DECREASE:
      m_keyDrawDepVar.Press(key == VW_KEY_XD_DRAW_DEPTH_VARIANCE_INCREASE);
      return true;
    case VW_KEY_XD_DRAW_COVARIANCE_PROBABILITY_INCREASE:
    case VW_KEY_XD_DRAW_COVARIANCE_PROBABILITY_DECREASE:
      if (m_keyDrawTlnType != DRAW_TLN_NONE ||
         (m_keyDrawViewType == DRAW_VIEW_2D && (m_keyDrawErrType2D == DRAW_ERR_ALL ||
                                                m_keyDrawErrType2D == DRAW_ERR_COVARIANCE)) ||
         (m_keyDrawViewType == DRAW_VIEW_3D && (m_keyDrawErrType3D == DRAW_ERR_ALL ||
                                                m_keyDrawErrType3D == DRAW_ERR_COVARIANCE))) {
        m_keyDrawCovProb.Press(key == VW_KEY_XD_DRAW_COVARIANCE_PROBABILITY_INCREASE);
        return true;
      }
      break;
    case VW_KEY_XD_DRAW_COVARIANCE_SCALE_INCREASE:
    case VW_KEY_XD_DRAW_COVARIANCE_SCALE_DECREASE:
      if (m_keyDrawTlnType != DRAW_TLN_NONE ||
         (m_keyDrawViewType == DRAW_VIEW_2D && (m_keyDrawErrType2D == DRAW_ERR_ALL ||
                                                m_keyDrawErrType2D == DRAW_ERR_COVARIANCE)
       || m_keyDrawViewType == DRAW_VIEW_3D && (m_keyDrawErrType3D == DRAW_ERR_ALL ||
                                                m_keyDrawErrType3D == DRAW_ERR_COVARIANCE))) {
        m_keyDrawCovScale.Press(key == VW_KEY_XD_DRAW_COVARIANCE_SCALE_INCREASE);
        return true;
      }
      break;
    case VW_KEY_XD_INPUT_ACTIVE_FEATURE: {
      const int iFrm = UT::Input<int>(" Frame");
      const std::vector<KeyFrame>::const_iterator iKF = std::lower_bound(m_GBA->m_KFs.begin(),
                                                                         m_GBA->m_KFs.end(), iFrm);
      if (iKF != m_GBA->m_KFs.end() && *iKF == iFrm) {
        const int ix = UT::Input<int>("Source");
        if (ix < 0 || ix >= static_cast<int>(iKF->m_xs.size())) {
          return false;
        }
        const int _iKF = static_cast<int>(iKF - m_GBA->m_KFs.begin());
        const FRM::Frame &F = *(activeKF ? GetKeyFrame(m_iKFActive) : GetLocalFrame(m_iLFActive));
        const int iz = F.SearchFeatureMeasurement(_iKF, ix);
        ActivateFeature(FeatureIndex::Source(_iKF, ix), iz);
      }
      return false;
    }
    case VW_KEY_PROFILE_ACTIVATE:
      if (m_keyDrawViewType != DRAW_VIEW_PROFILE) {
        m_keyDrawViewTypeBkp = m_keyDrawViewType;
        m_keyDrawViewType = DRAW_VIEW_PROFILE;
      }
      return true;
    }
  } else if (m_keyDrawViewType == DRAW_VIEW_PROFILE) {
    switch (key) {
    case VW_KEY_PROFILE_ACTIVATE:
      m_keyDrawViewType = m_keyDrawViewTypeBkp;
      return true;
    case VM_KEY_PROFILE_LEVEL_1_NEXT:
    case VM_KEY_PROFILE_LEVEL_1_LAST: {
      const int types[] = {DRAW_PRF_ACCELERATION, DRAW_PRF_IMU_DELTA_ROTATION_STATE,
                           DRAW_PRF_CAMERA_PRIOR_ROTATION_STATE, DRAW_PRF_REPROJECTION_ERROR,
                           DRAW_PRF_STATE_ROTATION_ABSOLUTE,
                           DRAW_PRF_TYPES};
      const int N = sizeof(types) / sizeof(int);
      DrawProfileTypeStep(types, N, key == VM_KEY_PROFILE_LEVEL_1_NEXT);
      return true; }
    case VM_KEY_PROFILE_LEVEL_2_NEXT:
    case VM_KEY_PROFILE_LEVEL_2_LAST: {
      const int types[] = {DRAW_PRF_ACCELERATION, DRAW_PRF_GYROSCOPE,
                           DRAW_PRF_IMU_DELTA_ROTATION_STATE,
                           DRAW_PRF_IMU_DELTA_POSITION_STATE,
                           DRAW_PRF_IMU_DELTA_VELOCITY_STATE,
                           DRAW_PRF_IMU_DELTA_BIAS_ACCELERATION_STATE,
                           DRAW_PRF_IMU_DELTA_BIAS_GYROSCOPE_STATE,
                           DRAW_PRF_CAMERA_PRIOR_ROTATION_STATE,
                           DRAW_PRF_CAMERA_PRIOR_POSITION_STATE,
                           DRAW_PRF_CAMERA_PRIOR_VELOCITY_STATE,
                           DRAW_PRF_CAMERA_PRIOR_BIAS_ACCELERATION_STATE,
                           DRAW_PRF_CAMERA_PRIOR_BIAS_GYROSCOPE_STATE,
                           DRAW_PRF_REPROJECTION_ERROR,
                           DRAW_PRF_STATE_ROTATION_ABSOLUTE,
                           DRAW_PRF_STATE_POSITION_ABSOLUTE,
                           DRAW_PRF_STATE_VELOCITY,
                           DRAW_PRF_STATE_BIAS_ACCELERATION,
                           DRAW_PRF_STATE_BIAS_GYROSCOPE,
                           DRAW_PRF_TYPES};
      const int N = sizeof(types) / sizeof(int);
      DrawProfileTypeStep(types, N, key == VM_KEY_PROFILE_LEVEL_2_NEXT);
      return true; }
    case VM_KEY_PROFILE_LEVEL_3_NEXT:
    case VM_KEY_PROFILE_LEVEL_3_LAST: {
      const int typeBkp = m_keyDrawPrfType;
      while (m_keyDrawPrfType.Press(key == VM_KEY_PROFILE_LEVEL_3_NEXT, false) &&
             !DrawProfileTypeValid()) {}
      if (!DrawProfileTypeValid()) {
        m_keyDrawPrfType = typeBkp;
      }
      return true; }
    }
  }
  if (m_keyDrawViewType == DRAW_VIEW_2D) {
    switch (key) {
    case VW_KEY_2D_DRAW_FEATURE_TYPE:     m_keyDrawFtrType.Press();   return true;
    case VW_KEY_2D_DRAW_PROJECTION_TYPE:  m_keyDrawPrjType.Press();   return true;
    case VW_KEY_2D_DRAW_ERROR_TYPE:       m_keyDrawErrType2D.Press(); return true;
    }
  } else if (m_keyDrawViewType == DRAW_VIEW_3D) {
    switch (key) {
    case VW_KEY_3D_DRAW_MOTION_TYPE:
      if (activeKF) {
        m_keyDrawMotTypeKF.Press();
      } else {
        m_keyDrawMotTypeLF.Press();
      }
      return true;
    case VW_KEY_3D_DRAW_STRUCTURE_TYPE:
      m_keyDrawStrType.Press();
      return true;
    case VW_KEY_3D_DRAW_DEPTH_COMPARE_TYPE:
      if (m_keyDrawErrType3D == DRAW_ERR_ALL || m_keyDrawErrType3D == DRAW_ERR_MEAN) {
        m_keyDrawDepTypeCMP.Press();
        //while(m_keyDrawDepTypeCMP == m_keyDrawDepType)
        //  m_keyDrawDepTypeCMP.Press();
      }
      return true;
    case VW_KEY_3D_DRAW_CAMERA_SIZE_INCREASE:
    case VW_KEY_3D_DRAW_CAMERA_SIZE_DECREASE:
      m_keyDrawCamSize.Press(key == VW_KEY_3D_DRAW_CAMERA_SIZE_INCREASE);
      m_frustrum.SetSize(m_keyDrawCamSize);
      m_frustrumActive.SetSize(m_keyDrawCamSize * VW_CAMERA_SIZE_ACTIVE_RATIO);
      return true;
    case VW_KEY_3D_DRAW_CAMERA_VELOCITY:      m_keyDrawCamVelocity.Press(); break;
    case VW_KEY_3D_DRAW_CAMERA_TEXTURE:       m_keyDrawCamTex.Press();      break;
#ifdef CFG_GROUND_TRUTH
    case VW_KEY_3D_DRAW_CAMERA_GROUND_TRUTH:  m_keyDrawCamGT.Press();       break;
#endif
    case VW_KEY_3D_DRAW_ERROR_TYPE:
      m_keyDrawErrType3D.Press();
      return true;
    case VW_KEY_3D_DRAW_BACKGROUND_COLOR:
      m_keyDrawBgClr.Press();
      Update3DBackgroundColor();
      return true;
    case VW_KEY_3D_RESET_VIEW_POINT_ACTIVE:
    case VW_KEY_3D_RESET_VIEW_POINT_VIRTUAL:
      Reset3DViewPoint(key == VW_KEY_3D_RESET_VIEW_POINT_ACTIVE);
      return true;
    }
  }
  return false;
}