X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOWxViewer.cpp;fp=src2%2FcreaImageIOWxViewer.cpp;h=3aaf583e2a0ceb9d1dffadfe1363ec0108846452;hb=7e532afa6e1ab955d7c0fa63ea5d12eabc2504e5;hp=4a0f2835aabc5bf1732d6dc0ff2d1e71a34a880a;hpb=62c601e6e47a223d21d2c27184abdac784f26a7b;p=creaImageIO.git diff --git a/src2/creaImageIOWxViewer.cpp b/src2/creaImageIOWxViewer.cpp index 4a0f283..3aaf583 100644 --- a/src2/creaImageIOWxViewer.cpp +++ b/src2/creaImageIOWxViewer.cpp @@ -60,7 +60,11 @@ namespace creaImageIO wxBoxSizer *topsizer = new wxBoxSizer(wxVERTICAL); - + mslide = new wxSlider(this,-1,0,0,1, wxDefaultPosition, wxSize(400,10), wxSL_HORIZONTAL | wxSL_LABELS); + Connect( mslide->GetId(), wxEVT_COMMAND_SLIDER_UPDATED , (wxObjectEventFunction) &WxViewer::OnSlide ); + mcheck = new wxCheckBox(this,5123,crea::std2wx("Cine Loop")); + Connect( mcheck->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &WxViewer::OnCineLoop ); + mcheck->SetValue(false); // previewer mInteractor = new crea::creawxVTKRenderWindowInteractor(this,-1); mInteractor->UseCaptureMouseOn(); @@ -70,8 +74,10 @@ namespace creaImageIO mCurrent = 0; mPlayer = 0; - + + topsizer-> Add( mslide,1,wxALIGN_CENTER ,0); topsizer-> Add( mInteractor ,1,wxGROW ,0); + SetSizer( topsizer ); Layout(); } @@ -87,6 +93,7 @@ namespace creaImageIO // TO DO : desallocate cleanly // delete mPlayer; // delete mInteractor; + delete mslide; } //===================================================================== @@ -96,6 +103,14 @@ namespace creaImageIO wxMutexLocker lock(mMutex); GimmickDebugMessage(6,"WxViewer::SetImageVector"<SetMax(pointers.size()); + // Refresh don't work, TO MODIFY + mslide->Refresh(); + mslide->ClearTicks(); + mslide->Hide(); + mslide->Show(); + StartPlayer(); } //================================================================ @@ -237,13 +252,52 @@ std::cout << std::endl; //================================================== void WxViewer::StartPlayer() { - // wxMutexLocker lock(mMutex); - if (mPlayer != 0) return; - mPlayer = new WxViewerPlayer(this); - mPlayer->Create(); - mPlayer->Run(); + if(mcheck->IsChecked()) + { + // wxMutexLocker lock(mMutex); + if (mPlayer != 0) return; + mPlayer = new WxViewerPlayer(this); + mPlayer->Create(); + mPlayer->Run(); + } + else + { + ShowNextImage(); + } + } + + //================================================================ + + //================================================== + + void WxViewer::OnCineLoop(wxCommandEvent &Event) + { + if(!mcheck->IsChecked()) + { + mPlayer->Pause(); + mPlayer->Delete(); + mPlayer = 0; + } + StartPlayer(); } + //================================================================ + + //================================================== + + void WxViewer::OnSlide(wxCommandEvent &Event) + { + mCurrent = mslide->GetValue(); + StartPlayer(); + } + //================================================================ + + //================================================== + + void WxViewer::SetValue() + { + mslide->SetValue(mCurrent); + } // BEGIN_EVENT_TABLE(WxGimmickFrame, wxDialog) // END_EVENT_TABLE() @@ -267,6 +321,7 @@ std::cout << std::endl; { mWxViewer->ShowNextImage(); + mWxViewer->SetValue(); ::wxWakeUpIdle(); clock_t endwait; endwait = clock () + 0.2 * CLOCKS_PER_SEC ;