00001 #ifdef USE_KWWIDGETS 00002 00003 #include "vtkKWBlackBoxDialog.h" 00004 #include "bbtkKW.h" 00005 #include "vtkObjectFactory.h" 00006 00007 //========================================================================= 00008 // vtkKWBlackBoxWindow 00009 //========================================================================= 00010 00011 00012 /* 00013 //========================================================================= 00014 vtkKWBlackBoxWindow::vtkKWBlackBoxWindow() 00015 : mShown(false) 00016 { 00017 bbtkDebugMessage("kw",9,"vtkKWBlackBoxWindow::vtkKWBlackBoxWindow()" 00018 <<std::endl); 00019 bbtk::KW::IncNbWindowsAlive(); 00020 } 00021 //========================================================================= 00022 00023 00024 00025 //========================================================================= 00026 vtkKWBlackBoxWindow::~vtkKWBlackBoxWindow() 00027 { 00028 bbtkDebugMessage("kw",9,"vtkKWBlackBoxWindow::~vtkKWBlackBoxWindow() " 00029 <<this<<std::endl); 00030 bbHide(); 00031 bbtk::KW::DecNbWindowsAlive(); 00032 if (!mBox.expired()) 00033 { 00034 mBox.lock()->bbSetWindow(0); 00035 } 00036 } 00037 //========================================================================= 00038 00039 00040 //========================================================================= 00041 void vtkKWBlackBoxWindow::bbShow() 00042 { 00043 if (bbIsShown()) return; 00044 bbtkDebugMessage("kw",9,"vtkKWBlackBoxWindow::bbShow()"<<std::endl); 00045 bbtk::KW::IncNbWindowsShown(); 00046 mShown = true; 00047 } 00048 //========================================================================= 00049 00050 //========================================================================= 00051 void vtkKWBlackBoxWindow::bbHide() 00052 { 00053 if (!bbIsShown()) return; 00054 bbtkDebugMessage("kw",9,"vtkKWBlackBoxWindow::bbHide()"<<std::endl); 00055 bbtk::KW::DecNbWindowsShown(); 00056 mShown = false; 00057 } 00058 //========================================================================= 00059 00060 //========================================================================= 00061 void vtkKWBlackBoxWindow::bbClose() 00062 { 00063 } 00064 //========================================================================= 00065 00066 */ 00067 //========================================================================= 00068 // vtkKWBlackBoxDialog 00069 //========================================================================= 00070 00071 //------------------------------------------------------------------------- 00072 vtkStandardNewMacro( vtkKWBlackBoxDialog ); 00073 vtkCxxRevisionMacro( vtkKWBlackBoxDialog, "$Revision: 1.2 $"); 00074 //------------------------------------------------------------------------- 00075 00076 //========================================================================= 00077 vtkKWBlackBoxDialog::vtkKWBlackBoxDialog() 00078 : mShown(false) 00079 { 00080 bbtkDebugMessage("kw",9,"vtkKWBlackBoxDialog::vtkKWBlackBoxDialog()" 00081 <<std::endl); 00082 bbtk::KW::IncNbWindowsAlive(); 00083 this->mFrame = vtkKWFrame::New(); 00084 } 00085 //========================================================================= 00086 //========================================================================= 00087 vtkKWBlackBoxDialog::~vtkKWBlackBoxDialog() 00088 { 00089 bbtkDebugMessage("kw",9,"~vtkKWBlackBoxDialog()"<<std::endl); 00090 this->mFrame->Delete(); 00091 bbHide(); 00092 bbtk::KW::DecNbWindowsAlive(); 00093 if (!mBox.expired()) 00094 { 00095 mBox.lock()->bbSetWindow(0); 00096 } 00097 } 00098 //========================================================================= 00099 00100 //========================================================================= 00101 void vtkKWBlackBoxDialog::CreateWidget() 00102 { 00103 bbtkDebugMessage("kw",5,"vtkKWBlackBoxDialog::CreateWidget() [" 00104 <<bbGetBlackBox()->bbGetFullName()<<"]"<<std::endl); 00105 if (this->IsCreated()) 00106 { 00107 vtkErrorMacro("vtkKWBlackBoxDialog already created"); 00108 return; 00109 } 00110 00111 this->Superclass::CreateWidget(); 00112 00113 this->SetTitle((bbGetBlackBox()->bbGetInputWinTitle()+" - bbtk (c) CREATIS-LRMN").c_str()); 00114 00115 this->mFrame->SetParent(this); 00116 this->mFrame->Create(); 00117 this->mFrame->SetWidth ( bbGetBlackBox()->bbGetInputWinWidth() ); 00118 this->mFrame->SetHeight ( bbGetBlackBox()->bbGetInputWinHeight() ); 00119 00120 this->Script("pack %s -side top -expand true", 00121 this->mFrame->GetWidgetName()); 00122 } 00123 //========================================================================= 00124 00125 /* 00126 //========================================================================= 00127 void vtkKWBlackBoxDialog::Pack() 00128 { 00129 this->Script("pack %s -side top -expand true", 00130 this->mFrame->GetWidgetName()); 00131 } 00132 //========================================================================= 00133 */ 00134 //========================================================================= 00135 void vtkKWBlackBoxDialog::Cancel() 00136 { 00137 bbtkDebugMessage("kw",9,"vtkKWBlackBoxDialog::Cancel()"<<std::endl); 00138 // this->Delete(); 00139 00140 // this->Withdraw(); 00141 bbHide(); 00142 this->Done = vtkKWDialog::StatusCanceled; 00143 // std::cout << "REFS= "<<this->GetReferenceCount()<<std::endl; 00144 // std::cout << "WINS= "<<this->GetApplication()->GetNumberOfWindows ()<<std::endl; 00145 // this->Delete(); 00146 00147 } 00148 //========================================================================= 00149 00150 00151 //========================================================================= 00152 void vtkKWBlackBoxDialog::bbShow() 00153 { 00154 if (bbIsShown()) return; 00155 bbtkDebugMessage("kw",5,"vtkKWBlackBoxDialog::bbShow() [" 00156 <<bbGetBlackBox()->bbGetFullName()<<"]"<<std::endl); 00157 bbtk::KW::IncNbWindowsShown(); 00158 mShown = true; 00159 // vtkKWBlackBoxWindow::bbShow(); 00160 //SetReturnCode( kwDialog::ShowModal() ); 00161 this->Display(); 00162 this->Invoke(); 00163 // bbClose(); 00164 } 00165 //========================================================================= 00166 00167 //========================================================================= 00168 void vtkKWBlackBoxDialog::bbHide() 00169 { 00170 bbtkDebugMessage("kw",9,"vtkKWBlackBoxDialog::bbHide()"<<std::endl); 00171 // vtkKWBlackBoxWindow::bbHide(); 00172 bbtk::KW::DecNbWindowsShown(); 00173 mShown = false; 00174 // Hide(); 00175 this->Withdraw(); 00176 } 00177 //========================================================================= 00178 00179 //========================================================================= 00180 void vtkKWBlackBoxDialog::bbClose() 00181 { 00182 bbtkDebugMessage("kw",9,"vtkKWBlackBoxDialog::bbClose()"<<std::endl); 00183 this->Done = vtkKWDialog::StatusCanceled; 00184 // this->Withdraw(); // this->Delete(); 00185 } 00186 //========================================================================= 00187 00188 00189 00190 /* 00191 00192 00193 //========================================================================= 00194 // vtkKWBlackBoxFrame 00195 //========================================================================= 00196 00197 //------------------------------------------------------------------------- 00198 vtkStandardNewMacro( vtkKWBlackBoxFrame ); 00199 vtkCxxRevisionMacro(vtkKWBlackBoxFrame, "$Revision: 1.2 $"); 00200 //------------------------------------------------------------------------- 00201 //========================================================================= 00202 vtkKWBlackBoxFrame::vtkKWBlackBoxFrame() 00203 { 00204 bbtkDebugMessage("kw",9,"vtkKWBlackBoxFrame::vtkKWBlackBoxFrame()"<<std::endl); 00205 } 00206 //========================================================================= 00207 00208 //========================================================================= 00209 vtkKWBlackBoxFrame::~vtkKWBlackBoxFrame() 00210 { 00211 } 00212 //========================================================================= 00213 00214 //========================================================================= 00215 void vtkKWBlackBoxFrame::bbShow() 00216 { 00217 if (bbIsShown()) return; 00218 bbtkDebugMessage("kw",5,"vtkKWBlackBoxFrame::bbShow(" 00219 <<bbGetBlackBox()->bbGetFullName()<<")"<<std::endl); 00220 vtkKWBlackBoxWindow::bbShow(); 00221 // vtkKWFrame::Show(); 00222 this->Display(); 00223 // This Update is ** MANDATORY ** 00224 // to synchronize kwvtkRenderWindowInteractor objects 00225 // (force kw objects creation **NOW**) 00226 00227 if (bbGetBlackBox()) bbGetBlackBox()->bbUserOnShow(); 00228 } 00229 //========================================================================= 00230 00231 //========================================================================= 00232 void vtkKWBlackBoxFrame::bbHide() 00233 { 00234 bbtkDebugMessage("kw",9,"vtkKWBlackBoxFrame::bbHide()"<<std::endl); 00235 vtkKWBlackBoxWindow::bbHide(); 00236 // vtkKWFrame::Hide(); 00237 this->Withdraw(); 00238 if (bbGetBlackBox()) bbGetBlackBox()->bbUserOnHide(); 00239 } 00240 //========================================================================= 00241 00242 //========================================================================= 00243 void vtkKWBlackBoxFrame::bbClose() 00244 { 00245 bbtkDebugMessage("kw",9,"vtkKWBlackBoxFrame::bbClose()"<<std::endl); 00246 // vtkKWFrame::Close(); 00247 this->Delete(); 00248 } 00249 //========================================================================= 00250 */ 00251 #endif