void __fastcall TEQWindowDialog::EQBandwidthKnobMouseMove(TObject *Sender,
      TShiftState Shift, int X, int Y)
{
  int KnobNr;
  char tempText[32];
  int ObjectNr;
  union mbn_data data;

  if (Shift.Contains(ssLeft))
  {
    strcpy(tempText, ((TKnob *)Sender)->Name.c_str());
    sscanf(tempText, "EQ%dBandwidthKnob", &KnobNr);
    KnobNr--;

    ObjectNr = 1050+(KnobNr*7);

    int Position = ((TKnob *)Sender)->GetPositionFromXY(X,Y);
    data.Float = ((Position*9.9)/1023)+0.1;

    mbn_handler *mbn = ((TAxumSuperModuleForm *)Owner)->mbn;
    mbnUpdateSensorData(mbn, ObjectNr, data);
  }
}
Example #2
0
bool __fastcall TUI_ControlShapeAdd::Start(TShiftState Shift)
{
	TfraShape* F 		= (TfraShape*)parent_tool->pFrame;
    if (F->ebAttachShape->Down){
		CEditShape* from = dynamic_cast<CEditShape*>(Scene->RayPickObject(UI->ZFar(),UI->m_CurrentRStart, UI->m_CurrentRNorm, OBJCLASS_SHAPE, 0, 0));
        if (from){
            ObjectList lst;
            int cnt 		= Scene->GetQueryObjects(lst,OBJCLASS_SHAPE,1,1,0);
            if (1!=cnt)		ELog.DlgMsg(mtError,"Select one shape.");
            else{
                CEditShape* base = dynamic_cast<CEditShape*>(lst.back()); R_ASSERT(base);
                if (base!=from){
	                base->Attach(from);
    	            if (!Shift.Contains(ssAlt)){
        	            F->ebAttachShape->Down 	= false;
            	        ResetActionToSelect		();
                	}
                }
            }
        }
    }else
	    DefaultAddObject(Shift,0,AfterAppendCallback);
    return false;
}
Example #3
0
/*-----------------------------------------------------------------*/
void __fastcall TFixeinzugForm::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
{
    switch (Key) {
        case VK_SPACE: {
            DeleteCursor();
            DeleteRange();
            short old = einzug[scrollx+cx];
            if (old==cy+1) einzug[scrollx+cx] = 0;
            else einzug[scrollx+cx] = short(cy+1);
            CalcRange();
            if (old!=0) {
                pbFixeinzug->Canvas->Pen->Color = clBtnFace;
                pbFixeinzug->Canvas->Brush->Color = clBtnFace;
                int x, y;
                if (frm->righttoleft) x = (maxx-cx-1)*dx;
                else x = cx*dx;
                if (frm->toptobottom) y = (old-1)*dy;
                else y = (maxy-old)*dy;
                pbFixeinzug->Canvas->Rectangle (x+2, y+2, x+dx-1, y+dy-1);
            }
            DrawData(pbFixeinzug, cx);
            DrawRange();
            CurMove();
            DrawCursor();
            changed = true;
            break;
        }
        case VK_LEFT:
            if (Shift.Contains(ssCtrl) && Shift.Contains(ssAlt)) {
                if (frm->righttoleft) CurDirRight();
                else CurDirLeft();
                break;
            }
            if (frm->righttoleft) CurRight(Shift.Contains(ssCtrl));
            else CurLeft (Shift.Contains(ssCtrl));
            break;
        case VK_RIGHT:
            if (Shift.Contains(ssCtrl) && Shift.Contains(ssAlt)) {
                if (frm->righttoleft) CurDirLeft();
                else CurDirRight();
                break;
            }
            if (frm->righttoleft) CurLeft(Shift.Contains(ssCtrl));
            else CurRight (Shift.Contains(ssCtrl));
            break;
        case VK_UP:
            if (Shift.Contains(ssCtrl) && Shift.Contains(ssAlt)) {
                if (frm->toptobottom) CurDirDown();
                else CurDirUp();
                break;
            }
            if (frm->toptobottom) CurDown (Shift.Contains(ssCtrl));
            else CurUp (Shift.Contains(ssCtrl));
            break;
        case VK_DOWN:
            if (Shift.Contains(ssCtrl) && Shift.Contains(ssAlt)) {
                if (frm->toptobottom) CurDirUp();
                else CurDirDown();
                break;
            }
            if (frm->toptobottom) CurUp (Shift.Contains(ssCtrl));
            else CurDown (Shift.Contains(ssCtrl));
            break;
    }
}
Example #4
0
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{
  float auxf;
  TColor C;
  char aux[20];

  if((X >= BM1->Width) || (Y >= BM1->Height) || (X < 0) || (Y < 0))
  {
    return;
  }
  if(Shift.Contains(ssRight	))
  {
    TRect R, R2;
    for(int c1 = 0; c1 < 7; c1++)
    {
      for(int c2 = 0; c2 < 7; c2++)
      {
        int cx, cy;
        cx = X - 3 + c2;
        cy = Y - 3 + c1;
        R = DG1->CellRect(c2,c1);
        R2 = DG2->CellRect(c2,c1);

        auxf = (float)x0 + (float)Foto[cy][cx] / (float)y0;
        if(auxf >= 256)
          DG2->Canvas->Brush->Color = (TColor)0x00FFFFFF;
        else
          DG2->Canvas->Brush->Color = (TColor)(0x00000000 | ((ULONG)auxf)&0x000000FF |
                                                            (((ULONG)auxf) << 8)&0x0000FF00 |
                                                            (((ULONG)auxf) << 16)&0x00FF0000);

        DG2->Canvas->FillRect(R2);
        if((cx == X) && (cy == Y))
          DG1->Canvas->Font->Color = clRed;
        else
          DG1->Canvas->Font->Color = clBlack;
        if(RBH->Checked == true)
          wsprintf(aux, "%04X", Foto[cy][cx]);
        else
          wsprintf(aux, "%05u", Foto[cy][cx]);
        if((cx >= 0) && (cx < BM1->Width) && (cy >= 0) && (cy < BM1->Height))
        {
          DG1->Canvas->TextRect(R, R.left + 1, R.top+1, aux);
        }
        else
        {
          DG1->Canvas->TextRect(DG1->CellRect(c2,c1),1,1, 0);
        }
      }
    }
  }
  PX->Caption = X;
  PY->Caption = Y;
  PP->Caption = Foto[Y][X];
  if(rect == true)
  {
    points[0] = Point(X1,Y1);
    points[1] = Point(X2,Y1);
    points[2] = Point(X2,Y2);
    points[3] = Point(X1,Y2);
    points[4] = Point(X1,Y1);
    PB1->Canvas->Pen->Color = clWhite;
    PB1->Canvas->Pen->Mode = pmXor;
    PB1->Canvas->Polyline(points, 4);
    X2 = X2F = X;
    Y2 = Y2F = Y;
    PX2->Caption = X2;
    PY2->Caption = Y2;
    points[0] = Point(X1,Y1);
    points[1] = Point(X2,Y1);
    points[2] = Point(X2,Y2);
    points[3] = Point(X1,Y2);
    points[4] = Point(X1,Y1);
    PB1->Canvas->Pen->Color = clWhite;
    PB1->Canvas->Pen->Mode = pmXor;
    PB1->Canvas->Polyline(points, 4);
  }
}
Example #5
0
// ---------------------------------------------------------------------------
//
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) {
	String code;
	code = code.sprintf(L"%1x%02x", Shift.ToInt(), Key);
	ExecAction(KeyConf->ReadString(L"key", code, NULL).LowerCase());
	// Key = NULL;
}
Example #6
0
void __fastcall TFormVisual::pnlDrawMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y)
{
	// определ¤етс¤ позици¤ курсора мыши
	int ItoX = Mouse->CursorPos.x - Left - (Width - ClientWidth)/2 - pnlDraw->Left-2;
	int ItoY = Mouse->CursorPos.y  - Top + (Width - ClientWidth)/2 - Height
													+ ClientHeight - pnlDraw->Top-2;
	T2d point;
	point.x = ItoX;
	point.y = ItoY;
	TWork *wPrevSel = VController->selectedWork;
	VController->findSelectedWork(point);
	if (WorkMode<=0)
	{
		if (!VController->selectedWork || VController->selectedWork!=wPrevSel)
			WorkMode = -1;
		else
			WorkMode = 0;
	}
	VController->setNowCoord(ItoX, ItoY);
	VController->calcMoveShift(ItoX, ItoY);

	if(Shift.Contains(ssRight))
	{
//		if (scrolled)
//			scrolled = false;
//		else
		{
			if(!VController->selectedConnection()) // выбрана стрелка
			{
				NPointAdd->Visible = true;
				NWorkPaste->Visible = true;
				NParallel->Visible = false;
				NEdit->Visible = false;
				NAdd->Visible = false;
				NDel->Visible = false;
				NCopy->Visible = false;
				NPaste->Visible = false;
			}
			else if (VController->selectedLink != NULL)
			{
				NPointAdd->Visible = false;
				NWorkPaste->Visible = false;
				NParallel->Visible = true;
				NEdit->Visible = true;
				NAdd->Visible = false;
				NDel->Visible = true;
				NCopy->Visible = false;
				NPaste->Visible = false;
			}
			else
			{
				NPointAdd->Visible = false;
				NWorkPaste->Visible = false;
				NParallel->Visible = true;
				NEdit->Visible = true;
				NAdd->Visible = true;
				NDel->Visible = true;
				NCopy->Visible = true;
				NPaste->Visible = true;
			}
		}
	}
	if(Shift.Contains(ssLeft))
	{
		if(tbStage->Down) // добавление вехи
		{
			miStage->Click();
			tbStage->Down = false;
		}
		else if(tbWork->Down)
		{
			miWork->Click();
			tbWork->Down = false;
		}
		else if(tbPayment->Down)
		{
			miPay->Click();
            tbPayment->Down = false;
		}
		else if(tbLink->Down)
		{
			miLink->Click();
			tbLink->Down = false;
		}
		else if(tbConnect->Down)
		{
			if (VController->selectedWork != NULL || VController->selectedPayment != NULL)
			{
				if (isConnectOrigin)
				{
					// select origin
					connectFirst = VController->selectedWork->ulWorkNum;
					isConnectOrigin = false;
				}
				else
				{
					//select endpoint, make connection
					TDependance *dep=new TDependance;
					dep->ulWork = connectFirst;
					if (Shift.Contains(ssShift))
						dep->bNeedToStart = false;
					else
						dep->bNeedToStart = true;

					VController->selectedWork->WorkDep.push_back(dep);
					if(!VController->Controller->checkWork(VController->khr, VController->selectedWork)
					&& (VController->Controller->getWorkByNum(VController->khr, connectFirst)))
					{
						VController->selectedWork->WorkDep.pop_back();
						ShowMessage("—в¤зи некорректны! ");
					}
					else
					{
						bool correct = true;
						for (int i=0; i < VController->selectedWork->WorkDep.size() - 1; i++)
						{
							if (VController->selectedWork->WorkDep[i]->ulWork == connectFirst)
								correct = false;
						}
						if (correct)
						{
							VController->addConnections(VController->khr, VController->selectedWork);
						}
						else
						{
							ShowMessage("—в¤зь уже существует!");
							VController->selectedWork->WorkDep.pop_back();
						}
					}
					tbConnect->Down = false;
					isConnectOrigin = true;
					connectFirst = 0;
					VController->cleanSelected();
				}
			}
			else if (VController->selectedLink != NULL)
			{
				if (isConnectOrigin)
				{
					// select origin
					connectFirst = VController->selectedLink->ulWorkNum;
					isConnectOrigin = false;
				}
				else if(VController->Model->getLinkByNum(VController->Controller->selectedKHR, connectFirst) == NULL)
				{
					//select endpoint, make connection
					TDependance *dep=new TDependance;
					dep->ulWork = connectFirst;
					if (Shift.Contains(ssShift))
						dep->bNeedToStart = false;
					else
						dep->bNeedToStart = true;

					VController->selectedLink->WorkDep.push_back(dep);

					tbConnect->Down = false;
					isConnectOrigin = true;
					connectFirst = 0;
					VController->Model->addConnections(VController->Controller->selectedKHR,
														 VController->selectedLink);
					VController->cleanSelected();
				}
			}
			else if (VController->selectedStage != NULL)
			{
				if (isConnectOrigin)
				{
					// select origin
					connectFirst = VController->selectedStage->ulStageNum;
					isConnectOrigin = false;
				}
				else if(VController->Model->getLinkByNum(VController->Controller->selectedKHR, connectFirst) == NULL)
				{
					// пока ничего не делаем. не умеем добавл¤ть стрелку в веху
					tbConnect->Down = false;
					isConnectOrigin = true;
					connectFirst = 0;
					VController->cleanSelected();
				}
			}
		}
	}

}
bool TUI_ControlWallmarkAdd::End(TShiftState _Shift)
{
	if (!_Shift.Contains(ssAlt))ResetActionToSelect();
	if (wm_cnt)	    			Scene->UndoSave		();
	return true;
}
void __fastcall TEQWindowDialog::EQWindowMouseMove(TObject *Sender,
      TShiftState Shift, int X, int Y)
{
  mbn_handler *mbn = ((TAxumSuperModuleForm *)Owner)->mbn;

   if (Shift.Contains(ssLeft))
   {

      switch (DragEQ)
      {
         case Band1:
         {
            float Gain;
            int Frequency;
            int ObjectNr;
            union mbn_data data;

            EQWindow->GetGainFreqFromXY(&Gain, &Frequency, X, Y);

            if (EQWindow->GainBand1 != Gain)
            {
              ObjectNr = 1048;
              data.Float = Gain;
              mbnUpdateSensorData(mbn, ObjectNr, data);
            }
            if (EQWindow->FrequencyBand1 != Frequency)
            {
              ObjectNr = 1049;
              data.UInt = Frequency;
              mbnUpdateSensorData(mbn, ObjectNr, data);
            }
         }
         break;
         case Band2:
         {
            float Gain;
            int Frequency;
            int ObjectNr;
            union mbn_data data;

            EQWindow->GetGainFreqFromXY(&Gain, &Frequency, X, Y);

            if (EQWindow->GainBand2 != Gain)
            {
              ObjectNr = 1055;
              data.Float = Gain;
              mbnUpdateSensorData(mbn, ObjectNr, data);
            }
            if (EQWindow->FrequencyBand2 != Frequency)
            {
              ObjectNr = 1056;
              data.UInt = Frequency;
              mbnUpdateSensorData(mbn, ObjectNr, data);
            }
         }
         break;
         case Band3:
         {
            float Gain;
            int Frequency;
            int ObjectNr;
            union mbn_data data;

            EQWindow->GetGainFreqFromXY(&Gain, &Frequency, X, Y);

            if (EQWindow->GainBand3 != Gain)
            {
              ObjectNr = 1062;
              data.Float = Gain;
              mbnUpdateSensorData(mbn, ObjectNr, data);
            }
            if (EQWindow->FrequencyBand3 != Frequency)
            {
              ObjectNr = 1063;
              data.UInt = Frequency;
              mbnUpdateSensorData(mbn, ObjectNr, data);
            }
         }
         break;
         case Band4:
         {
            float Gain;
            int Frequency;
            int ObjectNr;
            union mbn_data data;

            EQWindow->GetGainFreqFromXY(&Gain, &Frequency, X, Y);

            if (EQWindow->GainBand4 != Gain)
            {
              ObjectNr = 1069;
              data.Float = Gain;
              mbnUpdateSensorData(mbn, ObjectNr, data);
            }
            if (EQWindow->FrequencyBand4 != Frequency)
            {
              ObjectNr = 1070;
              data.UInt = Frequency;
              mbnUpdateSensorData(mbn, ObjectNr, data);
            }
         }
         break;
         case Band5:
         {
            float Gain;
            int Frequency;
            int ObjectNr;
            union mbn_data data;

            EQWindow->GetGainFreqFromXY(&Gain, &Frequency, X, Y);

            if (EQWindow->GainBand5 != Gain)
            {
              ObjectNr = 1076;
              data.Float = Gain;
              mbnUpdateSensorData(mbn, ObjectNr, data);
            }
            if (EQWindow->FrequencyBand5 != Frequency)
            {
              ObjectNr = 1077;
              data.UInt = Frequency;
              mbnUpdateSensorData(mbn, ObjectNr, data);
            }
         }
         break;
         case Band6:
         {
            float Gain;
            int Frequency;
            int ObjectNr;
            union mbn_data data;

            EQWindow->GetGainFreqFromXY(&Gain, &Frequency, X, Y);

            if (EQWindow->GainBand6 != Gain)
            {
              ObjectNr = 1083;
              data.Float = Gain;
              mbnUpdateSensorData(mbn, ObjectNr, data);
            }
            if (EQWindow->FrequencyBand6 != Frequency)
            {
              ObjectNr = 1084;
              data.UInt = Frequency;
              mbnUpdateSensorData(mbn, ObjectNr, data);
            }
         }
         break;
      }
   }
}
Example #9
0
            }
        }
        mysql_free_result(result);
    }
Example #10
0
bool TUI_ControlAIMapNodeAdd::End(TShiftState _Shift)
{
	if (!_Shift.Contains(ssAlt)) ResetActionToSelect();
    if (append_nodes) Scene->UndoSave();
	return true;
}
Example #11
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 #12
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();
}
Example #13
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 #14
0
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;
}