]> Creatis software - creaImageIO.git/commitdiff
*** empty log message ***
authorguigues <guigues>
Wed, 11 Mar 2009 11:23:57 +0000 (11:23 +0000)
committerguigues <guigues>
Wed, 11 Mar 2009 11:23:57 +0000 (11:23 +0000)
appli/TestWxGimmickReaderDialog/main.cxx
src2/creaImageIOWxGimmickView.cpp
src2/creaImageIOWxViewer.cpp
src2/creaImageIOWxViewer.h

index 105f796c54bbcede631af2f569de6dcdad161d80..d6d179cbfb19554a662bd6900bce8728855f6123 100644 (file)
@@ -38,7 +38,7 @@ bool myApp::OnInit( )
                                        -1,
                                        _T("Select image(s)        - Gimmick! (c) CREATIS-LRMN 2008"),
                                        wxDefaultPosition,
-                                       wxSize(1200,800),
+                                       wxSize(600,800),
                                        min_dim,
                                        max_dim,
                                        output_dim,
index 4da4ccc9da2f81e2d2010d4c82af5793ea0d25f7..bdbb325620ed14a67901f5a4959136dc8317f368 100644 (file)
@@ -128,12 +128,13 @@ namespace creaImageIO
     // Splitting
     int hsize = size.GetHeight();
 
-    int bottom_minsize = 40;
+    int top_minsize = 500;
+    int bottom_minsize = 50;
 
     mSplitter->SetMinimumPaneSize( bottom_minsize );
     mSplitter->SplitHorizontally( mNotebook, mBottomPanel, 
-                                  hsize - bottom_minsize);
-  
+                                 top_minsize);
+
     sizer->Add( mSplitter,1,wxGROW  ,0);
 
 
@@ -515,7 +516,13 @@ namespace creaImageIO
        mViewer->SetImage(0,GetDefaultImage());
        first_time = false;
      }
-   //  mViewer->Refresh();
+   //   GimmickMessage(1,"WxGimmickView : Refresh viewer"<<std::endl);
+
+   if (mViewer->RefreshIfNecessary())
+     {
+       // mViewer->Refresh();
+       //       mViewer->SetFocus();
+     }
   }
   
   //=================================================
index a566189298693f8103cbfd9a490b3b7e8b0e71c2..563d7fbdc7547bafe13a9e3e22592d343599a7c3 100644 (file)
@@ -65,6 +65,9 @@ namespace creaImageIO
     GimmickDebugMessage(1,"WxViewer::WxViewer"
                        <<std::endl);
 
+    mNeedRefresh = false;
+    mLastImageShown = NULL;
+
     wxBoxSizer *topsizer = new wxBoxSizer(wxVERTICAL);
 
        
@@ -162,12 +165,17 @@ namespace creaImageIO
   void WxViewer::ShowNextImage()
   {
     wxMutexLocker lock(mMutex);
+    /*
     GimmickMessage(1,"WxViewer::ShowNextImage() "
                   <<mCurrent+1<<"/"
                   <<images.size()<<std::endl);
+    */
+    
     if (mCurrent<images.size()) 
       {
        ShowImage(images[mCurrent]);
+       if ( images[mCurrent] != mLastImageShown ) mNeedRefresh = true;
+       mLastImageShown = images[mCurrent];
       }
     mCurrent++;
     if (mCurrent >= images.size()) mCurrent = 0;
@@ -277,7 +285,19 @@ namespace creaImageIO
   }
 
    //================================================================
-  
+  bool WxViewer::RefreshIfNecessary()
+  {
+    if (mNeedRefresh)
+      {
+       GimmickMessage(1,"WxViewer : Refreshing"<<std::endl);
+       mInteractor->Render();
+       //      mViewer->Render();      
+       //      Refresh();
+       mNeedRefresh = false;
+       return true;
+      }
+    return false;
+  }
   //==================================================
   void WxViewer::StopPlayer()
   {
@@ -309,7 +329,8 @@ namespace creaImageIO
                if(!TestDestroy())
            { 
                        mWxViewer->ShowNextImage();
-                       mWxViewer->Refresh();
+                       //                      mWxViewer->Refresh();
+                       ::wxWakeUpIdle();
                        clock_t endwait;
                        endwait = clock () + 0.2 * CLOCKS_PER_SEC ;
                        while (clock() < endwait) {}
index f416cfc6b59fabc244d48bf491da70ba82ba385a..aa0079c320e7ebe202f0cf22a61928c5c99ac982 100644 (file)
@@ -50,7 +50,9 @@ namespace creaImageIO
     
     void OnInternalIdle();
 
-       void StopPlayer();
+    void StopPlayer();
+
+    bool RefreshIfNecessary();
 
   private:
    ///Shows the image passed as parameter
@@ -76,6 +78,10 @@ namespace creaImageIO
     /// The mutex
     wxMutex mMutex;
 
+    /// 
+    bool mNeedRefresh;
+    vtkImageData* mLastImageShown;
+
   };
 
 }