void Windows9::Execute(){ SDL_Event *currentEvent = myGraphic->getEvent(); UpdateCaption(); myGraphic->activeInputText(); myText = "NewFolder"; myNewFolder->setMessageChanged(true); while(termination == false){ displayBasics(); while(SDL_PollEvent(currentEvent)){ if(currentEvent->type == SDL_QUIT){ termination = true; } else if(currentEvent->type == SDL_MOUSEMOTION){ xPosOfMouse = currentEvent->button.x; yPosOfMouse = currentEvent->button.y; //cout << "x: " << xPosOfMouse << " y: " << yPosOfMouse << endl; checkMouseState(xPosOfMouse, yPosOfMouse); } else if(currentEvent->type == SDL_MOUSEBUTTONDOWN){ xPosOfMouse = currentEvent->button.x; yPosOfMouse = currentEvent->button.y; cout << "x: " << xPosOfMouse << " y: " << yPosOfMouse << endl; checkMouseClicked(xPosOfMouse, yPosOfMouse); } else if(currentEvent->type == SDL_KEYDOWN && myNewFolder->getActivation()){ if( currentEvent->key.keysym.sym == SDLK_BACKSPACE && myText.length() > 0 ){ myNewFolder->setMessageChanged(true); myText.pop_back(); } } if(currentEvent->type == SDL_TEXTINPUT && myNewFolder->getActivation()){ myNewFolder->setMessageChanged(true); myText += currentEvent->text.text; } } if(myNewFolder->getActivation() && myNewFolder->getMessageChanged() == true){ myNewFolder->setName(myText); cout << "text: " << myNewFolder->getName() << endl; } myGraphic->display(); UpdateCaption(); } myGraphic->deactiveInputText(); }
void lookPadState() { KeyState oldState = keyState; float oldDeg = keyState.deg; int i,j; BOOL bMove,bUseKeyMove = FALSE; HRESULT hr; static float sThumbLX = 0,sThumbLY=0,leng; point = sysInf.msPoint; GetCursorPos(&sysInf.msPoint); ScreenToClient(sysInf.hWnd,&sysInf.msPoint); if(sysInf.full_screen){ if(!sysInf.bShowMenu){ if(sysInf.msPoint.y<GetSystemMetrics(SM_CYMENUSIZE)){ ShowWindow(sysInf.hMenuWnd,SW_SHOW); UpdateWindow(sysInf.hMenuWnd); sysInf.bShowMenu = on; } }else{ if(sysInf.msPoint.y>GetSystemMetrics(SM_CYMENUSIZE)){ ShowWindow(sysInf.hMenuWnd, SW_HIDE); sysInf.bShowMenu = off; return; } } } if(sysInf.bShowMenu)return; clearAllPushData(); for(i=0;i<g_iDIDeviceNum; i++) { DIDEVICEOBJECTDATA od[100]; DWORD dwItems = 100; hr = g_pDIDevice[i]->Poll(); if (FAILED(hr)){ hr = g_pDIDevice[i]->Acquire(); while (hr==DIERR_INPUTLOST) hr = g_pDIDevice[i]->Acquire(); } hr = g_pDIDevice[i]->GetDeviceData(sizeof(DIDEVICEOBJECTDATA), od, &dwItems, 0); if(DI_OK!=hr && DI_BUFFEROVERFLOW!=hr) continue; bMove = FALSE; for (j=0;j<dwItems;j++){ BOOL bState = (od[j].dwData != 0 ) ? TRUE : FALSE; switch(od[j].uAppData){ case INPUT_LEFTRIGHT: bMove = TRUE; sThumbLX = float(int(od[j].dwData)); break; case INPUT_UPDOWN: bMove = TRUE; sThumbLY = float(-int(od[j].dwData)); break; case INPUT_LEFT: bUseKeyMove = TRUE; keyState.data_kLeft = bState; break; case INPUT_RIGHT: bUseKeyMove = TRUE; keyState.data_kRight = bState; break; case INPUT_UP: bUseKeyMove = TRUE; keyState.data_kUp = bState; break; case INPUT_DOWN: bUseKeyMove = TRUE; keyState.data_kDown = bState; break; case INPUT_LEFTUP: bUseKeyMove = TRUE; keyState.data_kLeftUp = bState; break; case INPUT_RIGHTUP: bUseKeyMove = TRUE; keyState.data_kRightUp = bState; break; case INPUT_LEFTDOWN: bUseKeyMove = TRUE; keyState.data_kLeftDown = bState; break; case INPUT_RIGHTDOWN: bUseKeyMove = TRUE; keyState.data_kRightDown = bState; break; case INPUT_ACTION: keyState.push_action = bState; if(keyState.push_action){ keyState.data_action = TRUE; }else{ keyState.data_action = FALSE; } break; case INPUT_MOUSEA: keyState.push_mouse_a = bState; keyState.push_action = bState; if(keyState.push_mouse_a){ keyState.data_action = TRUE; }else{ keyState.data_action = FALSE; } break; case INPUT_MOUSEB: keyState.push_mouse_b = bState; keyState.push_cancel = bState; if(keyState.push_mouse_b){ keyState.data_cancel = TRUE; }else{ keyState.data_cancel = FALSE; } break; case INPUT_MOUSEC: keyState.push_mouse_c = bState; keyState.push_cancel = bState; if(keyState.push_mouse_c){ keyState.data_cancel = TRUE; }else{ keyState.data_cancel = FALSE; } break; case INPUT_CANCEL: keyState.push_cancel = bState; if(keyState.push_cancel){ keyState.data_cancel = TRUE; }else{ keyState.data_cancel = FALSE; } break; case INPUT_SKIP: keyState.push_skip = bState; if(sysInf.bAllSkip){ if(keyState.push_skip){ keyState.data_skip = TRUE; }else{ keyState.data_skip = FALSE; } }else{ keyState.data_skip = FALSE; } break; case INPUT_FAIRY: keyState.push_fairyAttack = bState; break; case INPUT_CAMP: keyState.push_camp = bState; break; case INPUT_LEFTTRIGGER: keyState.push_leftTrigger = bState; break; case INPUT_RIGHTTRIGGER: keyState.push_rightTrigger = bState; break; case INPUT_DEBUG: keyState.push_start = bState; break; case INPUT_END: if(bState){ } break; } } if(bUseKeyMove){ bMove = TRUE; if(keyState.data_kLeft || keyState.data_kLeftUp || keyState.data_kLeftDown){ sThumbLX = -32767; }else if(keyState.data_kRight || keyState.data_kRightUp || keyState.data_kRightDown){ sThumbLX = 32767; }else{ sThumbLX = 0; } if(keyState.data_kUp || keyState.data_kLeftUp || keyState.data_kRightUp){ sThumbLY = 32767; }else if(keyState.data_kDown || keyState.data_kLeftDown || keyState.data_kRightDown){ sThumbLY = -32767; }else{ sThumbLY = 0; } } if(bMove){ keyState.data_left = keyState.data_right = keyState.data_up = keyState.data_down = 0; leng = sqrtf(square(sThumbLX) +square(sThumbLY)); if(leng > 32768)leng = 32768; if(leng > 20000){ keyState.data_move = 1; keyState.moveLeng = leng; }else{ keyState.data_move = 0; keyState.moveLeng = 0; } if(0==keyState.data_mouse_b){ if(sThumbLX >20000){ if(oldState.data_right==0){ keyState.push_right = 1; keyState.repeatCntR = timeGetTime() +1000; } keyState.data_right = 1; }else if(sThumbLX < -20000){ if(oldState.data_left==0){ keyState.push_left = 1; keyState.repeatCntL = timeGetTime() +1000; } keyState.data_left = 1; } if(sThumbLY >20000){ if(oldState.data_up==0){ keyState.push_up = 1; keyState.repeatCntU = timeGetTime() +1000; } keyState.data_up = 1; }else if(sThumbLY < -20000){ if(oldState.data_down==0){ keyState.push_down = 1; keyState.repeatCntD = timeGetTime() +1000; } keyState.data_down = 1; } } } } checkMouseState(); if(keyState.push_up){ switch(sysInf.execMode){ case event_exec_mode: backLog.DispInit(); break; } } if(keyState.push_action && sysInf.bReadSkip){ sysInf.bReadSkip = FALSE; CheckMenuItem( sysInf.hMenu, ID_READSKIP, MF_UNCHECKED ); } } // lookPadState