//--------------------------------------------------------------------------- void __fastcall TFwCalcMainDlg::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { // Reset key processed flag m_key_processed = false; // Mark key as processed m_key_processed = true; // Process key switch(Key) { default: m_key_processed = false; // Default handler set the processed flag to false break; case VK_BACK: case VK_DELETE: case VK_ESCAPE: m_engine->ProcessKey(Shift, Key); break; case VK_DECIMAL: m_engine->EnterDecimalSeperator(); break; //case VK_ENTER: case VK_RETURN: m_engine->ProcessKey(Shift, Key); break; case VK_ADD: { if(Shift.Contains(ssShift)) { if(m_engine->SignificantDigits < 19) m_engine->SignificantDigits++; } else m_engine->ProcessChar('+'); } break; case VK_SUBTRACT: { if(Shift.Contains(ssShift)) { if(m_engine->SignificantDigits > 0) m_engine->SignificantDigits--; } else m_engine->ProcessChar('-'); } break; case 'h': case 'H': if(Shift.Contains(ssCtrl)) m_engine->SetBaseMode(eBaseHex); else m_key_processed = false; break; case 'o': case 'O': if(Shift.Contains(ssCtrl)) m_engine->SetBaseMode(eBaseOct); else m_key_processed = false; break; case 'd': case 'D': if(Shift.Contains(ssCtrl)) m_engine->SetBaseMode(eBaseDec); else if(Shift.Contains(ssShift)) m_engine->SetTrigMode(eTrigDeg); else m_key_processed = false; break; case 'G': if(Shift.Contains(ssShift)) m_engine->SetTrigMode(eTrigGrad); else m_key_processed = false; break; case 'R': if(Shift.Contains(ssShift)) m_engine->SetTrigMode(eTrigRad); else m_key_processed = false; break; case 'b': case 'B': if(Shift.Contains(ssCtrl)) m_engine->SetBaseMode(eBaseBin); else m_key_processed = false; break; case VK_CONTROL: AssignLayout(LayoutFromShift(Shift)); break; case VK_SHIFT: AssignLayout(LayoutFromShift(Shift)); break; case VK_F1: if(Shift.Contains(ssCtrl) || Shift.Contains(ssShift)) m_engine->Recall(0); else m_engine->Store(0); break; case VK_F2: if(Shift.Contains(ssCtrl) || Shift.Contains(ssShift)) m_engine->Recall(1); else m_engine->Store(1); break; case VK_F3: if(Shift.Contains(ssCtrl) || Shift.Contains(ssShift)) m_engine->Recall(2); else m_engine->Store(2); break; case VK_F4: if(Shift.Contains(ssCtrl) || Shift.Contains(ssShift)) m_engine->Recall(3); else m_engine->Store(3); break; case VK_F5: if(Shift.Contains(ssCtrl) || Shift.Contains(ssShift)) m_engine->Recall(4); else m_engine->Store(4); break; case VK_F6: if(Shift.Contains(ssCtrl) || Shift.Contains(ssShift)) m_engine->Recall(5); else m_engine->Store(5); break; case VK_F7: if(Shift.Contains(ssCtrl) || Shift.Contains(ssShift)) m_engine->Recall(6); else m_engine->Store(6); break; case VK_F8: if(Shift.Contains(ssCtrl) || Shift.Contains(ssShift)) m_engine->Recall(7); else m_engine->Store(7); break; case VK_F9: if(Shift.Contains(ssCtrl) || Shift.Contains(ssShift)) m_engine->Recall(8); else m_engine->Store(8); break; case VK_F10: if(Shift.Contains(ssCtrl) || Shift.Contains(ssShift)) m_engine->Recall(9); else m_engine->Store(9); break; } PaintBox->Invalidate(); }
void __fastcall TTestBedForm::FormKeyDown(TObject *Sender, WORD &Key, System::WideChar &KeyChar, TShiftState Shift) { bool modCtrl = Shift.Contains(ssCtrl); switch(Key) { case vkEscape: // Quit Close(); break; case vkLeft: // Pan left if (modCtrl && test) { b2Vec2 newOrigin(2.0f, 0.0f); test->ShiftOrigin(newOrigin); } else { g_camera.m_center.x -= 0.5f; } break; case vkRight: // Pan right if (modCtrl && test) { b2Vec2 newOrigin(-2.0f, 0.0f); test->ShiftOrigin(newOrigin); } else { g_camera.m_center.x += 0.5f; } break; case vkDown: // Pan down if (modCtrl && test) { b2Vec2 newOrigin(0.0f, 2.0f); test->ShiftOrigin(newOrigin); } else { g_camera.m_center.y -= 0.5f; } break; case vkUp: // Pan up if (modCtrl && test) { b2Vec2 newOrigin(0.0f, -2.0f); test->ShiftOrigin(newOrigin); } else { g_camera.m_center.y += 0.5f; } break; case vkHome: // Reset view g_camera.m_zoom = 1.0f; g_camera.m_center.Set(0.0f, 20.0f); break; case vkSpace: // Launch a bomb. if (test) { test->LaunchBomb(); } break; default: switch (KeyChar) { case 'P': case 'p': // Pause settings.pause = !settings.pause; break; case ' ': // Launch a bomb. if (test) { test->LaunchBomb(); } break; case 'R': case 'r': // Reset test delete test; test = entry->createFcn(); break; default: if (test) { test->Keyboard(static_cast<int>(ToUpper(KeyChar))); } } } }
//--------------------------------------------------------------------------- void __fastcall TOpenGL_Form::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { WORD tk = Key; if (!Shift.Contains(ssShift)) tk += 32; // char buf[31]; unsigned char key = tk; static int gen = 30; static int labels = 1; static int sphere = 1; static int external = 1; static int orphan = 1; static int media = 1; static int group = 0; static int incoming = 0; static int selincoming = 0; static int subincoming = 0; static int outgoing = 0; static int seloutgoing = 0; static int suboutgoing = 0; static int rendstyle = 0; static int drawlinks = 1; static int drawnodes = 1; static int showcenter = 0; static int negativehide = 0; static int selsubtree = 0; static int labelright = 0; static int backcolor = 0; static int keepaspect = 0; hv->idle(0); if (key >= '0' && key <= '9') { gen = key-'0'; if (rendstyle) hv->setGenerationNodeLimit(gen); else hv->setGenerationLinkLimit(gen); } else if (key == '*') { hv->setGenerationNodeLimit(99); hv->setGenerationLinkLimit(99); } else if (key == 'l') { labels++; if (labels >= 3) labels = 0; hv->setLabels(labels); } else if (key == 'L') { labelright = !labelright; hv->setLabelToRight(labelright); } else if (key == 'b') { float labsize = hv->getLabelSize(); // fprintf(stderr, "labsize %f\n", labsize); --labsize; hv->setLabelSize(labsize); } else if (key == 'B') { float labsize = hv->getLabelSize(); // fprintf(stderr, "labsize %f\n", labsize); ++labsize; hv->setLabelSize(labsize); } else if (key == 's') { sphere = !(sphere); hv->setSphere(sphere); } else if (key == 'e') { external = !(external); hv->setEnableGroup(1, "external", external); } else if (key == 'o') { orphan = !(orphan); hv->setEnableGroup(1, "orphan", orphan); } else if (key == 'i') { incoming = !(incoming); hv->setDrawBackTo("HV_TOPNODE", incoming, 1); } else if (key == 'j') { selincoming = !(selincoming); hv->setDrawBackTo(prevsel, selincoming, 1); } else if (key == 'k') { subincoming = !(subincoming); hv->setDrawBackTo(prevsel, subincoming, 0); } else if (key == 'u') { outgoing = !(outgoing); hv->setDrawBackFrom("HV_TOPNODE", outgoing, 1); } else if (key == 'v') { seloutgoing = !(seloutgoing); hv->setDrawBackFrom(prevsel, seloutgoing, 1); } else if (key == 'w') { suboutgoing = !(suboutgoing); hv->setDrawBackFrom(prevsel, suboutgoing, 0); } else if (key == 'S') { selsubtree = !(selsubtree); hv->setSelectedSubtree(prevsel, selsubtree); } else if (key == 'c') { hv->gotoCenterNode(HV_ANIMATE); } else if (key == 'C') { showcenter = !(showcenter); hv->setCenterShow(showcenter); } else if (key == 'r') { rendstyle = !(rendstyle); } else if (key == 'R') { backcolor++; if (backcolor >= 3) backcolor = 0; if (backcolor == 0) { hv->setColorBackground(1.0, 1.0, 1.0); hv->setColorSphere(.89, .7, .6); hv->setColorLabel(0.0, 0.0, 0.0); } else if (backcolor == 1) { hv->setColorBackground(0.5, 0.5, 0.5); hv->setColorSphere(.5, .4, .3); hv->setColorLabel(0.0, 0.0, 0.0); } else { hv->setColorBackground(0.0, 0.0, 0.0); hv->setColorSphere(.25, .15, .1); hv->setColorLabel(1.0, 1.0, 1.0); } } else if (key == 'N') { drawlinks = !(drawlinks); hv->setDrawLinks(drawlinks); } else if (key == 'n') { drawnodes = !(drawnodes); hv->setDrawNodes(drawnodes); } else if (key == 'h') { negativehide = !(negativehide); hv->setNegativeHide(negativehide); // } else if (key == 'f') { // char buf[1024]; // if (gets(buf)) // hv->gotoNode(buf, HV_ANIMATE); } else if (key == 'K') { keepaspect = !(keepaspect); hv->setKeepAspect(keepaspect); } else if (key == 'm') { media = !(media); hv->setEnableGroup(0, "image", media); hv->setEnableGroup(0, "text", media); hv->setEnableGroup(0, "application", media); hv->setEnableGroup(0, "audio", media); hv->setEnableGroup(0, "audio", media); hv->setEnableGroup(0, "video", media); hv->setEnableGroup(0, "other", media); // hv->newLayout(NULL); } else if (key == 'g') { group = !(group); hv->setGroupKey(group); } hv->redraw(); // Close(); }
bool __fastcall TUI_ControlObjectAdd::Start(TShiftState Shift) { if (Shift==ssRBOnly){ ExecCommand(COMMAND_SHOWCONTEXTMENU,OBJCLASS_SCENEOBJECT); return false;} TfraObject* fraObject = (TfraObject*)parent_tool->pFrame; VERIFY(fraObject); Fvector p,n; if(!LUI->PickGround(p,UI->m_CurrentRStart,UI->m_CurrentRNorm,1,&n)) return false; { // pick already executed (see top) ESceneObjectTools* ot = dynamic_cast<ESceneObjectTools*>(parent_tool); LPCSTR N; if (ot->IsAppendRandomActive()&&ot->m_AppendRandomObjects.size()){ N = ot->m_AppendRandomObjects[Random.randI(ot->m_AppendRandomObjects.size())].c_str(); }else{ N = ((TfraObject*)parent_tool->pFrame)->Current(); if(!N){ ELog.DlgMsg(mtInformation,"Nothing selected."); return false; } } string256 namebuffer; Scene->GenObjectName(OBJCLASS_SCENEOBJECT, namebuffer, N); CSceneObject *obj = xr_new<CSceneObject>((LPVOID)0,namebuffer); CEditableObject* ref = obj->SetReference(N); if (!ref){ ELog.DlgMsg(mtError,"TUI_ControlObjectAdd:: Can't load reference object."); xr_delete(obj); return false; } /* if (ref->IsDynamic()){ ELog.DlgMsg(mtError,"TUI_ControlObjectAdd:: Can't assign dynamic object."); xr_delete(obj); return false; } */ if (ot->IsAppendRandomActive()){ Fvector S; if (ot->IsAppendRandomRotationActive()){ Fvector p; p.set( Random.randF(ot->m_AppendRandomMinRotation.x,ot->m_AppendRandomMaxRotation.x), Random.randF(ot->m_AppendRandomMinRotation.y,ot->m_AppendRandomMaxRotation.y), Random.randF(ot->m_AppendRandomMinRotation.z,ot->m_AppendRandomMaxRotation.z)); obj->PRotation = p; } if (ot->IsAppendRandomScaleActive()){ Fvector s; if (ot->IsAppendRandomScaleProportional()){ s.x = Random.randF(ot->m_AppendRandomMinScale.x,ot->m_AppendRandomMaxScale.x); s.set (s.x,s.x,s.x); }else{ s.set( Random.randF(ot->m_AppendRandomMinScale.x,ot->m_AppendRandomMaxScale.x), Random.randF(ot->m_AppendRandomMinScale.y,ot->m_AppendRandomMaxScale.y), Random.randF(ot->m_AppendRandomMinScale.z,ot->m_AppendRandomMaxScale.z)); } obj->PScale = s; } } obj->MoveTo(p,n); Scene->SelectObjects(false,OBJCLASS_SCENEOBJECT); Scene->AppendObject( obj ); if (Shift.Contains(ssCtrl)) ExecCommand(COMMAND_SHOW_PROPERTIES); if (!Shift.Contains(ssAlt)) ResetActionToSelect(); } return false; }