main (int argc, char *argv[]) { int done; int status; char buffer[256]; char responce[256]; char *bptr; char *cmdline; int buflen = 1; int firstentry = 1; int chars; char cmdchar; if (argc < 2) { fprintf(stdout,"usage: %s <devicename> (i.e. /dev/term/b)\n", argv[0]); exit(1); } verbose = 0; /* initialize Serial port to Gilson */ Portfd = initPort(argv[1],PATIENT_TABLE); /* need this info for isocenter calcualtions */ SoftLimits(); if (argc > 2) { cmdchar = argv[2][0]; /* printf("2nd arg: '%s'\n",argv[2]); */ if (cmdchar != '-') { status = 0; switch( toupper(cmdchar) ) { case 'M': MoveAxis(&(argv[2][1])); /* get status and clear up error bits */ Send_Cmd(statusCmd, responce); XYPos(X_AXIS); XYPos(Y_AXIS); break; case 'X': XYPos(X_AXIS); break; case 'Y': XYPos(Y_AXIS); break; case 'S': Status(); break; default: status = -1; break; } fflush(stdout); return(status); } else if (strcmp(argv[2],"-debug") == 0) { verbose = 1; } } if (verbose) fprintf(stdout,"Init Device: %s\n",argv[1]); if (verbose) PrintSet(); /* fprintf(stdout,"%lf %lf %lf %lf %lf %lf %lf %lf \n",xyMinMax[0],xyMinMax[1], xyMinMax[2],xyMinMax[3],xyMinMax[4],xyMinMax[5], MaxXYSpeed[0],MaxXYSpeed[1]); */ fflush(stdout); done = 1; while (done) { if (verbose) { fprintf(stdout,"M)ove Axis (MX+100,MY-100), S)tatus \n"); fprintf(stdout,"\nCmds: "); } else if (buflen) { if (!firstentry) fprintf(stdout,"Cmds:\n"); /* The GUI expects this prompt, verbatim */ else firstentry = 0; } /**********/ fflush(stdout); bptr = gets(buffer); buflen = strlen(buffer); if (bptr == NULL) break; switch( toupper(buffer[0]) ) { case 'M': MoveAxis(&buffer[1]); break; case 'S': Status(); break; case 'X': XYPos(X_AXIS); break; case 'Y': XYPos(Y_AXIS); break; case 'Q': done = 0; return; break; } } }
//________________________________________________________________ Bool_t KVCanvas::HandleKey(Int_t , Int_t py) { // Handle keys // Info("HandleKey","key pressed : %d %d",px,py); TObject* obj = 0; TIter next(GetListOfPrimitives()); if (!fEnabledShortcuts) return kTRUE; if (fSelected->InheritsFrom("TFrame")) fSelected = FindHisto(); if (fSelected->InheritsFrom("TH2")) fSelected = FindHisto(); if (!fSelected) return kTRUE; switch ((EKeySym)py) { case kKey_F1: break; case kKey_F2: break; case kKey_F3: break; case kKey_F4: break; case kKey_F5: break; case kKey_F6: break; case kKey_F7: break; case kKey_F8: break; case kKey_F9: SetLogx(!fLogx); Modified(); Update(); break; case kKey_F10: SetLogy(!fLogy); Modified(); Update(); break; case kKey_F11: SetLogz(!fLogz); Modified(); Update(); break; case kKey_F12: if (fSelected->InheritsFrom("TH1")) { gPad->cd(); ((TH1*)fSelected)->GetXaxis()->UnZoom(); ((TH1*)fSelected)->GetYaxis()->UnZoom(); Modified(); Update(); } else if (fSelected->InheritsFrom("TAxis")) { ((TAxis*)fSelected)->UnZoom(); Modified(); Update(); } break; case kKey_a: break; case kKey_b: break; case kKey_c: if (gCopyObject) { gCopyObject->Delete(); gCopyObject = 0; } if (fSelected) gCopyObject = fSelected->Clone(); // gCopyObject = fSelected; break; case kKey_d: if (fSelected->InheritsFrom("TF1")) { TH1* hh = 0; if ((hh = FindHisto())) hh->GetListOfFunctions()->Remove(fSelected); } else GetListOfPrimitives()->Remove(fSelected); Modified(); Update(); break; case kKey_e: GetCanvasImp()->ShowEditor(!GetCanvasImp()->HasEditor()); break; case kKey_f: if (fSelected->InheritsFrom("TH1"))((TH1*)fSelected)->FitPanel(); break; case kKey_g: if (GetGridx() && GetGridy()) { SetGrid(0, 0); while ((obj = next())) { if (obj->InheritsFrom(TPad::Class())) { ((TPad*)obj)->SetGrid(0, 0); } } } else { SetGrid(); while ((obj = next())) { if (obj->InheritsFrom(TPad::Class())) { ((TPad*)obj)->SetGrid(); } } } Modified(); Update(); break; case kKey_i: ShowShortcutsInfos(); break; case kKey_j: fJPressed = kTRUE; return kTRUE; break; case kKey_l: if (fSelected->InheritsFrom("TH2")) SetLogz(!fLogz); else if (fSelected->InheritsFrom("TH1")) SetLogy(!fLogy); Modified(); Update(); break; case kKey_n: if (fSelected->InheritsFrom("TH1")) { ((TH1*)fSelected)->Sumw2(); ((TH1*)fSelected)->Scale(1. / ((TH1*)fSelected)->Integral()); } Modified(); Update(); break; case kKey_p: fPPressed = kTRUE; return kTRUE; break; // case kKey_q: // Close(); // return kTRUE; // break; case kKey_r: if (ExpandFunctionRange()) { Modified(); Update(); } break; case kKey_s: SaveCanvasAs(); break; case kKey_t: break; case kKey_u: Modified(); Update(); break; case kKey_v: if (gCopyObject) { cd(); Modified(); Update(); TString option = ""; if (FindHisto()) option += "same"; gCopyObject->Draw(option.Data()); Modified(); Update(); gCopyObject = 0; } break; case kKey_w: fAgeOfEmpire = !fAgeOfEmpire; break; case kKey_x: if (fPPressed && fSelected->InheritsFrom("TH2")) ProfileX((TH2*)fSelected); if (fJPressed && fSelected->InheritsFrom("TH2")) ProjectionX((TH2*)fSelected); if (!fPPressed && !fJPressed) { gCopyObject = fSelected; GetListOfPrimitives()->Remove(gCopyObject); Modified(); Update(); } break; case kKey_y: if (fPPressed && fSelected->InheritsFrom("TH2")) ProfileY((TH2*)fSelected); if (fJPressed && fSelected->InheritsFrom("TH2")) ProjectionY((TH2*)fSelected); break; case kKey_Left: if (fSelected->InheritsFrom("TAxis")) MoveAxis((TAxis*)fSelected, -1); else if (fSelected->InheritsFrom("TH1")) MoveAxis(FindHisto()->GetXaxis(), -1); break; case kKey_Down: if (fSelected->InheritsFrom("TAxis")) MoveAxis((TAxis*)fSelected, -1); else if (fSelected->InheritsFrom("TH1")) MoveAxis(FindHisto()->GetYaxis(), -1); break; case kKey_Right: if (fSelected->InheritsFrom("TAxis")) MoveAxis((TAxis*)fSelected, 1); else if (fSelected->InheritsFrom("TH1")) MoveAxis(FindHisto()->GetXaxis(), 1); break; case kKey_Up: if (fSelected->InheritsFrom("TAxis")) MoveAxis((TAxis*)fSelected, 1); else if (fSelected->InheritsFrom("TH1")) MoveAxis(FindHisto()->GetYaxis(), 1); break; case kKey_Plus: if (fSelected->InheritsFrom("TH2")) { ((TH2*)fSelected)->SetMinimum(((TH1*)fSelected)->GetMinimum() + 1); Modified(); Update(); } else if (fSelected->InheritsFrom("TF1")) { ((TF1*)fSelected)->SetNpx(((TF1*)fSelected)->GetNpx() + 50); Modified(); Update(); } else if (fSelected->InheritsFrom("TH1")) { TObject* obj = 0; TIter it(((TH1*)fSelected)->GetListOfFunctions()); while ((obj = it())) { ((TF1*)obj)->SetNpx(((TF1*)obj)->GetNpx() + 50); } Modified(); Update(); } break; case kKey_Minus: if (fSelected->InheritsFrom("TH2")) { if (((TH1*)fSelected)->GetMinimum() > 0)((TH2*)fSelected)->SetMinimum(((TH1*)fSelected)->GetMinimum() - 1); Modified(); Update(); } else if (fSelected->InheritsFrom("TF1")) { ((TF1*)fSelected)->SetNpx(((TF1*)fSelected)->GetNpx() - 50); Modified(); Update(); } else if (fSelected->InheritsFrom("TH1")) { TObject* obj = 0; TIter it(((TH1*)fSelected)->GetListOfFunctions()); while ((obj = it()))((TF1*)obj)->SetNpx(((TF1*)obj)->GetNpx() - 50); Modified(); Update(); } break; case kKey_Space: break; default: fPPressed = kFALSE; fJPressed = kFALSE; return kTRUE; } fPPressed = kFALSE; fJPressed = kFALSE; return kTRUE; }