00542 {
00543 mInspectionPane = new Window(wnd,x,y,w,h);
00544 Window* pane = mInspectionPane;
00545 pane->ScaleTo(wnd);
00546
00547
00548 GroupBox* gB = new GroupBox(pane,0,0,406,h,"Event playback");
00549 SetAsBox(gB);
00550
00551 mVideoPlayer = new VideoJpgPlayer(gB,6,gB->H()-324,392,320, mVideos[0]);
00552 mVideoPlayer->SetVisible(false);
00553
00554 mVideoPlayerCamText = new StaticText(mVideoPlayer,58,mVideoPlayer->H()-32,
00555 180, 20, "", false, true);
00556 mVideoPlayerCamText->SetForeground(0xffffff00);
00557 mVideoPlayerCamText->SetShadowColor(oglBLACK);
00558 mVideoPlayerCamText->SetAlign(oglLeftAlign, oglCenterAlign);
00559 mVideoPlayerCamText->SetBorderType(-1);
00560 mVideoPlayerCamText->SetBorderFillShaded(2);
00561
00562 mVideoTimeSlider =
00563 new TimeSlider(gB,2,32,gB->W()-4,46,14*3600+14*60+40,15*60);
00564 mVideoTimeSlider->SetTimeSliderListener(this);
00565
00566 mVideoPlayerControl =
00567 new VideoJpgPlayerControl(gB,4,4,gB->W()-8,28,mVideoPlayer);
00568 mVideoPlayerControl->SetBorderType(3);
00569
00570 for (int i=1; i<8; i++)
00571 {
00572 Button* btn = mVideoPlayerControl->GetButton(i);
00573 btn->SetRoundness(0,0,0,0);
00574 btn->SetBorderType(BEV_ETCHED);
00575 }
00576 gB->ScaleChildren(0,1);
00577
00578
00579
00580
00581
00582 mVideoPlayerView = new VideoPlayerView(mVideoPlayer->OglView());
00583
00584 mVideoPlayerListener = new VideoPlayerListener(mVideos, *mDetectedPersons);
00585 mVideoPlayer->SetVideoJpgPlayerListener(mVideoPlayerListener,
00586 (void*)mVideoPlayerView);
00587
00588 mCameraEventListPane->EventList()->SetButtonListener(this,(void*) mVideoPlayer);
00589
00590 mTimeLine->SetAlertTimeLineListener(mCameraEventListPane, (void*)1);
00591
00592 int gBX = gB->X()+gB->W()+4;
00593
00594 gB = new GroupBox(pane,gBX,h-182,72,182,"Inspect");
00595 mSubjectWindow = new WindowView2D(gB, 4, 34, 64, 128);
00596
00597 mSubjectWindow->GetOglView()->texturing = 0;
00598 mSimilarsButton = new Button(gB,4,4,64,26,"Search",BEV_ETCHED,true);
00599
00600 SetAsBox(gB);
00601
00602 mVideoPlayerView->SubjectWindow(mSubjectWindow, gRoiPath);
00603 mSimilarsButton->SetButtonListener(this);
00604
00605 gB->ScaleChildren();
00606
00607 gBX+=76;
00608
00609 mIdPane = new IdentificationPane(mVideos, gRoiPath, pane,gBX,52,w-gBX,h-52,"");
00610 mIdPane->mRoiInfo = mDetectedPersons;
00611 mIdPane->mRoiCorrelations = mSimilarPersons;
00612
00613 SetAsBox(mIdPane);
00614 SetAsBox(mIdPane->Similars());
00615 SetAsBox(mIdPane->Positives());
00616 mIdPane->SetGuiEventListener(this);
00617
00618
00619 int btnW = 110;
00620 int btnSpace = 8;
00621 mShowTrackButton = new Button(pane,gBX,12,btnW,32,
00622 "Suggest track", BEV_ETCHED,true);
00623 mShowTrackButton->SetButtonListener(this);
00624 mHideTrackButton = new Button(pane,gBX+btnW+btnSpace,12,btnW,32,
00625 "Clear track", BEV_ETCHED,true);
00626 mHideTrackButton->SetButtonListener(this);
00627
00628 mSubmitButton = new Button(pane,gBX+2*(btnW+btnSpace),12,btnW,32,
00629 "Alert personnel",BEV_ETCHED,true);
00630 SubmitButtonListener* submitListener = new SubmitButtonListener(this);
00631 mSubmitButton->SetButtonListener(submitListener, (void*) mIdPane);
00632
00633 #ifdef ALL_MONITORS
00634 mAllCamerasButton = new Button(pane,gBX+3*(btnW+btnSpace),12,btnW,32,
00635 "All cameras", BEV_ETCHED,true);
00636 mAllCamerasButton->SetButtonListener(this);
00637 #endif
00638
00639 mExitButton = new Button(pane,gBX+10+4*(btnW+btnSpace),12,60,32,
00640 "EXIT",BEV_ETCHED,true);
00641 mExitButton->SetVisible(false);
00642 mExitButton->SetButtonListener(this);
00643
00644 pane->ScaleChildren();
00645
00646 pane->SetAllowChildScaling(false);
00647
00648 mAlertWindow = new AlertWindow(this, gIpAddress);
00649 for (int i = 0; i < NR_OF_POLICEMEN; i++)
00650 mAlertWindow->AddMailTo(MAILTO_TEXTS[i]);
00651 mAlertWindow->SetVisible(false);
00652 submitListener->SetAlertWindow(mAlertWindow);
00653
00654 mInspectionPane->SetWindowListener(this);
00655 }