From: guigues Date: Thu, 28 May 2009 08:12:03 +0000 (+0000) Subject: Fixed Window deletion mechanism X-Git-Tag: EED.02Oct2009~40 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=8c690fedb5ea897b6a69584e1e237cb5dbad97a5;p=bbtk.git Fixed Window deletion mechanism --- diff --git a/kernel/appli/bbi/bbi.cxx b/kernel/appli/bbi/bbi.cxx index 8d0aecd..76aaef3 100644 --- a/kernel/appli/bbi/bbi.cxx +++ b/kernel/appli/bbi/bbi.cxx @@ -202,7 +202,7 @@ bool wxBBIApp::OnInit( ) std::cout << "con="<Close"< AtomicBlackBox::AtomicBlackBox(\"" - < AtomicBlackBox(\"" <AtomicBlackBox::AtomicBlackBox(" - < AtomicBlackBox(" + < AtomicBlackBox::~AtomicBlackBox()" + bbtkBlackBoxDebugMessage("object",3,"==> ~AtomicBlackBox()" <GetOutputDescriptor(name))->GetGetFunctor()->Get(this); + ->GetOutputDescriptor(name))->GetGetFunctor()->Get(this); - bbtkDebugDecTab("Data",7); return p; } //========================================================================= @@ -106,15 +96,13 @@ namespace bbtk /// Gets the input Data of a given name Data AtomicBlackBox::bbGetInput( const std::string &name ) { - bbtkDebugMessageInc("Data",7, - "AtomicBlackBox::bbGetInput(\""<GetInputDescriptor(name))->GetGetFunctor()->Get(this); + ->GetInputDescriptor(name))->GetGetFunctor()->Get(this); - bbtkDebugDecTab("Data",7); return p; } //========================================================================= @@ -124,9 +112,8 @@ namespace bbtk /// Sets the data of the output called void AtomicBlackBox::bbSetOutput( const std::string &name, Data data) { - bbtkDebugMessageInc("Data",7, - "AtomicBlackBox::bbSetOutput(\""<GetInputDescriptor(name))->GetSetFunctor()->Set(this,data); @@ -155,7 +141,6 @@ namespace bbtk MODIFIED); } - bbtkDebugDecTab("data",7); } //========================================================================= @@ -166,10 +151,9 @@ namespace bbtk bool setModified ) { - bbtkDebugMessageInc("data",7, + bbtkBlackBoxDebugMessage("data",7, "AtomicBlackBox::bbBruteForceSetInputPointer(\"" - <GetInputDescriptor(name))->GetSetFunctor() @@ -181,7 +165,6 @@ namespace bbtk MODIFIED); } - bbtkDebugDecTab("data",7); } //========================================================================= diff --git a/kernel/src/bbtkAtomicBlackBoxDescriptor.cxx b/kernel/src/bbtkAtomicBlackBoxDescriptor.cxx index 20a0a5c..d1bb205 100644 --- a/kernel/src/bbtkAtomicBlackBoxDescriptor.cxx +++ b/kernel/src/bbtkAtomicBlackBoxDescriptor.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkAtomicBlackBoxDescriptor.cxx,v $ Language: C++ - Date: $Date: 2008/10/17 08:18:12 $ - Version: $Revision: 1.3 $ + Date: $Date: 2009/05/28 08:12:05 $ + Version: $Revision: 1.4 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -31,12 +31,16 @@ #include "bbtkAtomicBlackBoxDescriptor.h" #include "bbtkBlackBox.h" #include "bbtkPackage.h" +#define bbtkDMessage(key,level,mess) \ + bbtkMessage(key,level,"["< AtomicBlackBoxDescriptor::AtomicBlackBoxDescriptor()"< AtomicBlackBoxDescriptor()"<(&BlackBox::bbSetOutputBoxChange) ) ); // AddToCategory("atomic box"); - bbtkDebugMessage("object",3,"<== AtomicBlackBoxDescriptor::AtomicBlackBoxDescriptor()"< AtomicBlackBoxDescriptor::AtomicBlackBoxDescriptor()"< ~AtomicBlackBoxDescriptor()"< "<<#CLASS \ - <<"::bbClone(\""< "<<#CLASS \ + <<"::bbClone(\""< Processing ["< Processing..." \ + < "<<#CLASS<<"::"<<#CLASS \ - <<"(\""< "<<#CLASS<<"::"<<#CLASS \ + <<"()"< "<<#CLASS<<"::"<<#CLASS \ - <<"("< "<<#CLASS<<"::"<<#CLASS \ + <<"("< "<<#CLASS <<"::~"<< #CLASS \ - <<"() ["<bbGetFullName()<<"]"< "<<#CLASS <<"::~"<< #CLASS \ + <<"()"<bbGetFullName()<<"]"< BlackBox::BlackBox(\"" + bbtkBlackBoxDebugMessage("object",4,"==> BlackBox::BlackBox(\"" < BlackBox::BlackBox(" + bbtkBlackBoxDebugMessage("object",4,"==> BlackBox::BlackBox(" < BlackBox::~BlackBox() ["< BlackBox::~BlackBox() ["<bbDesallocateConnectors(); - bbtkDebugMessage("object",4,"<== BlackBox::~BlackBox() ["<GetInputDescriptorMap().find(name) != bbGetDescriptor()->GetInputDescriptorMap().end()); - bbtkDebugDecTab("Kernel",8); + bbtkDebugDecTab("kernel",8); return r; } //========================================================================= @@ -212,11 +212,12 @@ namespace bbtk /// Returns true if the UserBlackBox has an output of name name bool BlackBox::bbHasOutput(const std::string& name) const { - bbtkDebugMessageInc("Kernel",8,"BlackBox::bbHasOutput(\"" - <GetOutputDescriptorMap().find(name) != bbGetDescriptor()->GetOutputDescriptorMap().end()); - bbtkDebugDecTab("Kernel",8); + bbtkDebugDecTab("kernel",8); return r; } //========================================================================= @@ -226,11 +227,12 @@ namespace bbtk /// Gets the output type of a given name TypeInfo BlackBox::bbGetOutputType( const std::string &name ) const { - bbtkDebugMessageInc("Kernel",8, - "BlackBox::bbGetOutputType(\"" - <GetOutputDescriptor(name)->GetTypeInfo(); - bbtkDebugDecTab("Kernel",8); + bbtkDebugDecTab("kernel",8); return r; } //========================================================================= @@ -239,11 +241,12 @@ namespace bbtk /// Gets the input type of a given name TypeInfo BlackBox::bbGetInputType( const std::string &name ) const { - bbtkDebugMessageInc("Kernel",8, - "BlackBox::bbGetInputType(\"" - <GetInputDescriptor(name)->GetTypeInfo(); - bbtkDebugDecTab("Kernel",8); + bbtkDebugDecTab("kernel",8); return r; } //========================================================================= @@ -253,16 +256,18 @@ namespace bbtk /// Allocates the i/o connectors of the black box void BlackBox::bbAllocateConnectors() { - bbtkDebugMessageInc("Kernel",8, - "BlackBox::bbAllocateConnectors() [" - <GetInputDescriptorMap(); BlackBoxDescriptor::InputDescriptorMapType::const_iterator i; for ( i = imap.begin(); i != imap.end(); ++i ) { - bbtkDebugMessage("Kernel",8,"* Allocate \""<first<<"\""<first<<"\""<second->GetName()] = new BlackBoxInputConnector(GetThisPointer()); } @@ -271,11 +276,11 @@ namespace bbtk BlackBoxDescriptor::OutputDescriptorMapType::const_iterator o; for ( o = omap.begin(); o != omap.end(); ++o ) { - bbtkDebugMessage("Kernel",8,"* Allocate \""<first<<"\""<first<<"\""<second->GetName()] - = new BlackBoxOutputConnector(); + = new BlackBoxOutputConnector(GetThisPointer()); } - bbtkDebugDecTab("Kernel",8); + } //========================================================================= @@ -284,7 +289,7 @@ namespace bbtk /// Desallocates the i/o connectors of the black box void BlackBox::bbDesallocateConnectors() { - bbtkDebugMessageInc("Kernel",8, + bbtkBlackBoxDebugMessage("kernel",8, "BlackBox::bbDesallocateConnectors()" <first<<"\""<first<<"\""<second); } OutputConnectorMapType::const_iterator o; for ( o = bbGetOutputConnectorMap().begin(); o != bbGetOutputConnectorMap().end(); ++o ) { - bbtkDebugMessage("Kernel",8,"* Delete \""<first<<"\""<first<<"\""<second); } - bbtkDebugDecTab("Kernel",8); + bbtkDebugDecTab("kernel",8); } //========================================================================= @@ -313,10 +318,10 @@ namespace bbtk /// Copies the input / output values from another box void BlackBox::bbCopyIOValues(BlackBox& from) { - bbtkDebugMessageInc("Kernel",1, - "BlackBox::bbCopyIOValues(" - <GetInputDescriptorMap(); @@ -325,7 +330,7 @@ namespace bbtk { if (! i->second->GetCopyConstruct() ) continue; std::string input = i->second->GetName(); - bbtkDebugMessage("Kernel",2,"* Copying input "<bbSetInput(input, from.bbGetInput(input) ); } // copies the output values @@ -336,11 +341,11 @@ namespace bbtk { if (! o->second->GetCopyConstruct() ) continue; std::string output = o->second->GetName(); - bbtkDebugMessage("Kernel",2,"* Copying output "<bbSetOutput(output, from.bbGetOutput(output) ); } - bbtkDebugDecTab("Kernel",9); + bbtkDebugDecTab("kernel",9); } //========================================================================= @@ -364,11 +369,10 @@ namespace bbtk /// User overloadable destruction method of a black box void BlackBox::bbUserDelete() { - bbtkDebugMessage("process",5, - "=> BlackBox::bbUserDelete() [" - < BlackBox::bbUserDelete()" + <<" : not overloaded; using standard deletion" + < BlackBox::bbSetInputChangeTime("<second)) && (bbCanReact() ) ) { - bbtkDebugMessage("change",2, + bbtkBlackBoxDebugMessage("change",2, "an input of " < BlackBox::bbSetOutputChangeTime("< BlackBox::bbSetStatusAndPropagate(input," - < BlackBox::bbSetStatusAndPropagate(input," + <SetStatus(s); @@ -581,13 +585,13 @@ namespace bbtk (c==bbGetInputConnectorMap().find("BoxExecute")->second)) && (bbCanReact() ) ) { - bbtkDebugMessage("change",2, + bbtkBlackBoxDebugMessage("change",2, "-> Execution triggered by Reactive mode or BoxExecute input change"<() ); } - bbtkDebugMessageInc("change",5, - "<= BlackBox::bbSetStatusAndPropagate(input) [" - < BlackBox::bbSignalOutputModification(" - < BlackBox::bbSignalOutputModification(" + < BlackBox::bbSignalOutputModification(" - < BlackBox::bbSignalOutputModification(" + <& output, bool reaction) { - bbtkDebugMessageInc("change",5, - "=> BlackBox::bbSignalOutputModification(vector of outputs) [" - < BlackBox::bbSignalOutputModification(vector of outputs)" +<::const_iterator o; bool changed = false; @@ -701,9 +705,9 @@ namespace bbtk // } } - bbtkDebugMessageDec("change",5, - "<= BlackBox::bbSignalOutputModification(vector of outputs) [" - < BlackBox::bbExecute("<<(int)force<<") [" - < BlackBox::bbExecute("<<(int)force<<")" + < already executing : abort"< FreezeExecution global flag is 'true' : abort execution"<bbRecursiveInitializeProcessing(); bbmInitialized = true; } @@ -771,7 +775,8 @@ namespace bbtk { if (bbmInitialized) { - std::cout << "FINI "<bbRecursiveFinalizeProcessing(); bbmInitialized = false; } @@ -783,15 +788,15 @@ namespace bbtk /// Main recursive processing method of the box. void BlackBox::bbRecursiveExecute( Connection::Pointer caller ) { - bbtkDebugMessageInc("process",3, + bbtkBlackBoxDebugMessage("process",3, "=> BlackBox::bbRecursiveExecute(" - <<(caller?caller->GetFullName():"0")<<") [" - <GetFullName():"0")<<")" + < already executing : abort"<second->GetStatus() != UPTODATE) { - bbtkWarning("BlackBox::bbRecursiveExecute [" - <first<<"' is Out-of-date ???"); } } - bbtkDebugMessage("process",3," -> Up-to-date : nothing to do" + bbtkBlackBoxDebugMessage("process",3," -> Up-to-date : nothing to do" <bbShowWindow(); - bbtkDebugMessage("process",3, - "<= BlackBox::bbRecursiveExecute() [" - < BlackBox::bbUpdateInputs() [" - < BlackBox::bbUpdateInputs()" <GetInputDescriptor(i->first)->GetTypeInfo() // == typeid(Void) ) // continue; - bbtkDebugMessageDec("change",2, - bbGetName()<<"."<first - <<" ["<second<<"] " - <<" status before update = '" + bbtkBlackBoxDebugMessage("change",2, + "Input '"<first + <<"': status before update = '" <second->GetStatus()) <<"'"<second->RecursiveExecute(); IOStatus t = i->second->GetStatus(); if (t > s) s = t; - bbtkDebugMessageDec("change",2, - bbGetName()<<"."<first - <<" ["<second<<"] " - <<" status before process = '" - <second->GetStatus()) - <<"'"<first + <<"': status before process = '" + <second->GetStatus()) + <<"'"< BlackBox::bbComputePostProcessStatus() [" - < BlackBox::bbComputePostProcessStatus()" <second->SetStatus(UPTODATE); - bbtkDebugMessage("change",2, - bbGetName()<<"."<first<<" : " + bbtkBlackBoxDebugMessage("change",2, + "Input '"<first<<"' : " << GetIOStatusString(t) << " -> " << GetIOStatusString(i->second->GetStatus()) << std::endl); } - bbtkDebugMessage("change",2, - bbGetName()<<" new output status : " - << GetIOStatusString(new_output_status) - <second->SetStatus(new_output_status); } - bbtkDebugMessageInc("process",4, - "<= BlackBox::bbComputePostProcessStatus() [" - < to the connection c void BlackBox::bbConnectInput( const std::string& name, Connection* c) { - bbtkDebugMessage("connection",2, + bbtkBlackBoxDebugMessage("connection",2, "==> BlackBox::bbConnectInput(\"" - <GetFullName()<<") [" - <GetFullName()<<")" <second,OUTOFDATE); - bbtkDebugMessage("connection",2, + bbtkBlackBoxDebugMessage("connection",2, "<== BlackBox::bbConnectInput(\"" - <GetFullName()<<") [" - <GetFullName()<<")" < to the connection c void BlackBox::bbConnectOutput( const std::string& name, Connection* c) { - bbtkDebugMessage("connection",2, - "==> BlackBox::bbConnectOutput(\""<GetFullName()<<") [" - < BlackBox::bbConnectOutput(\""<GetFullName()<<")" + <second->SetConnection(c); - bbtkDebugMessage("connection",2, - "<== BlackBox::bbConnectOutput(\""<GetFullName()<<") [" - <GetFullName()<<")" + < BlackBox::bbDisconnectInput(\""<GetFullName()<<") [" - <GetFullName()<<")" <second->UnsetConnection(c); - bbtkDebugMessage("connection",2, + bbtkBlackBoxDebugMessage("connection",2, "<== BlackBox::bbDisconnectInput(\""<GetFullName()<<") [" - <GetFullName()<<")" < from the connection c void BlackBox::bbDisconnectOutput( const std::string& name, Connection* c) { - bbtkDebugMessage("connection",2, + bbtkBlackBoxDebugMessage("connection",2, "==> BlackBox::bbDisconnectOutput(\""<GetFullName()<<") [" - <GetFullName()<<")" <second->UnsetConnection(c); - bbtkDebugMessage("connection",2, + bbtkBlackBoxDebugMessage("connection",2, "<== BlackBox::bbDisconnectOutput(\""<GetFullName()<<") [" - <GetFullName()<<")" <bbGetDescriptor()->GetPackage()) { - bbtkMessage("Help",1,"Black Box '"<bbGetDescriptor()->GetPackage()->GetName() <<"::"<bbGetDescriptor()->GetTypeName()<<">"<bbGetDescriptor()->GetTypeName()<<">"<bbGetDescriptor()->GetTypeName()<<">"< iname; std::vector ivalue; @@ -1421,9 +1413,9 @@ namespace bbtk } if (iname.size()) - bbtkMessage("Help",1," * Inputs : "<::iterator i1,i2,i3,i4; for (i1=iname.begin(),i2=ivalue.begin(),i3=iconn.begin(),i4=istatus.begin(); @@ -1437,17 +1429,17 @@ namespace bbtk value += "'"; value.append(1+valuelmax-value.size(),' '); if (i3->size()) - bbtkMessage("Help",1," '"< '"<<*i3<<"'"); pref.replace(0,pref.size(),pref.size(),' '); } } - bbtkMessage("Help",1," ["<<*i4<<"]"< BlackBox::bbGlobalProcessExecutionList()" - < BlackBox::bbGlobalProcessExecutionList()" + < Executing "<< - p.lock()->bbGetFullName()< Executing '"<< + p.lock()->bbGetName()<<"'"<bbExecute(true); } else @@ -1513,7 +1505,7 @@ namespace bbtk } bbmgExecutionList.clear(); - bbtkDebugMessageDec("process",3, + bbtkDebugMessage("process",3, "<= BlackBox::bbGlobalProcessExecutionList()" <bbGetFullName()<<")"<bbGetName()<<")"<bbGetInputConnectorMap().find( nameInput.c_str() )->second; - if (cc->GetConnection()!=NULL) - { - cc->GetConnection()->GetBlackBoxFrom()->bbUserOnShow(); - } - } diff --git a/kernel/src/bbtkBlackBox.h b/kernel/src/bbtkBlackBox.h index ce1117f..21bf67b 100644 --- a/kernel/src/bbtkBlackBox.h +++ b/kernel/src/bbtkBlackBox.h @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkBlackBox.h,v $ Language: C++ - Date: $Date: 2009/05/14 14:43:33 $ - Version: $Revision: 1.25 $ + Date: $Date: 2009/05/28 08:12:05 $ + Version: $Revision: 1.26 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -44,6 +44,7 @@ #define __bbtkBlackBox_h__ #include "bbtkSystem.h" +#include "bbtkMessageManager.h" #include "bbtkBlackBoxDescriptor.h" #include "bbtkBlackBoxInputConnector.h" //#include "bbtkBlackBoxOutputConnector.h" @@ -53,6 +54,12 @@ #include #include + +#define bbtkBlackBoxMessage(key,level,mess) \ + bbtkMessage(key,level,"["< BlackBoxDescriptor::BlackBoxDescriptor()"< BlackBoxDescriptor()"< BlackBoxDescriptor::~BlackBoxDescriptor() [" - < ~BlackBoxDescriptor()" + <second; - bbtkDebugMessage("object",4, - "<== BlackBoxDescriptor::~BlackBoxDescriptor() [" - < Destructing BlackBoxDescriptor ["< Destructing BlackBoxDescriptor ["<second; } //========================================================================= @@ -198,16 +204,16 @@ namespace bbtk const BlackBoxDescriptor::OutputDescriptor* BlackBoxDescriptor::GetOutputDescriptor(const std::string & name) const { - bbtkDebugMessageInc("Kernel",9,"BlackBoxDescriptor::GetOutputDescriptor('" - <second; } //========================================================================= @@ -215,16 +221,17 @@ namespace bbtk //========================================================================= void BlackBoxDescriptor::GetHelp(bool full) const { - bbtkDebugMessageInc("Kernel",9,"BlackBoxDescriptor::GetHelp() ["<"<"<second->GetNature()); nature += "]"; nature.append(1+natlmax-nature.size(),' '); - bbtkMessage("Help",1, + bbtkMessage("help",1, " '"<second->GetDescription()<second->GetName()); @@ -281,16 +288,14 @@ namespace bbtk std::string nature(o->second->GetNature()); nature += "]"; nature.append(1+natlmax-nature.size(),' '); - bbtkMessage("Help",1, + bbtkMessage("help",1, " '"<second->GetDescription()<bbGetName() + <<"] BlackBoxInputConnector()"<bbGetName() + <<"] ~BlackBoxInputConnector()" + <bbGetName() + <<"] BlackBoxInputConnector::SetConnection("<bbGetName() + <<"] BlackBoxInputConnector::UnsetConnection(" < BlackBoxInputConnector::RecursiveExecute() : " - <<"No connection or input not Out-of-date : nothing to do" - <bbGetName() + <<"] --> BlackBoxInputConnector::RecursiveExecute() : " + <<"No connection or input not Out-of-date : nothing to do" + < BlackBoxInputConnector::RecursiveExecute() : " + <<"No connection or input not Out-of-date : nothing to do" + <bbGetName() + <<"] BlackBoxOutputConnector()"< BlackBoxOutputConnector::~BlackBoxOutputConnector()" + bbtkDebugMessage("kernel",9, + "[NULL"//<bbGetName() + <<"] ==> ~BlackBoxOutputConnector()" <bbGetName() + <<"] <== ~BlackBoxOutputConnector()" <bbGetName() + <<"] BlackBoxOutputConnector::SetConnection(" <bbGetName() + <<"] BlackBoxOutputConnector::UnsetConnection(" <bbGetFullName() + <<": BlackBoxOutputConnector::UnsetConnection(" + <Check(); @@ -106,12 +116,15 @@ namespace bbtk } if (i==mConnection.end()) { - bbtkInternalError("BlackBoxOutputConnector::UnsetConnection("<bbGetFullName() + <<": BlackBoxOutputConnector::UnsetConnection(" + < BlackBoxOutputConnector::SignalChange(" - <bbGetFullName()<<",'" + "["<bbGetName() + <<"] ==> BlackBoxOutputConnector::SignalChange('" <bbGetFullName()<<",'" + // <bbGetName()<<",'" // <bbGetFullName()<<",'" + "["<bbGetName() + <<"] <== BlackBoxOutputConnector::SignalChange('" < ComplexBlackBox::ComplexBlackBox(\"" + bbtkBlackBoxDebugMessage("object",3, + "##> ComplexBlackBox(\"" < ComplexBlackBox::ComplexBlackBox(\"" + bbtkBlackBoxDebugMessage("object",3, + "##> ComplexBlackBox(\"" <first<<"\""<first<<"\""<second->bbClone(i->second->bbGetName()); bbUnsafeAddBlackBox(B); } - bbtkDebugMessage("object",4," * Cloning Connections"<GetFullName()<<"\""<GetOriginalBlackBoxFrom()->bbGetName() ); @@ -127,8 +127,8 @@ namespace bbtk } bbAllocateConnectors(); - bbtkDebugMessage("object",3, - "<## ComplexBlackBox::ComplexBlackBox(\"" + bbtkBlackBoxDebugMessage("object",3, + "<## ComplexBlackBox(\"" < ComplexBlackBox::~ComplexBlackBox() [" - < ~ComplexBlackBox()" + <bbDesallocateConnectors(); - bbtkDebugMessage("object",3, - "<== ComplexBlackBox::~ComplexBlackBox() [" - < ComplexBlackBox::Clear() [" - < ComplexBlackBox::Clear()" + < Releasing connections"< Releasing boxes"< ComplexBlackBox::bbAllocateConnectors()" <first<<"\""<first<<"\""<first<<"\""<first<<"\""<second->GetName()] = c; } - - bbtkDebugDecTab("Kernel",8); - } + bbtkBlackBoxDebugMessage("kernel",8, + "<== ComplexBlackBox::bbAllocateConnectors()" + < ComplexBlackBox::DesallocateConnectors()" < ComplexBlackBox::bbClone(\""< ComplexBlackBox::bbExecute() [" - < ComplexBlackBox::bbExecute()" + < Executing '"<<*i<<"'"< Executing '"<<*i<<"'"<bbExecute(force); } } @@ -289,21 +295,23 @@ namespace bbtk i->second->bbExecute(force); } } - + bbtkBlackBoxDebugMessage("process",2, + "<** ComplexBlackBox::bbExecute()" + <GetTarget())->bbGetOutput(d->GetOutput()); - - bbtkDebugDecTab("Data",7); return p; } //================================================================== @@ -332,9 +338,9 @@ namespace bbtk /// Gets the input Data of a given name Data ComplexBlackBox::bbGetInput( const std::string &name ) { - bbtkDebugMessageInc("Data",7, - "ComplexBlackBox::bbGetInput(\""<GetTarget())->bbGetInput(d->GetInput()); - bbtkDebugDecTab("Data",7); return p; } //================================================================== @@ -351,9 +356,9 @@ namespace bbtk /// Sets the data of the output called void ComplexBlackBox::bbSetOutput( const std::string &name, Data data) { - bbtkDebugMessageInc("Data",7, - "ComplexBlackBox::bbSetOutput(\""<GetTarget())->bbSetOutput(d->GetOutput(),data); - bbtkDebugDecTab("Data",7); } //================================================================== @@ -370,16 +374,15 @@ namespace bbtk void ComplexBlackBox::bbSetInput( const std::string &name, Data data, bool setModified) { - bbtkDebugMessageInc("Data",7, - "ComplexBlackBox::bbSetInput(\""<GetInputDescriptor(name); bbGetBlackBox(d->GetTarget())->bbSetInput(d->GetInput(),data,setModified); - bbtkDebugDecTab("Data",7); } //================================================================== @@ -390,10 +393,10 @@ namespace bbtk void* data, bool setModified) { - bbtkDebugMessageInc("Data",7, + bbtkBlackBoxDebugMessage("data",7, "ComplexBlackBox::bbBruteForceSetInputPointer('" - <GetInputDescriptor(name); @@ -402,7 +405,6 @@ namespace bbtk data, setModified); - bbtkDebugDecTab("Data",7); } //================================================================== @@ -410,10 +412,9 @@ namespace bbtk /// Connects the input to the connection c void ComplexBlackBox::bbConnectInput( const std::string& name, Connection* c) { - bbtkDebugMessage("connection",2, + bbtkBlackBoxDebugMessage("connection",2, "==> ComplexBlackBox::bbConnectInput(\"" - <GetFullName()<<") [" - <GetFullName()<<")" <GetTarget()); - bbtkDebugMessage("connection",2," - Target = "<GetTarget()<<" = "<bbGetFullName()<bbGetFullName()<SetBlackBoxTo(t); c->SetBlackBoxToInput(d->GetInput()); - bbtkDebugMessage("connection",2," - New conn = "<GetFullName()<GetFullName()<<") [" - <GetFullName()<<")" < to the connection c void ComplexBlackBox::bbConnectOutput( const std::string& name, Connection* c) { - bbtkDebugMessage("connection",2, + bbtkBlackBoxDebugMessage("connection",2, "==> ComplexBlackBox::bbConnectOutput(\"" - <GetFullName()<<") [" - <GetFullName()<<")" + <GetOutputDescriptor(name); BlackBox::Pointer t = bbGetBlackBox(d->GetTarget()); - bbtkDebugMessage("connection",2," - Target = "<GetTarget()<<" = "<bbGetFullName()<bbGetFullName()<SetBlackBoxFrom(t); c->SetBlackBoxFromOutput(d->GetOutput()); - bbtkDebugMessage("connection",2," - New conn = "<GetFullName()<GetFullName()<<") [" - <GetFullName()<<")" + <bbGetName() - <<"\") [" - <bbGetName() + <<"\")" + <bbGetName()) ) { @@ -487,7 +487,6 @@ namespace bbtk b->bbSetParent(GetThisPointer()); mBlackBoxMap[b->bbGetName()] = b; - bbtkDebugDecTab("Kernel",7); } //================================================================== @@ -495,15 +494,14 @@ namespace bbtk /// Adds the black box to the complex box (unsafe) void ComplexBlackBox::bbUnsafeAddBlackBox( BlackBox::Pointer b) { - bbtkDebugMessageInc("Kernel",7, + bbtkBlackBoxDebugMessage("kernel",7, "ComplexBlackBox::UnsafeAddBlackBox(\""<bbGetName() - <<"\") [" - <bbSetParent(GetThisPointer()); mBlackBoxMap[b->bbGetName()] = b; - bbtkDebugDecTab("Kernel",7); } //================================================================== @@ -512,9 +510,9 @@ namespace bbtk void ComplexBlackBox::bbRemoveBlackBox( const std::string& name, bool remove_connections ) { - bbtkDebugMessageInc("Kernel",7, - "ComplexBlackBox::RemoveBlackBox(\""< BlackBox::Pointer ComplexBlackBox::bbGetBlackBox( const std::string& name ) { - bbtkDebugMessageInc("Kernel",9, - "ComplexBlackBox::GetBlackBox(\""<second; } //================================================================== @@ -586,19 +581,16 @@ namespace bbtk /// if it does not exist but return a null pointer BlackBox::Pointer ComplexBlackBox::bbUnsafeGetBlackBox( const std::string& name ) { - bbtkDebugMessageInc("Kernel",9, - "ComplexBlackBox::UnsafeGetBlackBox(\""<second; } @@ -607,18 +599,16 @@ namespace bbtk //================================================================== void ComplexBlackBox::bbPrintBlackBoxes() { - bbtkDebugMessageInc("Kernel",9, - "ComplexBlackBox::PrintBlackBoxes() [" - <second->bbGetFullName()<second->bbGetFullName()< ComplexBlackBoxDescriptor::ComplexBlackBoxDescriptor(\""< ComplexBlackBoxDescriptor(\""<SetAsPrototype(); - bbtkDebugMessage("object",2,"<== ComplexBlackBoxDescriptor::ComplexBlackBoxDescriptor(\""< ComplexBlackBoxDescriptor::~ComplexBlackBoxDescriptor(\""<Delete(); + bbtkDDebugMessage("object",2,"==> ~ComplexBlackBoxDescriptor()"<bbClone(name); - bbtkDebugDecTab("Kernel",5); + } //======================================================================= @@ -120,10 +124,10 @@ namespace bbtk const std::string& name ) { - bbtkDebugMessageInc("Kernel",5, + bbtkDDebugMessage("kernel",5, "ComplexBlackBoxDescriptor::Add(\"" - <bbAddBlackBox ( GetFactory()->NewBlackBox(type,name) ); - bbtkDebugDecTab("Kernel",5); + } //======================================================================= @@ -157,10 +161,10 @@ namespace bbtk /// Adds a black box to the execution list void ComplexBlackBoxDescriptor::AddToExecutionList ( const std::string& box) { - bbtkDebugMessageInc("Kernel",5, - "ComplexBlackBoxDescriptor::AddToExecutionList(\"" - <bbUnsafeGetBlackBox( box ); if ( !b ) @@ -170,7 +174,7 @@ namespace bbtk // ok mPrototype->bbAddToExecutionList ( box ); - bbtkDebugDecTab("Kernel",5); + } @@ -182,12 +186,12 @@ namespace bbtk const std::string& input ) { - bbtkDebugMessageInc("Kernel",5, + bbtkDDebugMessage("kernel",5, "ComplexBlackBoxDescriptor::Connect(\"" <bbAddConnection(c); - bbtkDebugDecTab("Kernel",5); + } //======================================================================= @@ -224,12 +228,12 @@ namespace bbtk const std::string& input, const std::string& help) { - bbtkDebugMessageInc("Kernel",5, + bbtkDDebugMessage("kernel",5, "ComplexBlackBoxDescriptor::DefineInput(\"" <bbGetBlackBox( box ); if ( !bb ) @@ -255,7 +259,7 @@ namespace bbtk d->GetTypeInfo())); - bbtkDebugDecTab("Kernel",5); + } //======================================================================= @@ -266,12 +270,12 @@ namespace bbtk const std::string& output, const std::string& help) { - bbtkDebugMessageInc("Kernel",5, + bbtkDDebugMessage("kernel",5, "ComplexBlackBoxDescriptor::DefineOutput(\"" <bbGetBlackBox( box ); if ( !bb ) @@ -297,7 +301,7 @@ namespace bbtk d->GetTypeInfo())); - bbtkDebugDecTab("Kernel",5); + } //======================================================================= @@ -327,9 +331,9 @@ namespace bbtk int detail, int level, const std::string& output_dir, bool relative_link) { - bbtkDebugMessageInc("Kernel",9, - "ComplexBlackBoxDescriptor::InsertHtmlHelp() [" - <GetName()<<"::" <"<second->GetNature()); nature += "]"; nature.append(1+natlmax-nature.size(),' '); - bbtkMessage("Help",1, + bbtkMessage("help",1, " '"<second->GetName()); @@ -575,7 +579,7 @@ namespace bbtk std::string nature(o->second->GetNature()); nature += "]"; nature.append(1+natlmax-nature.size(),' '); - bbtkMessage("Help",1, + bbtkMessage("help",1, " '"<bbGetBlackBoxMap(); if (B.size()) - bbtkMessage("Help",1," * Boxes : "<second->bbGetName()<< + bbtkMessage("help",1," '"<second->bbGetName()<< "' <" << b->second->bbGetDescriptor()->GetPackage()->GetName() <<"::" diff --git a/kernel/src/bbtkComplexBlackBoxInputDescriptor.cxx b/kernel/src/bbtkComplexBlackBoxInputDescriptor.cxx index 65121f0..0cbab13 100644 --- a/kernel/src/bbtkComplexBlackBoxInputDescriptor.cxx +++ b/kernel/src/bbtkComplexBlackBoxInputDescriptor.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkComplexBlackBoxInputDescriptor.cxx,v $ Language: C++ - Date: $Date: 2008/10/17 08:18:12 $ - Version: $Revision: 1.5 $ + Date: $Date: 2009/05/28 08:12:05 $ + Version: $Revision: 1.6 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -55,13 +55,14 @@ namespace bbtk mType(type) { - bbtkDebugMessage("Kernel",9,"ComplexBlackBoxInputDescriptor::ComplexBlackBoxInputDescriptor(\""< Connection::Connection(\"" + bbtkDebugMessage("object",1,"##> Connection(\"" <bbGetName()<<"\",\""<bbGetName()<<"\",\""<bbGetName()<<"\",\""<bbGetName()<<"\",\""< Connection::Connection(\"" + bbtkDebugMessage("object",2,"==> Connection(\"" <bbGetName()<<"\",\""<bbGetName()<<"\",\""< Connection::Connection(\"" - <bbGetFullName()<<"\",\""<bbGetFullName()<<"\",\""< Connection(\"" + <bbGetName()<<"\",\""<bbGetName()<<"\",\""<bbGetInputType(input) == typeid(Data) ) { - bbtkDebugMessage("Kernel",8," -> '"< '"<()<<" : can receive any data" <bbGetOutputConnector(output).AddChangeObserver(boost::bind(&bbtk::Connection::OnOutputChange,this, _1, _2, _3)); - bbtkDebugMessage("connection",1,"<== Connection::Connection(\"" - <bbGetFullName()<<"\",\""<bbGetFullName()<<"\",\""<bbGetName()<<"\",\""<bbGetName()<<"\",\""< Connection::Connection(\"" + bbtkDebugMessage("object",2,"<== Connection(\"" <bbGetName()<<"\",\""<bbGetName()<<"\",\""< Connection::Connection(\"" + bbtkDebugMessage("object",1,"##> Connection(\"" <bbGetName()<<"\",\""<bbGetName()<<"\",\""<bbGetName()<<"\",\""<bbGetName()<<"\",\""< Connection::Connection(\"" + bbtkDebugMessage("object",2,"==> Connection(\"" <bbGetName()<<"\",\""<bbGetName()<<"\",\""< Connection::Connection(\"" - <bbGetFullName()<<"\",\""<bbGetFullName()<<"\",\""< Connection(\"" + <bbGetName()<<"\",\""<bbGetName()<<"\",\""<bbGetInputType(input) == typeid(Data) ) { - bbtkDebugMessage("Kernel",8," -> '"< '"<()<<" : can receive any data" <bbGetOutputConnector(output).AddChangeObserver(boost::bind(&bbtk::Connection::OnOutputChange,this, _1, _2, _3)); - bbtkDebugMessage("connection",1,"<== Connection::Connection(\"" - <bbGetFullName()<<"\",\""<bbGetFullName()<<"\",\""<bbGetName()<<"\",\""<bbGetName()<<"\",\""< Connection::Connection(\"" + bbtkDebugMessage("object",2,"==> Connection(\"" <bbGetName()<<"\",\""<bbGetName()<<"\",\""< Connection::~Connection() [" - < ~Connection()" + < Connection::RecursiveExecute() [" - < Connection::RecursiveExecute()" + <bbGetInputConnector(mInput).SetStatus(s); - bbtkDebugMessage("process",4, + bbtkCDebugMessage("process",4, " --> '"<bbGetName()<<"."<bbGetInputConnector(mInput)<<"] " <<"' new status '" @@ -375,9 +380,9 @@ Connection::Connection(BlackBox::Pointer from, const std::string& output, <<"'" << std::endl); - bbtkDebugMessage("process",4, - "<=== Connection::RecursiveExecute() [" - <() <<" which contains a <" <bbGetOutput(mOutput).type()) <<">"<bbGetInputType(mInput)) <<">"<bbGetOutput(mOutput).type() == typeid(void)) { - bbtkDebugMessage("data",3, + bbtkCDebugMessage("data",3, " -> Source is void : nothing to transfer!"<bbGetOutput(mOutput) .contains( mTo->bbGetInputType(mInput) ) ) { - bbtkDebugMessage("data",3, + bbtkCDebugMessage("data",3, " -> Equal types : transfer ok"<bbSetInput( mInput, mFrom->bbGetOutput(mOutput), @@ -449,7 +454,7 @@ Connection::Connection(BlackBox::Pointer from, const std::string& output, } if (adaptor) { - bbtkDebugMessage("data",3," -> Adaptor found : using it" + bbtkCDebugMessage("data",3," -> Adaptor found : using it" <bbSetInput("In",mFrom->bbGetOutput(mOutput),false); adaptor->bbExecute(); @@ -463,7 +468,7 @@ Connection::Connection(BlackBox::Pointer from, const std::string& output, (mTo->bbGetDescriptor()->GetInputDescriptor(mInput) ->IsPointerType()) ) { - bbtkDebugMessage("data",3, + bbtkCDebugMessage("data",3, " -> No adaptor found but source and target types are both pointers : trying up or down cast"< Connection::OnOutputChange(" - <bbGetInputConnectorMap().find("In")->second; @@ -547,7 +552,8 @@ Connection::Connection(BlackBox::Pointer from, const std::string& output, //================================================================== void Connection::Check() const { - bbtkMessage("debug",1,"** Checking Connection "<<(void*)this<<" ["<bbGetFullName()<bbGetName()<bbHasOutput(mOutput)) { bbtkError("** Checking Connection "<<(void*)this <<" ["<bbGetFullName()<<" does not have output '" + << mFrom->bbGetName()<<" does not have output '" <bbGetFullName()<<" output '" + <bbGetName()<<" output '" <bbGetFullName() + <bbGetName() <<" does not point to this connection"); } @@ -614,13 +619,13 @@ Connection::Connection(BlackBox::Pointer from, const std::string& output, // std::cout << mTo << std::endl; // std::cout << mTo->bbGetDescriptor() << std::endl; // std::cout << mTo->bbGetDescriptor()->GetTypeName() << std::endl; - // mTo->bbGetFullName(); - bbtkMessage("debug",2," - To : "<bbGetFullName()<bbGetName(); + bbtkMessage("debug",2," - To : "<bbGetName()<bbHasInput(mInput)) { bbtkError("** Checking Connection "<<(void*)this <<" ["<bbGetFullName()<<" does not have input '" + <bbGetName()<<" does not have input '" <bbGetFullName()<<" input '" + <bbGetName()<<" input '" <bbGetFullName() + <bbGetName() <<" does not point to this connection"); } diff --git a/kernel/src/bbtkExecuter.cxx b/kernel/src/bbtkExecuter.cxx index 519a264..91054a3 100644 --- a/kernel/src/bbtkExecuter.cxx +++ b/kernel/src/bbtkExecuter.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkExecuter.cxx,v $ Language: C++ - Date: $Date: 2009/03/30 15:22:51 $ - Version: $Revision: 1.29 $ + Date: $Date: 2009/05/28 08:12:05 $ + Version: $Revision: 1.30 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -37,6 +37,7 @@ #include "bbtkMessageManager.h" #include "bbtkFactory.h" #include "bbtkUtilities.h" +//#include "bbtkWx.h" #include #ifdef USE_WXWIDGETS @@ -52,7 +53,7 @@ namespace bbtk //======================================================================= Executer::Pointer Executer::New() { - bbtkDebugMessage("Kernel",9,"Executer::New()"< Executer()" < create it to pass it to the factory @@ -76,19 +77,19 @@ namespace bbtk // -> this would auto-destroy !! mFactory->SetExecuter(MakePointer(this,true)); Reset(); - bbtkDebugDecTab("Kernel",9); + bbtkDebugMessage("object",2,"<== Executer()" < Executer::~Executer()" < ~Executer()" <Reset(); mFactory.reset(); - bbtkDebugDecTab("Kernel",9); + bbtkDebugMessage("object",2,"<== ~Executer()" < Executer::Reset()" <CheckPackages(); mOpenDefinition.clear(); mOpenPackage.clear(); - GetFactory()->Reset(); + // Wx::DestroyTopWindow(); + + GetFactory()->Reset(); + Wx::ProcessPendingEvents(); + // Create user package Package::Pointer p = Package::New("user","internal","User defined black boxes",""); @@ -142,8 +147,7 @@ namespace bbtk // Object::PrintObjectListInfo(); // GetFactory()->CheckPackages(); - - bbtkDebugDecTab("Kernel",9); + bbtkDebugMessage("kernel",9,"<== Executer::Reset()" < Executer::BeginPackage(\""<InsertPackage(p); } mOpenPackage.push_back(p); + + bbtkDebugMessage("kernel",9,"<== Executer::BeginPackage(\""< Executer::Define(\""<SetScriptFileName(scriptfilename); mOpenDefinition.push_back( CBBDefinition( b, pack ) ); - bbtkDebugDecTab("Kernel",9); + bbtkDebugMessage("kernel",9,"<== Executer::Define(\""< Executer::Clear()" <GetPrototype()->Clear(); - + bbtkDebugMessage("kernel",9,"<== Executer::Clear()" <GetTypeName()<<"\")" - < Executer::EndDefine(\"" + <GetTypeName()<<"\")" + <RegisterBlackBox(GetCurrentDescriptor()); + bbtkDebugMessage("kernel",9,"<== Executer::EndDefine(\"" + <GetTypeName()<<"\")" + <GetTypeName()<<"\" contains : "<GetTypeName()<<"\" contains : "<PrintBlackBoxes(); - bbtkDecTab("Help",1); } //======================================================================= @@ -625,8 +636,8 @@ namespace bbtk } else { - bbtkMessageInc("Help",1,"No black box: \"" - < ~Factory()"< Factory::Reset()"<GetName()<<" " + bbtkMessage("output",2,p->GetName()<<" " <GetVersion() <<" " <GetAuthor() << " Category(s) :" <GetCategory() <GetDescription()<GetDescription()<AddFactory(GetThisPointer()); mPackageMap[pkgname] = p; @@ -149,7 +149,7 @@ namespace bbtk // // lastname : string before the last / (if any), or user supplied name - bbtkDebugMessageInc("Kernel",7,"Factory::LoadPackage(\""< package_paths; @@ -167,7 +167,7 @@ namespace bbtk iUnload = mPackageMap.find(pkgname); if (iUnload != mPackageMap.end()) { - bbtkMessage("Output",2,"["<< pkgname <<"] already loaded" << std::endl); + bbtkMessage("output",2,"["<< pkgname <<"] already loaded" << std::endl); return; } @@ -208,7 +208,7 @@ namespace bbtk // The following is *NOT* a debug time message : // It's a user intended message. // Please don't remove it. - bbtkMessage("Output",3," [" < mAlive; do { @@ -342,7 +342,7 @@ namespace bbtk // If not dead : reinsert if (i->lock()) { - bbtkDebugMessage("Kernel",7,"Package "<lock()->GetName() + bbtkDebugMessage("kernel",7,"Package "<lock()->GetName() <<" still alive"<lock()); } @@ -350,7 +350,7 @@ namespace bbtk } while (mPackageMap.size()>0); - bbtkDebugDecTab("Kernel",7); + bbtkDebugDecTab("kernel",7); } //=================================================================== @@ -368,7 +368,7 @@ namespace bbtk /// Finally erases the package entry in the packages map void Factory::ClosePackage(PackageMapType::iterator& i) { - bbtkDebugMessageInc("Kernel",7,"Factory::ClosePackage(\"" + bbtkDebugMessageInc("kernel",7,"Factory::ClosePackage(\"" <second->GetName() <<"\")"<GetName()<<"\")"<AddFactory(GetThisPointer()); mPackageMap[p->GetName()] = p; - bbtkDebugDecTab("Kernel",9); + bbtkDebugDecTab("kernel",9); } //=================================================================== @@ -503,7 +503,7 @@ namespace bbtk /// Removes a package from the factory (and deletes it) void Factory::RemovePackage( Package::Pointer p ) { - bbtkDebugMessageInc("Kernel",9,"Factory::RemovePackage(\""<< + bbtkDebugMessageInc("kernel",9,"Factory::RemovePackage(\""<< p->GetName()<<"\")"<GetName()<<"\") : package absent from factory"); } - bbtkDebugDecTab("Kernel",9); + bbtkDebugDecTab("kernel",9); } //=================================================================== @@ -532,7 +532,7 @@ namespace bbtk BlackBox::Pointer Factory::NewBlackBox(const std::string& type, const std::string& name) const { - bbtkDebugMessageInc("Kernel",7,"Factory::NewBlackBox(\"" + bbtkDebugMessageInc("kernel",7,"Factory::NewBlackBox(\"" <,<" <,\"" < widget adaptor available"); } - bbtkDebugDecTab("Kernel",7); + bbtkDebugDecTab("kernel",7); return b; } //=================================================================== @@ -621,7 +621,7 @@ namespace bbtk const DataInfo& typeout, std::string& adaptor) const { - bbtkDebugMessageInc("Kernel",8,"Factory::FindAdaptor(<" + bbtkDebugMessageInc("kernel",8,"Factory::FindAdaptor(<" <,<" <)"<,<" <)"<,<" <)"<"<second.lock()->GetTypeName(); - bbtkMessage("Kernel",5, + bbtkMessage("kernel",5, "===> Found first part : "<first.mTypeIn<<"->" <first.mTypeOut< Found second part : "< No second part found"<bbGetName()<<"\",\""<bbGetName()<<"\",\""<second; } else { - bbtkDebugDecTab("Kernel",9); + bbtkDebugDecTab("kernel",9); bbtkError("package \""<first.c_str(),url.c_str(),";" ); } fprintf( ff , "}\n\n"); - bbtkDebugDecTab("Kernel",9); + bbtkDebugDecTab("kernel",9); } //=================================================================== @@ -862,7 +862,7 @@ namespace bbtk } } - bbtkDebugDecTab("Kernel",9); + bbtkDebugDecTab("kernel",9); if (!found) { bbtkError("No package of the factory contains any black box <" @@ -876,7 +876,7 @@ namespace bbtk void Factory::CreateHtmlIndex(IndexEntryType type, const std::string& filename) { - bbtkDebugMessageInc("Kernel",9,"Factory::CreateHtmlIndex(\"" + bbtkDebugMessageInc("kernel",9,"Factory::CreateHtmlIndex(\"" < Interpreter("< Interpreter(VirtualExec)"< Interpreter::~Interpreter()" < ~Interpreter()" < Interpreter::InterpretFile(\""< Interpreter::InterpretBuffer()"< Interpreter::InterpretCurrentStreams()"<0) { @@ -697,6 +701,9 @@ namespace bbtk } CloseCurrentFile(); } + bbtkDebugMessage("interpreter",4, + "<== Interpreter::InterpretCurrentStreams()"< Interpreter::InterpretLine('"< Interpreter::DoInterpretLine(\"" + < words; SplitLine(line,words); @@ -736,15 +742,15 @@ namespace bbtk // Empty line if (words.size()<1) { - bbtkDebugDecTab("Interpreter",9); + bbtkDebugDecTab("interpreter",9); return; } // Single line comment : # or // if ( words[0][0]=='#' || (words[0][0]=='/' && words[0][1]=='/') ) { - bbtkDebugDecTab("Interpreter",9); - bbtkMessage("Interpreter",9,"Comment"<& tokens) { - bbtkDebugMessageInc("Interpreter",9,"Interpreter::SplitLine(\""< Interpreter::SplitLine(\""< quote; @@ -1042,7 +1050,7 @@ namespace bbtk ++i; if (i!=quote.end()) { - // bbtkDebugMessage("Interpreter",0,"\""<<*i<<"\""<GetNoExecMode()) return; - bbtkDebugMessageInc("Interpreter",9,"Interpreter::Print(\""< Interpreter::SwitchToFile( \"" + < script_paths; std::string fullPathScriptName; // full path script name @@ -1173,7 +1180,7 @@ namespace bbtk // The following is *NOT* a debug time message : // It's a user intended message. // Please don't remove it. - bbtkMessage("Interpreter",1, + bbtkMessage("interpreter",1, "look for : [" << name << "]" << std::endl); @@ -1181,7 +1188,7 @@ namespace bbtk std::string upath; pkgname = Utilities::ExtractScriptName(name,upath); - bbtkMessage("Interpreter",3, + bbtkMessage("interpreter",3, "package name:[" << pkgname << "] path:[" << upath << "]" << std::endl); bool fullnameGiven = false; @@ -1198,7 +1205,7 @@ namespace bbtk // ==== no path provided : look in root bbs path if (upath.size()==0) { - // bbtkMessage("Interpreter",1, + // bbtkMessage("interpreter",1, // LG : add all bbs path // script_paths.push_back( ConfigurationFile::GetInstance().Get_root_bbs_path() ); std::vector::const_iterator i; @@ -1262,7 +1269,7 @@ namespace bbtk std::vector::iterator i; for (i=script_paths.begin();i!=script_paths.end();i++) { - bbtkMessage("Interpreter",1, + bbtkMessage("interpreter",1, "--> Looking in '" << *i << "'" << std::endl); Filenames.clear(); @@ -1278,7 +1285,7 @@ namespace bbtk if ( (*j).substr(lgr-4, 4) != ".bbp") continue; (*stream) << "include \"" << *j << "\"\n"; - bbtkMessage("Interpreter",2," --> Found '" << *j << "'" << std::endl); + bbtkMessage("interpreter",2," --> Found '" << *j << "'" << std::endl); nbBssFiles++; } // for (std::vector... @@ -1287,12 +1294,12 @@ namespace bbtk // === Result ... if (nbBssFiles==0) { - bbtkMessage("Interpreter",1, + bbtkMessage("interpreter",1, " --> No .bbp found"<< std::endl); } else { - bbtkMessage("Interpreter",1, + bbtkMessage("interpreter",1, " --> "< Interpreter::SwitchToStream()" + < Interpreter::LoadScript(" + <[" << fullPathScriptName + bbtkMessage("interpreter",1," -->[" << fullPathScriptName << "] found" << std::endl); mFile.push_back(s); @@ -1485,23 +1498,23 @@ void Interpreter::SwitchToStream( std::stringstream* stream ) mIncludeFileName.push_back(includeScriptName); mLine.push_back(0); - return; + return; } //======================================================================= //======================================================================= void Interpreter::CloseCurrentFile() { - bbtkDebugMessage("Interpreter",9,"Interpreter::CloseCurrentFile()" + bbtkDebugMessage("interpreter",9,"==> Interpreter::CloseCurrentFile()" < no file left open"< no file left open"<(mFile.back()); if (file!=0) file->close(); @@ -1512,10 +1525,10 @@ void Interpreter::SwitchToStream( std::stringstream* stream ) mIncludeFileName.pop_back(); mLine.pop_back(); - bbtkDebugMessage("Interpreter",9," Remains " + bbtkDebugMessage("interpreter",9," Remains " < Interpreter::CloseAllFiles()" <& words, CommandInfoType& info ) { - bbtkDebugMessageInc("Interpreter",9,"Interpreter::InterpretCommand(...)"< Interpreter::InterpretCommand(...)"<second; - bbtkDecTab("Interpreter",9); + + bbtkDebugMessage("interpreter",9,"<== Interpreter::InterpretCommand(...)"<& words) //======================================================================= void Interpreter::CommandLineInterpreter() { - bbtkDebugMessageInc("Interpreter",9, + bbtkDebugMessageInc("interpreter",9, "Interpreter::CommandLineInterpreter()"<& words) /* catch (QuitException e) { - bbtkMessage("Interpreter",1,"Interpreter : Quit"<& words) std::cout << "Good bye !" << std::endl; - bbtkDebugDecTab("Interpreter",9); + bbtkDebugDecTab("interpreter",9); } //======================================================================= @@ -2108,7 +2123,7 @@ void Interpreter::NewGUI(const std::string& boxname, if (workspace==0) { delete s; - bbtkError("Interpreter::CreateGUI : could not access the executer currently defined complex box"); + bbtkError("interpreter::CreateGUI : could not access the executer currently defined complex box"); } diff --git a/kernel/src/bbtkItkBlackBoxMacros.h b/kernel/src/bbtkItkBlackBoxMacros.h index 4a52d99..98adfcb 100644 --- a/kernel/src/bbtkItkBlackBoxMacros.h +++ b/kernel/src/bbtkItkBlackBoxMacros.h @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkItkBlackBoxMacros.h,v $ Language: C++ - Date: $Date: 2009/05/15 15:00:24 $ - Version: $Revision: 1.6 $ + Date: $Date: 2009/05/28 08:12:06 $ + Version: $Revision: 1.7 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -98,11 +98,11 @@ public: \ inline void bbUserProcess() \ { \ - bbtkDebugMessage("process",1,"**> Processing ["< Processing..." \ + <mMaxMessageLength-2); k++) { - bbtkMessageCont("Help",1," "); + bbtkMessageCont("help",1," "); } - bbtkMessageCont("Help",1,"Level Nature" << bbtkendl); + bbtkMessageCont("help",1,"Level Nature" << bbtkendl); std::map::iterator i; std::map::iterator j; for (i=GetInstance()->mMessageLevel.begin(), j=GetInstance()->mMessageHelp.begin(); i!=GetInstance()->mMessageLevel.end();++i,++j) { - bbtkMessage("Help",1, (*i).first); + bbtkMessage("help",1, (*i).first); for (int k=0; k<(int)(GetInstance()->mMaxMessageLength+2-(*i).first.length()); k++) { - bbtkMessageCont("Help",1," "); + bbtkMessageCont("help",1," "); } - bbtkMessageCont("Help",1, (*i).second << "\t" + bbtkMessageCont("help",1, (*i).second << "\t" << (*j).second << bbtkendl); } - bbtkMessage("Help",1,"===========================================" + bbtkMessage("help",1,"===========================================" << bbtkendl); } - + std::string MessageManager::FormatKey(const std::string& key, + int value) + { + std::string s; + if ( GetInstance()->mMessageLevel["code"] != 0 ) + { + s = key.substr(0,4); + std::stringstream ss; + ss << value; + // s += " "; + s += ss.str(); + s += "> "; + } + return s; + } } diff --git a/kernel/src/bbtkMessageManager.h b/kernel/src/bbtkMessageManager.h index 289f9eb..3832b85 100644 --- a/kernel/src/bbtkMessageManager.h +++ b/kernel/src/bbtkMessageManager.h @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkMessageManager.h,v $ Language: C++ - Date: $Date: 2008/11/29 21:41:34 $ - Version: $Revision: 1.8 $ + Date: $Date: 2009/05/28 08:12:06 $ + Version: $Revision: 1.9 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -108,11 +108,12 @@ } \ else if (value<= __bbtkOnMessageLevelVariable) +#define BBTK_PREPEND_MESSAGE_WITH_CODE #ifdef BBTK_PREPEND_MESSAGE_WITH_CODE -#define bbtkMessageCode \ - key[0] << key[1] << key[2] << value << " " +#define bbtkMessageCode(key,value) \ + bbtk::MessageManager::FormatKey(key,value) #else -#define bbtkMessageCode "" +#define bbtkMessageCode(key,value) "" #endif #ifdef BBTK_PREPEND_MESSAGE_WITH_TAB @@ -122,7 +123,7 @@ #define bbtkMessageTab "" #endif -#define BBTK_PREPEND_MESSAGE_WITH_SPACE +//#define BBTK_PREPEND_MESSAGE_WITH_SPACE #ifdef BBTK_PREPEND_MESSAGE_WITH_SPACE #define bbtkMessageSpace(value) \ bbtk::MessageManager::GetSpace(value) @@ -139,7 +140,7 @@ do { \ bbtkOnMessageLevel(key,value) \ { \ - std::cout << bbtkMessageCode \ + std::cout << bbtkMessageCode(key,value) \ << bbtkMessageTab \ << bbtkMessageSpace(value) \ << MESSAGE; \ @@ -164,7 +165,7 @@ { \ bbtkOnMessageLevel(key,value) \ { \ - std::cout << bbtkMessageCode \ + std::cout << bbtkMessageCode(key,value) \ << bbtkMessageTab \ << bbtkMessageSpace(value) \ << MESSAGE; \ @@ -179,7 +180,7 @@ bbtkOnMessageLevel(key,value) \ { \ bbtk::MessageManager::DecTab(); \ - std::cout << bbtkMessageCode \ + std::cout << bbtkMessageCode(key,value) \ << bbtkMessageTab \ << bbtkMessageSpace(value) \ << MESSAGE; \ @@ -236,7 +237,7 @@ { \ bbtkOnMessageLevel(key,value) \ { \ - std::cout << bbtkMessageCode \ + std::cout << bbtkMessageCode(key,value) \ << bbtkMessageTab \ << bbtkMessageSpace(value) \ << MESSAGE; \ @@ -261,7 +262,7 @@ { \ bbtkOnMessageLevel(key,value) \ { \ - std::cout << bbtkMessageCode \ + std::cout << bbtkMessageCode(key,value) \ << bbtkMessageTab \ << bbtkMessageSpace(value) \ << MESSAGE; \ @@ -276,7 +277,7 @@ bbtkOnMessageLevel(key,value) \ { \ bbtk::MessageManager::DecTab(); \ - std::cout << bbtkMessageCode \ + std::cout << bbtkMessageCode(key,value) \ << bbtkMessageTab \ << bbtkMessageSpace(value) \ << MESSAGE; \ @@ -439,6 +440,8 @@ namespace bbtk /// static void PrintInfo(); + static std::string FormatKey(const std::string& key, int value); + private: std::map mMessageLevel; std::map mMessageHelp; diff --git a/kernel/src/bbtkPackage.cxx b/kernel/src/bbtkPackage.cxx index 921682c..ead823c 100644 --- a/kernel/src/bbtkPackage.cxx +++ b/kernel/src/bbtkPackage.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkPackage.cxx,v $ Language: C++ - Date: $Date: 2009/04/21 14:36:51 $ - Version: $Revision: 1.25 $ + Date: $Date: 2009/05/28 08:12:06 $ + Version: $Revision: 1.26 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -77,7 +77,7 @@ namespace bbtk mDescription(description), mVersion(version) { - bbtkDebugMessage("object",2,"==> Package::Package('"< Package('"< Package::~Package(\""< ~Package(\""< Processing ["< Processing..." \ + <Update(); \ - bbtkDebugMessage("process",2,"<** Processing ["< class WidgetBlackBoxWindow; //================================================================== @@ -66,7 +65,6 @@ namespace bbtk // typedef WidgetTraits Traits; typedef W Widget; typedef Widget* WidgetPointer; - typedef WidgetBlackBoxWindow Window; BBTK_BLACK_BOX_INTERFACE(WidgetBlackBox,bbtk::AtomicBlackBox); @@ -82,49 +80,25 @@ namespace bbtk /// Overloaded bbCreateWindow method for WidgetBlackBoxes which handles /// the window creation if needed virtual void bbCreateWindow(); + virtual bool bbWindowIsCreated() { return false; } //================================================================== //================================================================== /// Overloaded bbShowWindow method for WidgetBlackBoxes which handles /// the window creation if needed - virtual void bbShowWindow(); + virtual void bbShowWindow() {} //================================================================== - //================================================================== - /// Returns the **OWN** window associated to the box - /// If 0 returned = no window - Window* bbGetWindow() { return bbmWindow; } - /// Returns the window containing the widget associated to the box - /// Which can be the own window of **ANOTHER** box in case of - /// a hierarchy of widgets (layouts) - /// More precisely : - /// If bbGetWindow() != 0 then returns bbGetWindow() - /// Else if the output 'Widget' is connected - /// then returns bbGetContainingWindow() of the box connected to 'Widget' - /// Else returns 0; - Window* bbGetContainingWindow(); - - - /// Returns true iff the 'containing window' exists and is shown - /// (see bbGetContainingWindow). - bool bbIsShown(); - + /// Convenient method which returns true iff the output Widget is connected bool bbIsOutputWidgetConnected(); //================================================================== - /// User callback invoked when the containing window is shown - virtual void bbUserOnShow() {} + void bbSetShown(bool); + bool bbIsShown(); //================================================================== - //================================================================== - /// User callback invoked when the containing window is hidden - virtual void bbUserOnHide() {} - //================================================================== - - /// Sets the window - inline void bbSetWindow(Window* w) { bbmWindow=w; } - + //================================================================== /// User callback for creating the widget associated to the box /// ** Must be defined ** in user classes @@ -171,38 +145,23 @@ namespace bbtk //================================================================== //================================================================== - /// Hides the WidgetBlackBoxWindow associated to the box (if exists) - void bbHideWindow(); - /// Closes (destroys) the WidgetBlackBoxWindow associated to the box - /// (if exists) - void bbCloseWindow(); - //================================================================== - - - //================================================================== - // virtual void InitWindowManagerIfNeeded(); - virtual void IncNbWindowsAlive() {} - virtual void DecNbWindowsAlive() {} - virtual int GetNbWindowsAlive() { return 0; } - virtual bool IsSomeWindowAlive() { return false; } - - virtual void IncNbWindowsShown() {} - virtual void DecNbWindowsShown() {} - virtual int GetNbWindowsShown() { return 0; } - virtual bool IsSomeWindowShown() { return false; } + /// Destroys the WidgetBlackBoxWindow associated to the box (if exists) + virtual void bbDestroyWindow() {} //================================================================== + private: - /// friendship - friend class WidgetBlackBoxWindow; - // friend class WidgetBlackBoxWidgetEventHandler; - - /// The WidgetBlackBoxWindow associated to the box - Window* bbmWindow; - - - + + /// Set to true when the + /// window containing the widget is shown + bool bbmShown; + /// Contains the "nested" WidgetBlackBoxes, + /// i.e. if this WidgetBox is a Layout the ones + /// which are inserted into the layout + /// The list is updated by the method bbCreateWidgetOfInput + /// It is emptied when ? + std::vector bbmNestedWidgetBoxes; }; //================================================================= @@ -213,11 +172,9 @@ namespace bbtk public: \ inline void bbUserCreateWidget(Widget* parent) \ { \ - bbtkDebugMessageInc("kw",1,"**> Creating widget for [" \ - < Creating widget" \ + < Showing [" \ - < Showing" \ + < void WidgetBlackBox::bbUserSetDefaultValues() { - bbtkDebugMessage("widget",9,"WidgetBlackBox::bbUserSetDefaultValues()"< void WidgetBlackBox::bbUserInitializeProcessing() { + bbmShown = false; } //========================================================================= @@ -78,18 +79,25 @@ namespace bbtk template void WidgetBlackBox::bbUserFinalizeProcessing() { - bbtkDebugMessage("widget",9,"==> WidgetBlackBox::bbUserFinalizeProcessing() ["<::bbUserFinalizeProcessing()"< WidgetBlackBox::bbUserFinalizeProcessing() ["<bbIsShown(); + bbGetWindow()->bbDestroy(); + bbSetWindow(0); + if (GetUseCount()==0) - { - if (bbGetWindow()->bbIsShown()) DecNbWindowsShown(); + { + bbtkBlackBoxDebugMessage("widget",9,"**** HERE use count == 0"<bbDestroy(); - bbSetWindow(0); + } - bbtkDebugMessage("widget",9,"<== WidgetBlackBox::bbUserFinalizeProcessing() ["< Creating the window" <InitWindowManagerIfNeeded(); // If is a Dialog requested if ( bbGetInputWinDialog() ) { - bbtkDebugMessage("process",2, + bbtkBlackBoxDebugMessage("widget",2, " Input WinDialog set to true : creating a Dialog" <bbCreateDialogWindow(); @@ -134,22 +146,28 @@ namespace bbtk // Input WinDialog set to false : creating a Frame else { - bbtkDebugMessage("process",2, + bbtkBlackBoxDebugMessage("widget",2, " Input WinDialog set to false : creating a Frame" <bbCreateFrameWindow(); } } + /* // Show the window if ( !bbGetWindow() ) { bbtkInternalError("Need to show the Window of widget "< Showing the window" <bbShow(); + // bbGetWindow()->bbShow(); + this->bbShowWindow(); + */ } // } @@ -162,6 +180,9 @@ namespace bbtk WidgetBlackBox::bbCreateWidgetOfInput (const std::string& in, typename WidgetBlackBox::WidgetPointer parent) { + bbtkBlackBoxDebugMessage("widget",2,"bbCreateWidgetOfInput(" + <second ; @@ -180,6 +201,8 @@ namespace bbtk wfrom->bbUserCreateWidget(parent); // Get the widget created w = wfrom->bbGetOutputWidget(); + // Insert the box into the NestedWidgetBoxes list + bbmNestedWidgetBoxes.push_back(from); } return w; } @@ -193,16 +216,52 @@ namespace bbtk } //================================================================== + //================================================================== + template + void WidgetBlackBox::bbSetShown(bool b) + { + if (b==bbmShown) return; + + bbtkBlackBoxDebugMessage("widget",5,"WidgetBlackBox::bbSetShown(" + <bbUserOnShow(); + } + // Have to propagate to nested widgets + std::vector::const_iterator i; + for (i =bbmNestedWidgetBoxes.begin(); + i!=bbmNestedWidgetBoxes.end(); + ++i) + { + if (!i->expired()) i->lock()->bbSetShown(b); + } + + } + //================================================================== + + //================================================================== + template + bool WidgetBlackBox::bbIsShown() + { + return bbmShown; + } + //================================================================== + + /* //================================================================== template void WidgetBlackBox::bbShowWindow() { - bbtkDebugMessageInc("widget",1,"=> WidgetBlackBox::bbShowWindow() [" + bbtkBlackBoxDebugMessage("widget",1,"=> WidgetBlackBox::bbShowWindow() [" <bbShow(); - bbtkDebugMessageDec("widget",2,"<= WidgetBlackBox::bbShowWindow() [" + bbtkBlackBoxDebugMessage("widget",1,"<= WidgetBlackBox::bbShowWindow() [" < void WidgetBlackBox::bbHideWindow() { - bbtkDebugMessageInc("widget",1,"=> WidgetBlackBox::bbHideWindow() [" + bbtkBlackBoxDebugMessage("widget",1,"=> WidgetBlackBox::bbHideWindow() [" <bbHide(); - bbtkDebugMessageDec("widget",2,"<= WidgetBlackBox::bbHideWindow() [" + bbtkBlackBoxDebugMessage("widget",1,"<= WidgetBlackBox::bbHideWindow() [" < void WidgetBlackBox::bbCloseWindow() { - bbtkDebugMessageInc("widget",1,"=> WidgetBlackBox::bbCloseWindow() [" + bbtkBlackBoxDebugMessage("widget",1,"=> WidgetBlackBox::bbCloseWindow() [" <bbDestroy(); - bbtkDebugMessageDec("widget",2,"<= WidgetBlackBox::bbCloseWindow() [" + bbtkBlackBoxDebugMessage("widget",1,"<= WidgetBlackBox::bbCloseWindow() [" < void WidgetBlackBoxWindow::bbDestroy() { + /* if (mBox.expired()) return; bbtkDebugMessage("widget",9,"WidgetBlackBoxWindow::bbDestroy() [" <bbGetName()<<"]"<DecNbWindowsAlive(); mBox.lock()->bbSetWindow(0); + */ } //========================================================================= diff --git a/kernel/src/bbtkWx.cxx b/kernel/src/bbtkWx.cxx index 820a60f..9a14470 100644 --- a/kernel/src/bbtkWx.cxx +++ b/kernel/src/bbtkWx.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkWx.cxx,v $ Language: C++ - Date: $Date: 2009/05/19 10:19:23 $ - Version: $Revision: 1.14 $ + Date: $Date: 2009/05/28 08:12:06 $ + Version: $Revision: 1.15 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -41,12 +41,9 @@ namespace bbtk //========================================================================= static WxApp* mgWxApp = 0; static wxWindow* mgTopWindow = 0; - static wxWindow* mgTopWindowParent = 0; - static bool mgAutoDestroyTopWindow = true; static int mgNbWindowsAlive = 0; - static int mgNbWindowsShown = 0; //========================================================================= - + //========================================================================= // BBTKWXSIG static Wx::Signal_type mgWxSignal; @@ -88,8 +85,6 @@ namespace bbtk bbtkDebugMessage("wx",1," --> Creating bbtk wxApp"< Destructing bbtk WxApp"< Destructing bbtk WxApp"< Creating bbtk top window"<Hide(); - - //if (mgTopWindowParent==0) - Wx::SetTopWindow(top); - } - //========================================================================= //========================================================================= - void Wx::DestroyTopWindowIfNeeded() + void Wx::ProcessPendingEvents() { - if ( (mgNbWindowsAlive==0) && - (mgAutoDestroyTopWindow) && - (mgTopWindow != 0)) + /* + if (Wx::GetTopWindow() != 0) { - bbtkDebugMessage("wx",1," --> Destructing bbtk top window"<Close(); - mgTopWindow = 0; - - DestroyWxAppIfNeeded(); + Wx::GetTopWindow()->DestroyChildren(); } - } - //========================================================================= - - //========================================================================= - void Wx::LoopUntilAllWindowsClose() - { - int i = 0; - while (mgTopWindow != 0) - { - if (i % 100 == 0) - { - bbtkDebugMessage("wx",2,"Wx::Loop "<Pending()) + a->Dispatch(); + std::cout << "$$$$$$$$$$$$$$ PROCESS PENDING DONE"<bbGetName()<<"] WxFrame()" + <bbSetWindow(this); + // Insert the widget into the window + wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); + b->bbUserCreateWidget(this); + wxWindow* widget = b->bbGetOutputWidget(); + sizer->Add( widget, 1, wxALL|wxGROW, 2); + SetSizer(sizer); + Layout(); + } + //================================================================== + //================================================================== + WxFrame::~WxFrame() + { + if (mBox.lock()) + bbtkDebugMessage("widget",9,"["<bbGetName() + <<"] $$$$$$$$$$$$$$$$$$$ ~WxFrame()" + <bbSetWindow(0); + Wx::DecNbWindowsAlive(); + } + //================================================================== + //================================================================== + void WxFrame::OnCloseWindow(wxCloseEvent& event) + { + if (mBox.lock()) + bbtkDebugMessage("widget",9,"["<bbGetName() + <<"] $$$$$$$$$$$$$$$ WxFrame::OnCloseWindow()"<bbSetWindow(0); + Wx::DecNbWindowsAlive(); + + bbtkDebugMessage("widget",9, + "$$$$$$$$$$$$$$$ Destroy !!!"<Destroy(); + } + //================================================================== + + + + + + //========================================================================= + // WxDialog + //========================================================================= + + //================================================================== + // Dialog window which is modal + class BBTK_EXPORT WxDialog : public wxDialog + { + public: + WxDialog(WxBlackBox::Pointer box, + wxWindow *parent, + wxString title, + wxSize size); + ~WxDialog(); + void OnCloseWindow(wxCloseEvent& event); + + + WxBlackBox::WeakPointer mBox; + DECLARE_EVENT_TABLE(); + + }; + + BEGIN_EVENT_TABLE(WxDialog, wxDialog) + EVT_CLOSE(WxDialog::OnCloseWindow) + END_EVENT_TABLE(); + //================================================================== + //========================================================================= - WxBlackBoxDialog::WxBlackBoxDialog(WxBlackBox::Pointer box, - wxWindow *parent, - wxString title, - wxSize size) + WxDialog::WxDialog(WxBlackBox::Pointer b, + wxWindow *parent, + wxString title, + wxSize size) : wxDialog( parent, -1, @@ -79,211 +197,39 @@ namespace bbtk wxMINIMIZE_BOX | wxCAPTION ), - Parent(box) - { - bbtkDebugMessage("wx",9,"WxBlackBoxDialog::WxBlackBoxDialog("<< - bbGetBlackBox()->bbGetFullName()<<","<bbCreateWidgetAndEventHandler(this); - wxWindow* widget = bbGetBlackBox()->bbGetOutputWidget(); - sizer->Add( widget, 1, wxALL|wxEXPAND, 2); - //SetAutoLayout(true); - SetSizer(sizer); - Layout(); - } - //========================================================================= - - //========================================================================= - void WxBlackBoxDialog::bbShow() - { - if (bbIsShown()) return; - bbtkDebugMessage("wx",5,"WxBlackBoxDialog::bbShow() [" - <bbGetFullName()<<"]"<bbGetName()<<"]" <bbGetFullName()<<","<bbSetWindow(this); // Insert the widget into the window wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); - box->bbCreateWidgetAndEventHandler(this); - wxWindow* widget = bbGetBlackBox()->bbGetOutputWidget(); - wxFrame* frame = (wxFrame*)this; + b->bbUserCreateWidget(this); + wxWindow* widget = b->bbGetOutputWidget(); sizer->Add( widget, 1, wxALL|wxGROW, 2); - // frame->SetAutoLayout(true); - frame->SetSizer(sizer); - //frame->Fit(); - frame->Layout(); - } - //========================================================================= - - //========================================================================= - WxBlackBoxFrame::~WxBlackBoxFrame() - { - bbtkDebugMessage("wx",9,"WxBlackBoxFrame::~WxBlackBoxFrame()" - <bbGetFullName()<<")"<bbUserOnShow(); - } - //========================================================================= - - //========================================================================= - void WxBlackBoxFrame::bbHide() - { - bbtkDebugMessage("wx",9,"WxBlackBoxFrame::bbHide()"<bbUserOnHide(); - } - //========================================================================= - - //========================================================================= - void WxBlackBoxFrame::bbDestroy() - { - bbtkDebugMessage("wx",9,"WxBlackBoxFrame::bbDestroy()"<bbGetFullName()<<")"<bbSetWidgetEventHandler(this); - - Connect ( mWindow->GetId(), - wxEVT_DESTROY, - (wxObjectEventFunction) - (void (wxEvtHandler::*)(wxWindowDestroyEvent& c)) - &WxBlackBoxWidgetEventHandler::OnWindowDestroy ); - - mWindow->PushEventHandler(this); - - } - //========================================================================= - - //========================================================================= - WxBlackBoxWidgetEventHandler::~WxBlackBoxWidgetEventHandler() - { - bbtkDebugMessage("wx",9, - "WxBlackBoxWidgetEventHandler::~WxBlackBoxWidgetEventHandler() [" - <GetId() ); - - if (mBox.expired()) return; - bbtkDebugMessage("wx",9, - "WxBlackBoxWidgetEventHandler::~WxBlackBoxWidgetEventHandler() [" - <bbGetFullName()<<"]"<bbSetWidgetEventHandler(0); - } - //========================================================================= - - //========================================================================= - void WxBlackBoxWidgetEventHandler::OnWindowDestroy(wxWindowDestroyEvent&) - { - bbtkDebugMessage("wx",9,"WxBlackBoxWidgetEventHandler::OnWindowDestroy() []"<bbGetFullName()<<"]"<bbSetOutputWidget(0); + SetSizer(sizer); + Layout(); } //========================================================================= + //================================================================== + WxDialog::~WxDialog() + { + bbtkDebugMessage("widget",9,"WxDialog::~WxDialog()"<bbSetWindow(0); + // Wx::DecNbWindowsAlive(); + } + //================================================================== + //================================================================== + void WxDialog::OnCloseWindow(wxCloseEvent& event) + { + bbtkDebugMessage("widget",9,"WxDialog::OnCloseWindow()"<bbSetWindow(0); + Wx::DecNbWindowsAlive(); + this->Destroy(); + } + //================================================================== @@ -291,7 +237,7 @@ namespace bbtk - //========================================================================= + //========================================================================= // WxBlackBox //========================================================================= @@ -305,8 +251,9 @@ namespace bbtk //========================================================================= void WxBlackBox::bbUserSetDefaultValues() { - bbtkDebugMessage("Kernel",9,"WxBlackBox::bbUserSetDefaultValues()"< WxBlackBox::bbUserFinalizeProcessing()"<(), - Wx::GetTopWindow(), - std2wx( bbGetInputWinTitle() - + " - bbtk (c) CREATIS LRMN"), - wxSize( bbGetInputWinWidth() , - bbGetInputWinHeight() )); - w->Show(true); - } + bbtkBlackBoxDebugMessage("widget",3, + "==> WxBlackBox::bbCreateDialogWindow() - parent = " + <(), + Wx::GetTopWindow(), + std2wx( bbGetInputWinTitle() + + " - bbtk (c) CREATIS-LRMN"), + wxSize( bbGetInputWinWidth() , + bbGetInputWinHeight() ) ); + w->Show(false); + // w->ShowModal(); + } + //========================================================================= + //================================================================== //================================================================== /// Callback for creating a Frame window void WxBlackBox::bbCreateFrameWindow() { - WxBlackBoxFrame* w = 0; - w = new WxBlackBoxFrame( GetThisPointer(), - Wx::GetTopWindow(), - std2wx( bbGetInputWinTitle() - + " - bbtk (c) CREATIS LRMN"), - wxSize( bbGetInputWinWidth() , - bbGetInputWinHeight() ) ); + bbtkBlackBoxDebugMessage("widget",3, + "==> WxBlackBox::bbCreateFrameWindow() - parent = " + <(), + Wx::GetTopWindow(), + std2wx( bbGetInputWinTitle() + + " - bbtk (c) CREATIS-LRMN"), + wxSize( bbGetInputWinWidth() , + bbGetInputWinHeight() ) ); w->Show(); + } + //================================================================== + + //================================================================== + void WxBlackBox::bbSetWindow(wxWindow* w) + { + bbtkBlackBoxDebugMessage("widget",9,"==> WxBlackBox::bbSetWindow("<bbUserCreateWidget(parent); - } - // If Event Handler for the widget does not exist or is obsolete: - // create it - if (bbGetOutputWidget()!=0) - { - if (bbGetWidgetEventHandler()==0) + bbtkBlackBoxDebugMessage("widget",3,"==> WxBlackBox::bbShowWindow()" + < No widget event handler : creating one" - <(), - bbGetOutputWidget()); + ((WxDialog*)bbmWindow)->ShowModal(); } - else if ( ! bbGetWidgetEventHandler()->IsHandlerOf - ( bbGetOutputWidget() ) ) + else { - bbtkDebugMessage("wx",3, - "-> Obsolete widget event handler : re-creating one" - <(), - bbGetOutputWidget()); - } - // Sets the name of the wxWindow to the input WinTitle - bbGetOutputWidget()->SetName(bbtk::std2wx(bbGetInputWinTitle())); + bbGetWindow()->Show(); + bbSetShown(true); + } + } + } + //================================================================== + + //================================================================== + void WxBlackBox::bbDestroyWindow() + { + bbtkBlackBoxDebugMessage("widget",3,"==> WxBlackBox::bbDestroyWindow("<Close(true); + // + delete bbGetWindow(); + bbSetShown(false); } - - + bbtkBlackBoxDebugMessage("widget",3,"<== WxBlackBox::bbDestroyWindow("< BBTK_BEGIN_DESCRIBE_BLACK_BOX_BODY(WxBlackBox); BBTK_NAME("WxBlackBox"); @@ -148,73 +126,6 @@ namespace bbtk - //================================================================== - // Dialog window which is modal - class BBTK_EXPORT WxBlackBoxDialog : public wxDialog, - public WidgetBlackBoxWindow - { - public: - typedef WidgetBlackBoxWindow Parent; - WxBlackBoxDialog(WxBlackBox::Pointer box, - wxWindow *parent, wxString title, wxSize size); - ~WxBlackBoxDialog(); - void bbShow(); - void bbHide(); - void bbDestroy(); - bool IsDialog() { return true; } - bool IsFrame() { return false; } - wxDialog* bbGetDialog() { return this; } - }; - //================================================================== - - //================================================================== - // Frame window which is not modal - class BBTK_EXPORT WxBlackBoxFrame : public wxFrame, - public WidgetBlackBoxWindow - { - public: - typedef WidgetBlackBoxWindow Parent; - WxBlackBoxFrame(WxBlackBox::Pointer box, - wxWindow *parent, wxString title, wxSize size); - ~WxBlackBoxFrame(); - void bbShow(); - void bbHide(); - void bbDestroy(); - bool IsDialog() { return false; } - bool IsFrame() { return true; } - wxFrame* bbGetFrame() { return this; } - }; - //================================================================== - - - - //================================================================= - // Handles the destroy events of a widget associated to a WxBlackBox - // in order to signal the widget death to its associated box - class BBTK_EXPORT WxBlackBoxWidgetEventHandler : public wxEvtHandler - { - public: - /// Ctor with the box and widget - WxBlackBoxWidgetEventHandler( WxBlackBox::Pointer box, wxWindow *widget ); - /// Dtor - ~WxBlackBoxWidgetEventHandler(); - /// Returns true iff is the handler for that window - bool IsHandlerOf( wxWindow* w ) { return mWindow == w; } - // wxWindow* GetWxWindow() { return mWindow; } - /// Method processing the destroy event of the widget - void OnWindowDestroy(wxWindowDestroyEvent&); - // - //bool IsDead() { return mDead; } - - private: - WxBlackBox::WeakPointer mBox; - wxWindow* mWindow; - //bool mDead; - }; - //================================================================= - - - } //namespace bbtk #endif //__bbtkWxBlackBox_h__ diff --git a/kernel/src/bbtkWxGUIConsole.cxx b/kernel/src/bbtkWxGUIConsole.cxx index ae431dc..8f3c4e8 100644 --- a/kernel/src/bbtkWxGUIConsole.cxx +++ b/kernel/src/bbtkWxGUIConsole.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkWxGUIConsole.cxx,v $ Language: C++ - Date: $Date: 2008/10/17 08:18:15 $ - Version: $Revision: 1.15 $ + Date: $Date: 2009/05/28 08:12:06 $ + Version: $Revision: 1.16 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -169,7 +169,8 @@ namespace bbtk // Set the parent window of all bbtk windows as a child of this - bbtk::Wx::SetTopWindowParent(this); + // bbtk::Wx::SetTopWindowParent(this); + bbtk::Wx::SetTopWindow(this); // Top Window Auto Destroys when no more black box window alive // : this is the default // bbtk::Wx::SetAutoDestroyTopWindow(true); @@ -199,12 +200,36 @@ namespace bbtk } //================================================================ + //================================================================ + void WxGUIConsole::OnClose(wxCloseEvent& event) + { + bbtkDebugMessage("widget",9,"bbi::OnClose()"<Close(); + } + this->Destroy(); + } + //================================================================ + //================================================================ void WxGUIConsole::OnWxSignal() { - if ((!Wx::TopWindowExists())&&(!IsShown())) + if ((!bbtk::Wx::IsSomeWindowAlive())&&(!IsShown())) { bbtkDebugMessage("wx",2," --> bbtk top window destroyed and WxGUIConsole not shown => destructing"<Close(); + } + */ Close(); } } @@ -428,15 +453,17 @@ namespace bbtk //================================================================ // Overloaded Show method to handle bbtk::Wx::TopWindow auto-destruction + // OBSOLETE !!! bool WxGUIConsole::Show(bool show) { - bbtk::Wx::SetAutoDestroyTopWindow(!show); + // bbtk::Wx::SetAutoDestroyTopWindow(!show); return wxFrame::Show(show); } //================================================================ //================================================================ BEGIN_EVENT_TABLE(WxGUIConsole, wxFrame) + EVT_CLOSE( WxGUIConsole::OnClose) EVT_MENU(ID_Menu_Quit , WxGUIConsole::OnMenuQuit) EVT_MENU(ID_Menu_About , WxGUIConsole::OnMenuAbout) EVT_MENU(ID_Menu_EditConfig , WxGUIConsole::OnMenuEditConfig) diff --git a/kernel/src/bbtkWxGUIConsole.h b/kernel/src/bbtkWxGUIConsole.h index 84d3235..e08f1f1 100644 --- a/kernel/src/bbtkWxGUIConsole.h +++ b/kernel/src/bbtkWxGUIConsole.h @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkWxGUIConsole.h,v $ Language: C++ - Date: $Date: 2008/10/17 08:18:15 $ - Version: $Revision: 1.6 $ + Date: $Date: 2009/05/28 08:12:07 $ + Version: $Revision: 1.7 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -122,6 +122,8 @@ namespace bbtk // Overloaded Show method to handle bbtk::Wx::TopWindow auto-destruction virtual bool Show(bool show = true); + void OnClose(wxCloseEvent& event); + private: wxAuiManager m_mgr; diff --git a/kernel/src/bbtkWxGUIScriptingInterface.cxx b/kernel/src/bbtkWxGUIScriptingInterface.cxx index 4cb10db..c15e599 100644 --- a/kernel/src/bbtkWxGUIScriptingInterface.cxx +++ b/kernel/src/bbtkWxGUIScriptingInterface.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkWxGUIScriptingInterface.cxx,v $ Language: C++ - Date: $Date: 2009/04/15 15:45:49 $ - Version: $Revision: 1.37 $ + Date: $Date: 2009/05/28 08:12:07 $ + Version: $Revision: 1.38 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -243,8 +243,10 @@ namespace bbtk #endif // parent window of all bbtk windows will be a child of this - Wx::SetTopWindowParent(this); - // Add the method OnWxSignal as a Wx::Signal observer + // Wx::SetTopWindowParent(this); + Wx::SetTopWindow(this); + // Wx::SetAutoDestroyTopWindow(false); + // Add the method OnWxSignal as a Wx::Signal observer //bbtkAddWxSignalObserver(WxGUIPackageBrowser2Window::OnWxSignal); //.PaneBorder(false)); @@ -301,11 +303,29 @@ namespace bbtk //================================================================ WxGUIScriptingInterface::~WxGUIScriptingInterface() { + bbtkDebugMessage("widget",9,"bbStudio::~bbStudio()"<Close(); + } + this->Destroy(); + } + //================================================================ + + //================================================================ void WxGUIScriptingInterface::Open(const std::string& filename) { @@ -916,6 +936,7 @@ namespace bbtk //================================================================ BEGIN_EVENT_TABLE(WxGUIScriptingInterface, wxFrame) + EVT_CLOSE( WxGUIScriptingInterface::OnClose) EVT_MENU(ID_Menu_Quit, WxGUIScriptingInterface::OnMenuQuit) EVT_MENU(ID_Menu_About, WxGUIScriptingInterface::OnMenuAbout) EVT_MENU(ID_Menu_EditConfig, WxGUIScriptingInterface::OnMenuEditConfig) diff --git a/kernel/src/bbtkWxGUIScriptingInterface.h b/kernel/src/bbtkWxGUIScriptingInterface.h index 8282731..37bbe3d 100644 --- a/kernel/src/bbtkWxGUIScriptingInterface.h +++ b/kernel/src/bbtkWxGUIScriptingInterface.h @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkWxGUIScriptingInterface.h,v $ Language: C++ - Date: $Date: 2009/04/15 15:45:49 $ - Version: $Revision: 1.16 $ + Date: $Date: 2009/05/28 08:12:07 $ + Version: $Revision: 1.17 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -147,6 +147,8 @@ namespace bbtk void DoRegeneratePackageDoc(const std::string& pack); void DoRegenerateBoxesLists(); + + void OnClose(wxCloseEvent& event); private: wxAuiManager m_mgr; Interpreter::Pointer mInterpreter; diff --git a/kernel/src/bbtkWxGUITextEditor.cxx b/kernel/src/bbtkWxGUITextEditor.cxx index f970ec7..02096e5 100644 --- a/kernel/src/bbtkWxGUITextEditor.cxx +++ b/kernel/src/bbtkWxGUITextEditor.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkWxGUITextEditor.cxx,v $ Language: C++ - Date: $Date: 2009/04/15 15:45:49 $ - Version: $Revision: 1.19 $ + Date: $Date: 2009/05/28 08:12:07 $ + Version: $Revision: 1.20 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -758,7 +758,8 @@ namespace bbtk SetSizer(sizer); // parent window of all bbtk windows will be a child of this - Wx::SetTopWindowParent(this); + // Wx::SetTopWindowParent(this); + Wx::SetTopWindow(this); // Add the method OnWxSignal as a Wx::Signal observer //bbtkAddWxSignalObserver(WxGUITextEditorWindow::OnWxSignal); diff --git a/packages/qt/bbs/appli/exampleQLayoutSplit.bbs b/packages/qt/bbs/appli/exampleQLayoutSplit.bbs new file mode 100644 index 0000000..3953291 --- /dev/null +++ b/packages/qt/bbs/appli/exampleQLayoutSplit.bbs @@ -0,0 +1,28 @@ +author "laurent.guigues@creatis.insa-lyon.fr" +description "Example of QLayoutSplit widget" +category "example" + +load qt +load std +new QSlider s +new QOutputText t +connect s.Out t.In +connect s.BoxChange t.BoxExecute +set s.In 100 +set s.Min 10 +set s.Max 1000 +set s.WinHeight 100 +set s.WinWidth 100 + +new QLayoutSplit l +set l.Orientation Vertical +connect s.Widget l.Widget1 +connect t.Widget l.Widget2 +new QSlider s2 +connect s2.Widget l.Widget3 + +set l.Weight1 5 +set l.Weight2 1 +set l.Weight3 2 + +exec l diff --git a/packages/vtk/src/bbvtkImagePlanes.cxx b/packages/vtk/src/bbvtkImagePlanes.cxx index cd5ba23..7f0008e 100644 --- a/packages/vtk/src/bbvtkImagePlanes.cxx +++ b/packages/vtk/src/bbvtkImagePlanes.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbvtkImagePlanes.cxx,v $ Language: C++ - Date: $Date: 2009/05/15 14:58:01 $ - Version: $Revision: 1.24 $ + Date: $Date: 2009/05/28 08:12:16 $ + Version: $Revision: 1.25 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -133,7 +133,7 @@ namespace bbvtk }; //================================================================ - //vtkCxxRevisionMacro(ImagePlanes::VtkCallbackType, "$Revision: 1.24 $"); + //vtkCxxRevisionMacro(ImagePlanes::VtkCallbackType, "$Revision: 1.25 $"); //================================================================ @@ -214,28 +214,28 @@ namespace bbvtk //--------------------------------------------------------------------- void ImagePlanes::bbUserFinalizeProcessing() { + if (bbGetOutputPlaneX()) { - bbGetOutputPlaneX()->SetInput(NULL); - // if (mVtkCallback) bbGetOutputPlaneX()->RemoveObserver(mVtkCallback); + + /* + + bbGetOutputPlaneX()->RemoveObserver(mVtkCallback); + bbGetOutputPlaneY()->RemoveObserver(mVtkCallback); + bbGetOutputPlaneZ()->RemoveObserver(mVtkCallback); + + bbGetOutputPlaneX()->Delete(); - } - if (bbGetOutputPlaneY()) - { - bbGetOutputPlaneY()->SetInput(NULL); - // if (mVtkCallback) bbGetOutputPlaneY()->RemoveObserver(mVtkCallback); bbGetOutputPlaneY()->Delete(); - } - if (bbGetOutputPlaneZ()) - { - bbGetOutputPlaneZ()->SetInput(NULL); - // if (mVtkCallback) bbGetOutputPlaneZ()->RemoveObserver(mVtkCallback); bbGetOutputPlaneZ()->Delete(); + mVtkCallback->Delete(); + */ + //bbGetOutputPlaneX()->SetInput(NULL); + //bbGetOutputPlaneY()->SetInput(NULL); + //bbGetOutputPlaneZ()->SetInput(NULL); + } - if (mVtkCallback) - { - // mVtkCallback->Delete(); - } + } //--------------------------------------------------------------------- diff --git a/packages/wx/src/bbwxLayoutLine.cxx b/packages/wx/src/bbwxLayoutLine.cxx index d9043f9..8b40107 100644 --- a/packages/wx/src/bbwxLayoutLine.cxx +++ b/packages/wx/src/bbwxLayoutLine.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbwxLayoutLine.cxx,v $ Language: C++ - Date: $Date: 2009/05/15 14:58:03 $ - Version: $Revision: 1.8 $ + Date: $Date: 2009/05/28 08:12:17 $ + Version: $Revision: 1.9 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -135,15 +135,6 @@ namespace bbwx // when window is shown void LayoutLine::OnShowWidget() { - bbUserOnShowWidget("Widget1"); - bbUserOnShowWidget("Widget2"); - bbUserOnShowWidget("Widget3"); - bbUserOnShowWidget("Widget4"); - bbUserOnShowWidget("Widget5"); - bbUserOnShowWidget("Widget6"); - bbUserOnShowWidget("Widget7"); - bbUserOnShowWidget("Widget8"); - bbUserOnShowWidget("Widget9"); } }//namespace bbwx diff --git a/packages/wx/src/bbwxLayoutSplit.cxx b/packages/wx/src/bbwxLayoutSplit.cxx index ff32fc4..f588595 100644 --- a/packages/wx/src/bbwxLayoutSplit.cxx +++ b/packages/wx/src/bbwxLayoutSplit.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbwxLayoutSplit.cxx,v $ Language: C++ - Date: $Date: 2009/05/15 14:58:03 $ - Version: $Revision: 1.11 $ + Date: $Date: 2009/05/28 08:12:17 $ + Version: $Revision: 1.12 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -138,8 +138,7 @@ namespace bbwx // std::cout << "pos = "<SetSashPosition(pos,true); - bbUserOnShowWidget("Widget1"); - bbUserOnShowWidget("Widget2"); + } diff --git a/packages/wx/src/bbwxLayoutTab.cxx b/packages/wx/src/bbwxLayoutTab.cxx index fd94191..2e8b86b 100644 --- a/packages/wx/src/bbwxLayoutTab.cxx +++ b/packages/wx/src/bbwxLayoutTab.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbwxLayoutTab.cxx,v $ Language: C++ - Date: $Date: 2009/05/15 14:58:03 $ - Version: $Revision: 1.10 $ + Date: $Date: 2009/05/28 08:12:17 $ + Version: $Revision: 1.11 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -128,7 +128,6 @@ namespace bbwx // when window is shown void LayoutTab::OnShowWidget() { - //bbGetOutputWidget()->Show(); wxNotebook* w = (wxNotebook*)bbGetOutputWidget(); if (w) { @@ -137,15 +136,6 @@ namespace bbwx w->SetSelection(0); for (unsigned int i=0; iGetPageCount(); ++i) w->AdvanceSelection(); } - bbUserOnShowWidget("Widget1"); - bbUserOnShowWidget("Widget2"); - bbUserOnShowWidget("Widget3"); - bbUserOnShowWidget("Widget4"); - bbUserOnShowWidget("Widget5"); - bbUserOnShowWidget("Widget6"); - bbUserOnShowWidget("Widget7"); - bbUserOnShowWidget("Widget8"); - bbUserOnShowWidget("Widget9"); } diff --git a/packages/wxvtk/src/bbwxvtkViewer2D.cxx b/packages/wxvtk/src/bbwxvtkViewer2D.cxx index 1a1d93f..48ac1ac 100644 --- a/packages/wxvtk/src/bbwxvtkViewer2D.cxx +++ b/packages/wxvtk/src/bbwxvtkViewer2D.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbwxvtkViewer2D.cxx,v $ Language: C++ - Date: $Date: 2009/05/15 14:58:07 $ - Version: $Revision: 1.35 $ + Date: $Date: 2009/05/28 08:12:18 $ + Version: $Revision: 1.36 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -236,15 +236,18 @@ namespace bbwxvtk bbtkMessage("Output", 2, "Viewer2D : Orientation was not 0< <2 "<bbIsShown() is necessary to be sure that the wxWindow is already + std::cout << "slicepre = "<bbIsShown() is necessary to be sure that the wxWindow is already // created and displayed. // Else when slice != 0 we get an X Window System error with wxGTK + + std::cout << "shown = "<bbIsShown()<bbIsShown())) { int z = mBox->bbGetInputSlice(); - // std::cout << "slice = "<Update(); - //... + Viewer3DWidget* w = new Viewer3DWidget(this, + parent, + //bbGetWxParent(), + bbGetInputStereo()); + //EED w->Update(); + //... bbSetOutputWidget(w); @@ -259,7 +304,7 @@ void Viewer3DWidget::Refresh(bool eraseBackground , const wxRect* rect ) // when window is shown void Viewer3D::OnShowWidget() { - + Process(); // Viewer3DWidget* w = (Viewer3DWidget*)bbGetOutputWidget(); // if (w) w->Update(); } diff --git a/packages/wxvtk/src/bbwxvtkViewer3D.h b/packages/wxvtk/src/bbwxvtkViewer3D.h index 1ef1ecd..cac53ba 100644 --- a/packages/wxvtk/src/bbwxvtkViewer3D.h +++ b/packages/wxvtk/src/bbwxvtkViewer3D.h @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbwxvtkViewer3D.h,v $ Language: C++ - Date: $Date: 2009/05/15 14:58:08 $ - Version: $Revision: 1.13 $ + Date: $Date: 2009/05/28 08:12:18 $ + Version: $Revision: 1.14 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -63,7 +63,7 @@ namespace bbwxvtk virtual void Refresh(bool eraseBackground = true, const wxRect* rect = NULL); private: - Viewer3D *mBox; + Viewer3D* mBox; vtkRenderer *renderer; vtkRenderWindow *renderwindow; vtkInteractorStyleTrackballCamera *interactorstyle; @@ -98,8 +98,10 @@ namespace bbwxvtk void CreateWidget(wxWindow*); void OnShowWidget(); + void DisableObservers(); + protected: - bool firsttime; + bool firsttime; }; //=================================================================