void CIATestMainWindow::ProcessInput(double dTimeFraction,double dRealTimeFraction) { if(m_piGUIManager->IsKeyDown(GK_PAUSE)){ProcessKey(KEY_PAUSE,dTimeFraction,dRealTimeFraction);} if(m_piGUIManager->IsKeyDown('P')){ProcessKey(KEY_PROCESS_ONE_FRAME,dTimeFraction,dRealTimeFraction);} if(m_piGUIManager->IsKeyDown(GK_UP) || m_piGUIManager->IsKeyDown(GK_NUMPAD8) || m_piGUIManager->IsKeyDown('W')){ProcessKey(KEY_FORWARD,dTimeFraction,dRealTimeFraction);} if(m_piGUIManager->IsKeyDown(GK_DOWN) || m_piGUIManager->IsKeyDown(GK_NUMPAD2) || m_piGUIManager->IsKeyDown('S')){ProcessKey(KEY_BACK,dTimeFraction,dRealTimeFraction);} if(m_piGUIManager->IsKeyDown(GK_LEFT) || m_piGUIManager->IsKeyDown(GK_NUMPAD4) || m_piGUIManager->IsKeyDown('A')){ProcessKey(KEY_LEFT,dTimeFraction,dRealTimeFraction);} if(m_piGUIManager->IsKeyDown(GK_RIGHT) || m_piGUIManager->IsKeyDown(GK_NUMPAD6) || m_piGUIManager->IsKeyDown('D')){ProcessKey(KEY_RIGHT,dTimeFraction,dRealTimeFraction);} if(m_piGUIManager->IsKeyDown(GK_NUMPAD9) || m_piGUIManager->IsKeyDown('R')){ProcessKey(KEY_UP,dTimeFraction,dRealTimeFraction);} if(m_piGUIManager->IsKeyDown(GK_NUMPAD3) || m_piGUIManager->IsKeyDown('F')){ProcessKey(KEY_DOWN,dTimeFraction,dRealTimeFraction);} }
void SimpleModal::ProcessInput() { if (m_ReadRec.EventType==MOUSE_EVENT && !(m_ReadKey==KEY_MSWHEEL_UP || m_ReadKey==KEY_MSWHEEL_DOWN || m_ReadKey==KEY_MSWHEEL_RIGHT || m_ReadKey==KEY_MSWHEEL_LEFT)) ProcessMouse(&m_ReadRec.Event.MouseEvent); else ProcessKey(Manager::Key(m_ReadKey)); }
__int64 FilePanels::VMProcess(int OpCode,void *vParam,__int64 iParam) { if (OpCode == MCODE_F_KEYBAR_SHOW) { int PrevMode=Opt.ShowKeyBar?2:1; switch (iParam) { case 0: break; case 1: Opt.ShowKeyBar=1; MainKeyBar.Show(); KeyBarVisible = Opt.ShowKeyBar; SetScreenPosition(); FrameManager->RefreshFrame(); break; case 2: Opt.ShowKeyBar=0; MainKeyBar.Hide(); KeyBarVisible = Opt.ShowKeyBar; SetScreenPosition(); FrameManager->RefreshFrame(); break; case 3: ProcessKey(KEY_CTRLB); break; default: PrevMode=0; break; } return PrevMode; } return ActivePanel->VMProcess(OpCode,vParam,iParam); }
int Grabber::ProcessMouse(MOUSE_EVENT_RECORD *MouseEvent) { if (MouseEvent->dwEventFlags==DOUBLE_CLICK || (!MouseEvent->dwEventFlags && (MouseEvent->dwButtonState & RIGHTMOST_BUTTON_PRESSED))) { ProcessKey(KEY_ENTER); return TRUE; } if (IntKeyState.MouseButtonState!=FROM_LEFT_1ST_BUTTON_PRESSED) return FALSE; GArea.CurX=Min(Max(static_cast<SHORT>(0),IntKeyState.MouseX),ScrX); GArea.CurY=Min(Max(static_cast<SHORT>(0),IntKeyState.MouseY),ScrY); if (!MouseEvent->dwEventFlags) ResetArea=TRUE; else if (MouseEvent->dwEventFlags==MOUSE_MOVED) { if (ResetArea) { GArea.X2=GArea.CurX; GArea.Y2=GArea.CurY; ResetArea=FALSE; } GArea.X1=GArea.CurX; GArea.Y1=GArea.CurY; } //VerticalBlock=MouseEvent->dwControlKeyState&(LEFT_ALT_PRESSED|RIGHT_ALT_PRESSED); DisplayObject(); return TRUE; }
__int64 FileViewer::VMProcess(int OpCode,void *vParam,__int64 iParam) { if (OpCode == MCODE_F_KEYBAR_SHOW) { int PrevMode=Opt.ViOpt.ShowKeyBar?2:1; switch (iParam) { case 0: break; case 1: Opt.ViOpt.ShowKeyBar=1; ViewKeyBar.Show(); Show(); KeyBarVisible = Opt.ViOpt.ShowKeyBar; break; case 2: Opt.ViOpt.ShowKeyBar=0; ViewKeyBar.Hide(); Show(); KeyBarVisible = Opt.ViOpt.ShowKeyBar; break; case 3: ProcessKey(KEY_CTRLB); break; default: PrevMode=0; break; } return PrevMode; } return View.VMProcess(OpCode,vParam,iParam); }
//************************************************************************************************ // cMenu::Show() //************************************************************************************************ EMenuValue cMenu::Show(int rc_fd) { IMPORT_FRAMEBUFFER_VARS; STORE_PALETTE(&colormap); gl_fillbox(0, 0, p_xsize, p_ysize, TRANSP); Draw(); //ShowOsd(True); int rccode; while( 1 ) { cMenu::GetRCCode(rc_fd, rccode); if(!ProcessKey(rccode)) break; if (m_RetValue != eMVNone) break; } gl_fillbox(0, 0, p_xsize, p_ysize, TRANSP); STORE_PALETTE(NULL); SendFramebufferUpdateRequest(0, 0, p_xsize, p_ysize, False); return m_RetValue; }
bool CScsiDeviceList::Populate() { this->clear(); HKEY hScsiKey; _tcscpy(m_szLastKey, _T("\\Scsi")); m_dwLastKeyLength = 5; m_lLastError = RegOpenKeyEx( HKEY_LOCAL_MACHINE, c_ScsiPath, 0, KEY_READ, &hScsiKey); if (m_lLastError != ERROR_SUCCESS) { _tcscpy(m_szLastOperation, _T("Opening key ")); _tcscpy(m_szLastKey, c_ScsiPath); return false; } if (!ProcessKey(hScsiKey, c_MaxKeyDepth - 1, 0)) { return false; } #if defined(_DEBUG) _fputtc(_T('\n'), stderr); #endif return true; }
void Modal::ProcessInput() { if (ReadRec.EventType==MOUSE_EVENT) ProcessMouse(&ReadRec.Event.MouseEvent); else ProcessKey(ReadKey); }
/* $ 29.12.2000 IS Аналог CloseAll, но разрешает продолжение полноценной работы в фаре, если пользователь продолжил редактировать файл. Возвращает TRUE, если все закрыли и можно выходить из фара. */ BOOL Manager::ExitAll() { _MANAGER(CleverSysLog clv(L"Manager::ExitAll()")); // BUGBUG don't use iterators here, may be invalidated by DeleteCommit() for(size_t i = m_modalWindows.size(); i; --i) { if (i - 1 >= m_modalWindows.size()) continue; auto CurrentWindow = m_modalWindows[i - 1]; if (!CurrentWindow->GetCanLoseFocus(TRUE)) { auto PrevWindowCount = m_modalWindows.size(); CurrentWindow->ProcessKey(Manager::Key(KEY_ESC)); Commit(); if (PrevWindowCount == m_modalWindows.size()) { return FALSE; } } } // BUGBUG don't use iterators here, may be invalidated by DeleteCommit() for(size_t i = m_windows.size(); i; --i) { if (i - 1 >= m_windows.size()) continue; auto CurrentWindow = m_windows[i - 1]; if (!CurrentWindow->GetCanLoseFocus(TRUE)) { ActivateWindow(CurrentWindow); Commit(); auto PrevWindoowCount = m_windows.size(); CurrentWindow->ProcessKey(Manager::Key(KEY_ESC)); Commit(); if (PrevWindoowCount == m_windows.size()) { return FALSE; } } } return TRUE; }
bool CommandLine::ProcessMouse(const MOUSE_EVENT_RECORD *MouseEvent) { if(MouseEvent->dwButtonState&FROM_LEFT_1ST_BUTTON_PRESSED && MouseEvent->dwMousePosition.X==m_X2+1) { return ProcessKey(Manager::Key(KEY_ALTF8)); } return CmdStr.ProcessMouse(MouseEvent); }
void main(void) { int nFrame, nStay; int x, y; SetCursorType(NOCURSOR), init_rand(); for (; 1;) // 게임이 끝났을 경우 다시 시작하거나 끝내는 루프 { Score = 0, bricknum = 0; CLS; // 무한루프에 들어가기전 초기화 for (x = 0; x < BW + 2; x++) // 외부벽 초기화 { for (y = 0; y < BH + 2; y++) { board[x][y] = (y == 0 || y == BH + 1 || x == 0 || x == BW + 1) ? WALL : EMPTY; } } DrawScreen(); nFrame = 10; nbrick = make_rand(sizeof(Shape) / sizeof(Shape[0])); for (; 2;) // 전체 게임 루프 { bricknum++; brick = nbrick; nbrick = make_rand(sizeof(Shape) / sizeof(Shape[0])); // 새 벽돌 생성 DrawNext(); //DrawPresent() nx = BW / 2, ny = 2; rot = 0; PrintBrick(TRUE); if (GetAround(nx, ny, brick, rot) != EMPTY) break; // 게임 끝 점검 nStay = nFrame; for (; 3;) // 벽돌 하나 처리 루프 { if (--nStay == 0) { nStay = nFrame; if (MoveDown()) break; // 벽돌 내림 } if (ProcessKey()) break; // 키처리 delay(1000 / 20); // 시간 지연 } if (bricknum % 5 == 0 && nFrame > 3) nFrame--; } CLS; gotoxy(30, 12), puts("G A M E O V E R"); // 게임 끝 처리 gotoxy(23, 14), puts("If you want restart game press [ Y ]"); // 재시작 gotoxy(27, 16), puts("another any key [ Exit ]"); if (tolower(getch()) != 'y') break; } SetCursorType(NORMALCURSOR); }
void GuiDocumentCommonInterface::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) { if(documentControl->GetVisuallyEnabled()) { if(editMode!=ViewOnly) { if(ProcessKey(arguments.code, arguments.shift, arguments.ctrl)) { arguments.handled=true; } } } }
void Manager::ProcessMainLoop() { if ( CurrentFrame ) CtrlObject->Macro.SetMode(CurrentFrame->GetMacroMode()); if ( CurrentFrame && !CurrentFrame->ProcessEvents() ) { ProcessKey(KEY_IDLE); } else { // Mantis#0000073: Не работает автоскролинг в QView Global->WaitInMainLoop=IsPanelsActive(true); //WaitInFastFind++; int Key=GetInputRecord(&LastInputRecord); //WaitInFastFind--; Global->WaitInMainLoop=FALSE; if (EndLoop) return; if (LastInputRecord.EventType==MOUSE_EVENT && !(Key==KEY_MSWHEEL_UP || Key==KEY_MSWHEEL_DOWN || Key==KEY_MSWHEEL_RIGHT || Key==KEY_MSWHEEL_LEFT)) { // используем копию структуры, т.к. LastInputRecord может внезапно измениться во время выполнения ProcessMouse MOUSE_EVENT_RECORD mer=LastInputRecord.Event.MouseEvent; ProcessMouse(&mer); } else ProcessKey(Key); } if(IsPanelsActive()) { if(!Global->PluginPanelsCount) { CtrlObject->Plugins->RefreshPluginsList(); } } }
int HMenu::ProcessMouse(MOUSE_EVENT_RECORD *MouseEvent) { int MsX,MsY; SelectPos=0; for (int i=0; i<ItemCount; i++) { if (Item[i].Selected) { SelectPos=i; break; } } MsX=MouseEvent->dwMousePosition.X; MsY=MouseEvent->dwMousePosition.Y; if (MsY==Y1 && MsX>=X1 && MsX<=X2) { for (int i=0; i<ItemCount; i++) if (MsX>=ItemX[i] && MsX<ItemX[i+1]) { if (SubMenu && SelectPos==i) return FALSE; Item[SelectPos].Selected=0; Item[i].Selected=1; SelectPos=i; ShowMenu(); ProcessKey(KEY_ENTER); } } else if (!(MouseEvent->dwButtonState & 3) && !MouseEvent->dwEventFlags) ProcessKey(KEY_ESC); return TRUE; }
int FolderTree::ProcessMouse(MOUSE_EVENT_RECORD *MouseEvent) { if (TreeKeyBar.ProcessMouse(MouseEvent)) return TRUE; if (MouseEvent->dwEventFlags==DOUBLE_CLICK) { ProcessKey(KEY_ENTER); return TRUE; } int MsX=MouseEvent->dwMousePosition.X; int MsY=MouseEvent->dwMousePosition.Y; if ((MsX<X1 || MsY<Y1 || MsX>X2 || MsY>Y2) && IntKeyState.MouseEventFlags != MOUSE_MOVED) { if (!(MouseEvent->dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED) && (IntKeyState.PrevMouseButtonState&FROM_LEFT_1ST_BUTTON_PRESSED) && (Global->Opt->Dialogs.MouseButton&DMOUSEBUTTON_LEFT)) ProcessKey(KEY_ESC); else if (!(MouseEvent->dwButtonState & RIGHTMOST_BUTTON_PRESSED) && (IntKeyState.PrevMouseButtonState&RIGHTMOST_BUTTON_PRESSED) && (Global->Opt->Dialogs.MouseButton&DMOUSEBUTTON_RIGHT)) ProcessKey(KEY_ENTER); return TRUE; } if (MsY == Y2-2) FindEdit->ProcessMouse(MouseEvent); else { if (!Tree->ProcessMouse(MouseEvent)) SetExitCode(XC_MODIFIED); else DrawEdit(); } return TRUE; }
UIMenuItem* CSkelMeshViewer::GetObjectMenu(UIMenuItem* menu) { assert(!menu); menu = &NewSubmenu("SkeletalMesh"); (*menu) [ NewMenuCheckbox("Show bone names\tB", &ShowLabels) +NewMenuCheckbox("Show sockets\tA", &ShowAttach) +NewMenuCheckbox("Show influences\tI", &DrawFlags, DF_SHOW_INFLUENCES) +NewMenuCheckbox("Show mesh UVs\tCtrl+U", &ShowUV) +NewMenuSeparator() +NewMenuItem(bIsUE4Mesh ? "Find animations ...\tCtrl+A" : "Cycle AnimSets\tCtrl+A") .SetCallback(BIND_MEMBER(&CSkelMeshViewer::AttachAnimSet, this)) +NewMenuItem("Cycle skeleton display\tS") .SetCallback(BIND_LAMBDA([this]() { ProcessKey('s'); })) // simulate keypress +NewMenuItem("Tag mesh\tCtrl+T") .SetCallback(BIND_LAMBDA([this]() { ProcessKey(KEY_CTRL|'t'); })) // simulate keypress +NewMenuItem("Untag all meshes") .SetCallback(BIND_LAMBDA([this]() { UntagAllMeshes(); })) ]; return CMeshViewer::GetObjectMenu(menu); }
int main(void) { sevenSegmentDisplay.Init(); InitBuzzer(); keyPad.Init(); uvLed.Init(); InitPauseSwitch(); realTimeClock.Init(); realTimeClock.RegisterRTCCallback(rtc_callback_function); sei(); inform_startup(); sevenSegmentDisplay.SetStandBy(true); while (1) { current_key = keyPad.GetPressedKey(); if (current_key != KEY_NONE) { delay_ms(250); ProcessKey(); } if(IsPauseSwitchOn() == true) { if (countDownTimerState == COUNT_DOWN_TIMER_STATE_STARTED) { PauseCountDownTimer(); } } else { if (countDownTimerState == COUNT_DOWN_TIMER_STATE_PAUSED) { StartCountDownTimer(); } } if (beepBuzz == true) { BeepBuzzer(); beepBuzz = false; } } }
int PuzzleProc( /************************************************************************/ HWND hWindow, LPARAM lParam, UINT msg) { int x, y; LPOBJECT lpObject; HWND hImageCtrl; RECT rUpdate; x = LOWORD(lParam); y = HIWORD(lParam); switch (msg) { case WM_CREATE: // The first mouse down message case WM_LBUTTONDOWN: lpObject = ImgFindObject(lpImage, x, y, TRUE, TRUE); if (lpObject && !lpObject->fHidden) { #ifndef _MAC SoundStartResource("ICONS", FALSE, 0); #endif lpObject->fHidden = TRUE; rUpdate = lpObject->rObject; InflateRect(&rUpdate, 2, 2); hImageCtrl = GetDlgItem(hPuzzleWnd, IDC_PUZZLE_IMAGE); InvalidateRect(hImageCtrl, &rUpdate, FALSE); UpdateWindow(hImageCtrl); AdjustGuesses(hPuzzleWnd, -1); } break; case WM_SETCURSOR: return TRUE; case WM_LBUTTONUP: break; case WM_MOUSEMOVE: // sent when ToolActive is on break; case WM_KEYDOWN: ProcessKey (hPuzzleWnd, (UINT)lParam); break; } return TRUE; }
void FilePanels::GoToFile(const wchar_t *FileName) { if (FirstSlash(FileName)) { string ADir,PDir; Panel *PassivePanel = GetAnotherPanel(ActivePanel); int PassiveMode = PassivePanel->GetMode(); if (PassiveMode == NORMAL_PANEL) { PassivePanel->GetCurDir(PDir); AddEndSlash(PDir); } int ActiveMode = ActivePanel->GetMode(); if (ActiveMode==NORMAL_PANEL) { ActivePanel->GetCurDir(ADir); AddEndSlash(ADir); } string strNameFile = PointToName(FileName); string strNameDir = FileName; CutToSlash(strNameDir); /* $ 10.04.2001 IS Не делаем SetCurDir, если нужный путь уже есть на открытых панелях, тем самым добиваемся того, что выделение с элементов панелей не сбрасывается. */ BOOL AExist=(ActiveMode==NORMAL_PANEL) && !StrCmpI(ADir,strNameDir); BOOL PExist=(PassiveMode==NORMAL_PANEL) && !StrCmpI(PDir,strNameDir); // если нужный путь есть на пассивной панели if (!AExist && PExist) ProcessKey(KEY_TAB); if (!AExist && !PExist) ActivePanel->SetCurDir(strNameDir,TRUE); ActivePanel->GoToFile(strNameFile); // всегда обновим заголовок панели, чтобы дать обратную связь, что // Ctrl-F10 обработан ActivePanel->SetTitle(); } }
void GUIwindow::ProcessMSG(UINT imsg, WPARAM wparam, LPARAM lparam) { if (m_vis == false) return; bool mouseDown = 0; switch (imsg) { case WM_MOUSEMOVE: { mouseX = LOWORD(lparam); mouseY = HIWORD(lparam); } break; case WM_LBUTTONDOWN: mouseDown = 1; break; case WM_LBUTTONUP: mouseDown = 0; break; case WM_KEYDOWN: //ProcessKey(wparam, lparam); break; case WM_CHAR: ProcessKey(wparam, lparam); break; case WM_KEYUP: break; default: break; } ProcessMouse(mouseX, mouseY, mouseDown); // process child for (int i = 0; i < m_GUIchild.size(); ++i) m_GUIchild[i]->ProcessMSG(imsg, wparam, lparam); }
void Keyboard::Update( bool bFocus ) { HRESULT hr; DIDEVICEOBJECTDATA rgdod[256]; DWORD dwItems = 256; while (GetDevice()) { dwItems = 256; hr = GetDevice()->GetDeviceData(sizeof(DIDEVICEOBJECTDATA),rgdod,&dwItems,0 ); //0); if (SUCCEEDED(hr)) { for (unsigned int k=0; k < dwItems; k++) { int key = rgdod[k].dwOfs; bool pressed = ((rgdod[k].dwData & 0x80) != 0); ProcessKey(key, pressed); } break; } else { if (hr == DIERR_INPUTLOST || hr == DIERR_NOTACQUIRED) { if (FAILED(hr = GetDevice()->Acquire())) { break; } } else break; } } }
__interrupt void Timer_A0 (void)//100ms { //P2OUT ^= 0x08; // Toggle P2.3 //UartWriteStr("1234567890");// //TACCR0 = 0; ProcessKey(); if((TimerCtrl&0x01)&&(TimerCnt0!=0))//CH0 { TimerCnt0--; } else { TimerCnt0 = 0; } if((TimerCtrl&0x02)&&(XbeeBusy!=0))//CH1 { XbeeBusy--; if(XbeeBusy == 0) ClearRxd(); } if(TimerCtrl&0x04)//CH2 { if(TimerCntRun!=0) { TimerCntRun--; } else { TimerCntRun = 10; // TempFlag |= 0x01;//采集温度传感器-标记 } } if((XbeeBusy==0)&&(RxdState))//判断接收数据完成 { if(RxdCntOld!=RxdCnt) { RxdCntOld = RxdCnt; } else { MsgProcess(); RxdCntOld = 0; RxdCnt = 0; RxdOk = 0; RxdState = 0; } } /*------------------------------------------- if(ActMsgCnt<(ED_Reg[ACT]*100))//Act.Msg----send 10*100*100mS=10SEC { ActMsgCnt ++; } else { ActMsgCnt = 0; ActMsgFlag = 1; // P2OUT ^= 0x08; // Toggle P2.3 } */ /*-------------------------------------------*/ if(InitCnt<HoldReg[rST])//10Second { InitCnt++; } else { AppProcess(); InitCnt = 0; InitFlag = 1; } /*-------------------------------------------*/ }
//============================================================================= int main(int argc, char *argv[]) { printf("INFO: Monster Outrage v %d\n", VERSION); try { InitSDL(); LoadMedia(); InitGame(); bool quit = false; uint ticks = SDL_GetTicks(); while(!quit) { // handle events SDL_Event e; while(SDL_PollEvent(&e) != 0) { if(e.type == SDL_QUIT) quit = true; else if(e.type == SDL_KEYDOWN) { if(e.key.state == SDL_PRESSED) ProcessKey(e.key.keysym.scancode, true); } else if(e.type == SDL_KEYUP) { if(e.key.state == SDL_RELEASED) ProcessKey(e.key.keysym.scancode, false); } else if(e.type == SDL_MOUSEMOTION || e.type == SDL_MOUSEBUTTONDOWN || e.type == SDL_MOUSEBUTTONUP) { SDL_GetMouseState(&cursor_pos.x, &cursor_pos.y); if(e.type == SDL_MOUSEBUTTONDOWN) { if(e.button.state == SDL_PRESSED && e.button.button < MAX_BUTTON) ProcessButton(e.button.button, true); } else if(e.type == SDL_MOUSEBUTTONUP) { if(e.button.state == SDL_RELEASED && e.button.button < MAX_BUTTON) ProcessButton(e.button.button, false); } } } // calculate dt uint new_ticks = SDL_GetTicks(); float dt = float(new_ticks - ticks)/1000.f; ticks = new_ticks; Draw(); Update(dt); UpdateInput(); } CleanGame(); CleanMedia(); CleanSDL(); } catch(cstring err) { printf("%s\nERROR: Read error and press any key to exit.\n", err); _getch(); return 1; } return 0; }
void SyntopReducer::reduce(HadoopPipes::ReduceContext& context) { // NOLINT boost::split(temp_string_components_, context.getInputKey(), boost::is_any_of("_")); float sum = 0; while (context.nextValue()) { sum += HadoopUtils::toFloat(context.getInputValue()); } if (boost::starts_with(temp_string_components_[0], "gamma")) { context.emit(context.getInputKey(), boost::lexical_cast<string>(sum)); } else if (boost::starts_with(temp_string_components_[0], "lhood")) { // sum += GlobalLikelihoodTerm(); sum += GlobalWeightTerm(vars_->nu_.get(), vars_->beta_.get(), params_->alpha_trans(), params_->alpha_top(), params_->finite()); context.emit(context.getInputKey(), boost::lexical_cast<string>(sum)); } else { if (boost::starts_with(temp_string_components_[2], "~")) { // cout << "optimizing" << endl; Optimize(); Emit(&output); StringMap::const_iterator last = (output).end(); for (StringMap::const_iterator itr = (output).begin(); itr != last; itr++) { // cout << itr->first << "\t" << itr->second << endl; context.emit(itr->first, boost::lexical_cast<string>(itr->second)); } output.clear(); last = (output).end(); for (StringMap::const_iterator itr = (output).begin(); itr != last; itr++) { // cout << "output is\t" << itr->first << "\t" << itr->second << endl; // context.emit(itr->first, boost::lexical_cast<string>(itr->second)); } index = boost::lexical_cast<int>(temp_string_components_[1]); vars_ = new VariationalParameters(*params_); display_matrix(vars_->tau_est_top_.get(), "tau_est_top is\n"); display_vector(vars_->tau_est_bottom_.get(), "tau_est_bottom is\n"); tau_coordinate_ = -1; nu_coordinate_ = -1; } else { ProcessKey(context.getInputKey(), sum); // cout << "processing\t" << context.getInputKey() << "\t" << sum << endl; } /* if (index == -1) { index = boost::lexical_cast<double>(temp_string_components_[1]); // reduceContext = context; } else { if (index != boost::lexical_cast<int>(temp_string_components_[1])) { Optimize(); Emit(&output); StringMap::const_iterator last = (output).end(); for (StringMap::const_iterator itr = (output).begin(); itr != last; itr++) { // cout << itr->first << "\t" << itr->second << endl; context.emit(itr->first, boost::lexical_cast<string>(itr->second)); } output.clear(); index = boost::lexical_cast<int>(temp_string_components_[1]); vars_ = new VariationalParameters(*params_); tau_coordinate_ = -1; nu_coordinate_ = -1; } } */ } // } }
int QuickView::ProcessKey(const Manager::Key& Key) { int LocalKey=Key.FarKey(); if (!IsVisible()) return FALSE; if (LocalKey>=KEY_RCTRL0 && LocalKey<=KEY_RCTRL9) { ExecShortcutFolder(LocalKey-KEY_RCTRL0); return TRUE; } if (LocalKey == KEY_F1) { Help::create(L"QViewPanel"); return TRUE; } if (LocalKey==KEY_F3 || LocalKey==KEY_NUMPAD5 || LocalKey == KEY_SHIFTNUMPAD5) { auto AnotherPanel = Parent()->GetAnotherPanel(this); if (AnotherPanel->GetType()==FILE_PANEL) AnotherPanel->ProcessKey(Manager::Key(KEY_F3)); return TRUE; } if (LocalKey==KEY_ADD || LocalKey==KEY_SUBTRACT) { auto AnotherPanel = Parent()->GetAnotherPanel(this); if (AnotherPanel->GetType()==FILE_PANEL) AnotherPanel->ProcessKey(Manager::Key(LocalKey==KEY_ADD?KEY_DOWN:KEY_UP)); return TRUE; } if (QView && !Directory && LocalKey>=256) { int ret = QView->ProcessKey(Manager::Key(LocalKey)); if (LocalKey == KEY_F2 || LocalKey == KEY_SHIFTF2 || LocalKey == KEY_F4 || LocalKey == KEY_SHIFTF4 || LocalKey == KEY_F8 || LocalKey == KEY_SHIFTF8) { DynamicUpdateKeyBar(); Parent()->GetKeybar().Redraw(); } if (LocalKey == KEY_F7 || LocalKey == KEY_SHIFTF7) { //__int64 Pos; //int Length; //DWORD Flags; //QView->GetSelectedParam(Pos,Length,Flags); Redraw(); Parent()->GetAnotherPanel(this)->Redraw(); //QView->SelectText(Pos,Length,Flags|1); } return ret; } return FALSE; }
intptr_t VMenu2::VMenu2DlgProc(Dialog* Dlg, intptr_t Msg, intptr_t Param1, void* Param2) { _DIALOG(CleverSysLog CL(L"VMenu2::VMenu2DlgProc()")); _DIALOG(SysLog(L"hDlg=%p, Msg=%s, Param1=%d (0x%08X), Param2=%d (0x%08X)",Dlg,_DLGMSG_ToName(Msg),Param1,Param1,Param2,Param2)); switch(Msg) { case DN_CTLCOLORDIALOG: { FarColor *color=(FarColor*)Param2; *color=colors::PaletteColorToFarColor(COL_MENUBOX); return true; } case DN_CTLCOLORDLGLIST: { FarDialogItemColors *colors=(FarDialogItemColors*)Param2; PaletteColors MenuColors[]= { COL_MENUBOX, // подложка COL_MENUBOX, // рамка COL_MENUTITLE, // заголовок - верхний и нижний COL_MENUTEXT, // Текст пункта COL_MENUHIGHLIGHT, // HotKey COL_MENUBOX, // separator COL_MENUSELECTEDTEXT, // Выбранный COL_MENUSELECTEDHIGHLIGHT, // Выбранный - HotKey COL_MENUSCROLLBAR, // ScrollBar COL_MENUDISABLEDTEXT, // Disabled COL_MENUARROWS, // Arrow COL_MENUARROWSSELECTED, // Выбранный - Arrow COL_MENUARROWSDISABLED, // Arrow Disabled COL_MENUGRAYTEXT, // "серый" COL_MENUSELECTEDGRAYTEXT, // выбранный "серый" }; for(size_t i=0; i<colors->ColorsCount && i<ARRAYSIZE(MenuColors); ++i) colors->Colors[i]=colors::PaletteColorToFarColor(MenuColors[i]); return true; } case DN_CLOSE: if(!ForceClosing && !Param1 && GetItemFlags() & (LIF_GRAYED|LIF_DISABLE)) return false; if(Call(Msg, (void*)(Param1<0 ? Param1 : GetSelectPos()))) return false; break; case DN_LISTHOTKEY: if (!Call(Msg, Param2)) Dlg->SendMessage( DM_CLOSE, -1, nullptr); break; case DN_DRAWDLGITEMDONE: //??? case DN_DRAWDIALOGDONE: if(DefRec.EventType) { INPUT_RECORD rec=DefRec; ClearStruct(DefRec); if(!Call(DN_INPUT, &rec)) Dlg->SendMessage( DM_KEY, 1, &rec); } break; case DN_CONTROLINPUT: case DN_INPUT: if(!cancel) { if (Msg==DN_CONTROLINPUT) { auto ir = static_cast<INPUT_RECORD*>(Param2); int key=InputRecordToKey(ir); if(ListBox().ProcessFilterKey(key)) return true; } if(Call(DN_INPUT, Param2)) return Msg==DN_CONTROLINPUT; } break; case DN_LISTCHANGE: case DN_ENTERIDLE: if(!cancel) { if(Call(Msg, Param2)) return false; } break; case DN_RESIZECONSOLE: if(!cancel) { INPUT_RECORD ReadRec={WINDOW_BUFFER_SIZE_EVENT}; ReadRec.Event.WindowBufferSizeEvent.dwSize=*(COORD*)Param2; if(Call(DN_INPUT, &ReadRec)) return false; else Resize(); } break; default: if(Global->CloseFARMenu) ProcessKey(Manager::Key(KEY_ESC)); break; } return Dlg->DefProc(Msg, Param1, Param2); }
/**----------------------------------------------------------------------------- * 입력 처리 *------------------------------------------------------------------------------ */ void ProcessInputs( void ) { ProcessMouse(); ProcessKey(); }
UPnpCDSExtensionResults *UPnpCDSExtension::Browse( UPnpCDSRequest *pRequest ) { // -=>TODO: Need to add Filter & Sorting Support. // -=>TODO: Need to add Sub-Folder/Category Support!!!!! if (!IsBrowseRequestForUs( pRequest )) return( NULL ); // ---------------------------------------------------------------------- // Parse out request object's path // ---------------------------------------------------------------------- QStringList idPath = QStringList::split( "/", pRequest->m_sObjectId.section('=',0,0) ); QString key = pRequest->m_sObjectId.section('=',1); if (idPath.count() == 0) return( NULL ); // ---------------------------------------------------------------------- // Process based on location in hierarchy // ---------------------------------------------------------------------- UPnpCDSExtensionResults *pResults = new UPnpCDSExtensionResults(); if (pResults != NULL) { if (key) idPath.last().append(QString("=%1").arg(key)); else { if (pRequest->m_sObjectId.contains("item")) { idPath = QStringList::split( " ", idPath[idPath.count() - 2] ); idPath = QStringList::split( "?", idPath[0] ); idPath = idPath[0]; if (idPath[0].startsWith("Id")) idPath[0] = QString("item=%1").arg(idPath[0].right(idPath[0].length() - 2)); } } QString sLast = idPath.last(); pRequest->m_sParentId = pRequest->m_sObjectId; if (sLast == m_sExtensionId ) { return( ProcessRoot ( pRequest, pResults, idPath )); } if (sLast == "0" ) { return( ProcessAll ( pRequest, pResults, idPath )); } if (sLast.startsWith( "key" , true )) { return( ProcessKey ( pRequest, pResults, idPath )); } if (sLast.startsWith( "item", true )) { return( ProcessItem ( pRequest, pResults, idPath )); } int nNodeIdx = sLast.toInt(); if ((nNodeIdx > 0) && (nNodeIdx < GetRootCount())) return( ProcessContainer( pRequest, pResults, nNodeIdx, idPath )); pResults->m_eErrorCode = UPnPResult_CDS_NoSuchObject; pResults->m_sErrorDesc = ""; } return( pResults ); }
static int MainProcess( const string& EditName, const string& ViewName, const string& DestName1, const string& DestName2, int StartLine, int StartChar ) { SCOPED_ACTION(ChangePriority)(THREAD_PRIORITY_NORMAL); FarColor InitAttributes={}; console.GetTextAttributes(InitAttributes); SetRealColor(colors::PaletteColorToFarColor(COL_COMMANDLINEUSERSCREEN)); string ename(EditName),vname(ViewName), apanel(DestName1),ppanel(DestName2); if (ConfigProvider().ShowProblems()) { ename.clear(); vname.clear(); StartLine = StartChar = -1; apanel = Global->Opt->ProfilePath; ppanel = Global->Opt->LocalProfilePath; } if (!ename.empty() || !vname.empty()) { Global->OnlyEditorViewerUsed = true; _tran(SysLog(L"create dummy panels")); Global->CtrlObject->CreateDummyFilePanels(); Global->WindowManager->PluginCommit(); Global->CtrlObject->Plugins->LoadPlugins(); Global->CtrlObject->Macro.LoadMacros(true, true); if (!ename.empty()) { const auto ShellEditor = FileEditor::create(ename, CP_DEFAULT, FFILEEDIT_CANNEWFILE | FFILEEDIT_ENABLEF6, StartLine, StartChar); _tran(SysLog(L"make shelleditor %p",ShellEditor)); if (!ShellEditor->GetExitCode()) // ???????????? { Global->WindowManager->ExitMainLoop(0); } } // TODO: Этот else убрать только после разборок с возможностью задавать несколько /e и /v в ком.строке else if (!vname.empty()) { const auto ShellViewer = FileViewer::create(vname, true); if (!ShellViewer->GetExitCode()) { Global->WindowManager->ExitMainLoop(0); } _tran(SysLog(L"make shellviewer, %p",ShellViewer)); } Global->WindowManager->EnterMainLoop(); } else { int DirCount=0; // воспользуемся тем, что ControlObject::Init() создает панели // юзая Global->Opt->* const auto& SetupPanel = [&](bool active) { ++DirCount; string strPath = active? apanel : ppanel; if (os::fs::is_file(strPath)) { CutToParent(strPath); } bool Root = false; const auto Type = ParsePath(strPath, nullptr, &Root); if(Root && (Type == root_type::drive_letter || Type == root_type::unc_drive_letter || Type == root_type::volume)) { AddEndSlash(strPath); } auto& CurrentPanelOptions = (Global->Opt->LeftFocus == active)? Global->Opt->LeftPanel : Global->Opt->RightPanel; CurrentPanelOptions.m_Type = static_cast<int>(panel_type::FILE_PANEL); // сменим моду панели CurrentPanelOptions.Visible = true; // и включим ее CurrentPanelOptions.Folder = strPath; }; if (!apanel.empty()) { SetupPanel(true); if (!ppanel.empty()) { SetupPanel(false); } } // теперь все готово - создаем панели! Global->CtrlObject->Init(DirCount); // а теперь "провалимся" в каталог или хост-файл (если получится ;-) if (!apanel.empty()) // активная панель { const auto ActivePanel = Global->CtrlObject->Cp()->ActivePanel(); const auto AnotherPanel = Global->CtrlObject->Cp()->PassivePanel(); if (!ppanel.empty()) // пассивная панель { FarChDir(AnotherPanel->GetCurDir()); if (IsPluginPrefixPath(ppanel)) { AnotherPanel->Parent()->SetActivePanel(AnotherPanel); execute_info Info; Info.Command = ppanel; Global->CtrlObject->CmdLine()->ExecString(Info); ActivePanel->Parent()->SetActivePanel(ActivePanel); } else { const auto strPath = PointToName(ppanel); if (!strPath.empty()) { if (AnotherPanel->GoToFile(strPath)) AnotherPanel->ProcessKey(Manager::Key(KEY_CTRLPGDN)); } } } FarChDir(ActivePanel->GetCurDir()); if (IsPluginPrefixPath(apanel)) { execute_info Info; Info.Command = apanel; Global->CtrlObject->CmdLine()->ExecString(Info); } else { const auto strPath = PointToName(apanel); if (!strPath.empty()) { if (ActivePanel->GoToFile(strPath)) ActivePanel->ProcessKey(Manager::Key(KEY_CTRLPGDN)); } } // !!! ВНИМАНИЕ !!! // Сначала редравим пассивную панель, а потом активную! AnotherPanel->Redraw(); ActivePanel->Redraw(); } Global->WindowManager->EnterMainLoop(); } TreeList::FlushCache(); // очистим за собой! SetScreen(0,0,ScrX,ScrY,L' ',colors::PaletteColorToFarColor(COL_COMMANDLINEUSERSCREEN)); console.SetTextAttributes(InitAttributes); Global->ScrBuf->ResetLockCount(); Global->ScrBuf->Flush(); return 0; }
/* InputEvent::processKey(KeyID); Process keys normally brought in by hardware or keyboard presses Future will also allow for long and double click presses... Return = We had a valid key (even if nothing happens because of Bounce) */ bool InputEvents::processKey(unsigned key_code) { return ProcessKey(getModeID(), key_code); }