]> Creatis software - bbtk.git/commitdiff
#3152 BBTK Bug New Normal - ShareMemory, ComboBox->list
authorEduardo DAVILA <davila@localhost.localdomain>
Thu, 30 Nov 2017 09:31:33 +0000 (10:31 +0100)
committerEduardo DAVILA <davila@localhost.localdomain>
Thu, 30 Nov 2017 09:31:33 +0000 (10:31 +0100)
packages/std/src/bbstdSetElementVector.h
packages/std/src/bbstdStringToVector.h
packages/std/src/bbstdStringVectorToNumericalVector.h
packages/wx/src/bbwxComboBox.cxx
packages/wx/src/bbwxComboBox.h

index 5f3286e48b228864b03864c8880716bb43deefdd..be232b252047f420e52e572df78ac998414de2d3 100644 (file)
@@ -81,7 +81,7 @@ namespace bbstd
                (*( bbGetInputPVec() ))[ bbGetInputI() ] = bbGetInputValue();
        }
        bbSetOutputVec( *( bbGetInputPVec() ) );
-       bbSignalOutputModification(std::string("Vec")); 
+//     bbSignalOutputModification(std::string("Vec")); 
   }
   //=================================================================
 
index 39153b54cb4b2f38c8dafee470053ab642170632..6e68911584a32e5f90ed0f79ca8b3053cf606529 100644 (file)
@@ -90,18 +90,21 @@ namespace bbstd
     std::string::size_type lastPos = str.find_first_not_of(delimiters, 0);
     // Find first "non-delimiter".
     std::string::size_type pos     = str.find_first_of(delimiters, lastPos);
-    bbmOutputOut.clear();
+//    bbmOutputOut.clear();
+std::vector<T> out;
     while (std::string::npos != pos || std::string::npos != lastPos)
       {
        // Found a token, add it to the vector.
-       bbmOutputOut.push_back( 
-                              this->decode_item( str.substr(lastPos, pos - lastPos) ) );
+//     bbmOutputOut.push_back( this->decode_item( str.substr(lastPos, pos - lastPos) ) );
+       out.push_back( this->decode_item( str.substr(lastPos, pos - lastPos) ) );
        //      std::cout << this->bbGetOutputOut().back() << std::endl;
        // Skip delimiters.  Note the "not_of"
        lastPos = str.find_first_not_of(delimiters, pos);
        // Find next "non-delimiter"
        pos = str.find_first_of(delimiters, lastPos);
       }
+bbSetOutputOut (out);
+//bbSignalOutputModification();
     //  std::cout << "s=" << this->bbGetOutputOut().size() << std::endl;
   }
   //=================================================================
index c7bee76ab1e32b9a59e89647ed354b5bca1cca96..9bd9f63d12bdcb605ac008cc3e4cc3074642f166 100644 (file)
@@ -85,7 +85,6 @@ namespace bbstd
     //std::vector<std::string> vect (bbGetInputIn() );
 
     bbmOutputOut.clear();   
-
     // get a  std::string, add it to the <std::vector< >>
     int lgt=bbGetInputIn().size();
     for (int i=0; i<lgt; i++)
@@ -93,7 +92,7 @@ namespace bbstd
        bbmOutputOut.push_back( decode_item( bbGetInputIn()[i]) );    
     }
     // bbmOutputOut.clear();   // ? JPR
+
     // just to see // JPR      
 //EED    int lgrOut=this->bbGetOutputOut().size();  
 //EED    for (int j=0; j<lgrOut; j++)
index b11c55874b7ab4d32ebb5fb487020eb79812d5a0..8b2ea6479994078fb7d8d89022cd8f34382064ab 100644 (file)
@@ -29,6 +29,7 @@ namespace bbwx
        void OnComboBoxSelection(int iSelection);
        void OnComboBox(wxEvent& event);
        void FillItems( int iSelection, std::vector< std::string > lstIn);
+    void VerifyDeselect(int iSelection);
 
   private:
     int                        mTypeForm;
@@ -53,7 +54,7 @@ namespace bbwx
                        int sizeY
                )
     :
-    wxPanel( parent, -1) ,
+    wxPanel( parent, -1,wxDefaultPosition,wxSize(sizeX,sizeY) ) ,
     mBox(box),
     mTypeForm(typeForm)
   {
@@ -91,14 +92,25 @@ namespace bbwx
        {
                itemcontainer->Append(  bbtk::std2wx( lstIn[i] )  ); 
        } // for i
-       itemcontainer->SetSelection(iSelection);
+//     itemcontainer->SetSelection(iSelection);
   }
-  //-------------------------------------------------------------------------
-  
+
+  //-------------------------------------------------------------------------  
   ComboBoxWidget::~ComboBoxWidget()
   {
   }
 
+  //--------------------------------------------------------------------------
+  void ComboBoxWidget::VerifyDeselect(int iSelection)
+  {
+       if ((iSelection>=0) && (mBox->bbGetInputDeselect()==true) )
+       {
+               if (mTypeForm==1) 
+               { 
+                       ((wxListBox*)itemcontainer)->Deselect( iSelection ); 
+               } // if mTypeForm
+       } // if iSelection
+  }
 
   //--------------------------------------------------------------------------
   void ComboBoxWidget::OnComboBoxSelection(int iSelection)
@@ -108,8 +120,12 @@ namespace bbwx
                mBox->bbSetInputSelection( iSelection );
                mBox->bbSetOutputOut( iSelection );
                mBox->bbSetOutputOutString(    bbtk::wx2std( itemcontainer->GetString(iSelection) )     );
-               mBox->bbSignalOutputModification("Out");
-               mBox->bbSignalOutputModification("OutString");
+               mBox->bbSignalOutputModification();
+
+               VerifyDeselect(iSelection);
+
+//             mBox->bbSignalOutputModification("Out");
+//             mBox->bbSignalOutputModification("OutString");
        } // if iSelection
   }
 
@@ -127,7 +143,7 @@ namespace bbwx
        {
                        itemcontainer->Append(  bbtk::std2wx( lstIn[i] )  ); 
                } // for i
-       itemcontainer->SetSelection(iSelection);
+               if (iSelection>=0) itemcontainer->SetSelection(iSelection);
        } 
 
 BBTK_ADD_BLACK_BOX_TO_PACKAGE(wx,ComboBox)
@@ -143,14 +159,14 @@ void ComboBox::Process()
        w->FillItems( iSelection, bbGetInputIn() );
     bbSetInputSelection( iSelection );
     bbSetOutputOut( iSelection );
-
     int size = bbGetInputIn().size();
     if         (  (iSelection>0) && ( (size-1)<=iSelection) ) 
     { 
        bbSetOutputOutString( bbGetInputIn()[ iSelection ] );
-    }
-}
+    } // if iSelection
 
+       w->VerifyDeselect(iSelection);
+}
 //===== 
 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
 //===== 
@@ -178,13 +194,13 @@ void ComboBox::bbUserSetDefaultValues()
        bbSetInputForm(0);
        bbSetInputWinWidth(100);
        bbSetInputWinHeight(200);
+       bbSetInputDeselect(false);
 }
 //===== 
 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
 //===== 
 void ComboBox::bbUserInitializeProcessing()
 {
-
 }
 //===== 
 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
index a1182f9d42588823db4d5b1fffba5ebb6f67f761..6b1e702b2675047f75585f70f5dc70cc90c4bccb 100644 (file)
@@ -22,6 +22,7 @@ class bbwx_EXPORT ComboBox
   BBTK_DECLARE_INPUT(Selection, int );
   BBTK_DECLARE_INPUT(In,std::vector< std::string >);
   BBTK_DECLARE_INPUT(Form, int );
+  BBTK_DECLARE_INPUT(Deselect, bool );
   BBTK_DECLARE_OUTPUT(Out, int );
   BBTK_DECLARE_OUTPUT(OutString, std::string );
   BBTK_PROCESS(Process);
@@ -42,10 +43,9 @@ BBTK_BEGIN_DESCRIBE_BLACK_BOX(ComboBox,bbtk::WxBlackBox);
        BBTK_INPUT(ComboBox,Selection,"i element to be selected (default 0)",int,"");
        BBTK_INPUT(ComboBox,In,"Vector of strings",std::vector< std::string >,"");
        BBTK_INPUT(ComboBox,Form,"0 Combobox, 1 List  (default 0)",int,"");
-
-   BBTK_OUTPUT(ComboBox,Out,"i Item selected",int,"");
-   BBTK_OUTPUT(ComboBox,OutString,"string Item selected",std::string,"");
-
+       BBTK_INPUT(ComboBox,Deselect,"(default false) Just for List form",bool,"");
+    BBTK_OUTPUT(ComboBox,Out,"i Item selected",int,"");
+    BBTK_OUTPUT(ComboBox,OutString,"string Item selected",std::string,"");
 BBTK_END_DESCRIBE_BLACK_BOX(ComboBox);
 //===== 
 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)