Example #1
0
//---------------------------------------------------------------------------
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();
}
Example #2
0
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)));
      }
    }
  }
}
Example #3
0
//---------------------------------------------------------------------------
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;
}