X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=bbtk.git;a=blobdiff_plain;f=packages%2Fwx%2Fsrc%2FbbwxComboBox.cxx;h=051cfea7f811e319419dd19f680f106263040d0f;hp=e270639d7a97aa118eccdb02d46461f9590fde93;hb=8654fac291feca76ace7256d3f38e92edfb35919;hpb=ead4b14b63307f6d011403007d14ccde3245eb09 diff --git a/packages/wx/src/bbwxComboBox.cxx b/packages/wx/src/bbwxComboBox.cxx index e270639..051cfea 100644 --- a/packages/wx/src/bbwxComboBox.cxx +++ b/packages/wx/src/bbwxComboBox.cxx @@ -20,22 +20,20 @@ namespace bbwx { public: ComboBoxWidget( ComboBox* box, wxWindow *parent, - int iSelection, - std::string title, - std::vector< std::string > lstIn, - int typeForm ); - + int iSelection, + std::string title, + std::vector< std::string > lstIn, + int typeForm ); ~ComboBoxWidget(); - + void OnComboBox(int iSelection); void OnComboBox(wxEvent& event); void FillItems( int iSelection, std::vector< std::string > lstIn); - private: - int mTypeForm; + int mTypeForm; ComboBox *mBox; - wxListBox *wxlistbox; - wxChoice *wxchoice; + wxListBox *wxlistbox; + wxChoice *wxchoice; }; @@ -56,12 +54,10 @@ namespace bbwx mBox(box), mTypeForm(typeForm) { - wxPanel *panel = this; + wxPanel *panel = this; wxlistbox = NULL; - wxchoice = NULL; - int i; - - + wxchoice = NULL; + int i; //--------------------------------------------------------------------- // 2) Insertion of the components in the window @@ -74,8 +70,7 @@ namespace bbwx } sizer->AddGrowableCol(0); panel->SetSizer(sizer); - - + //--------------------------------------------------------------------- // 1) Creation de wxChoise widget @@ -102,11 +97,8 @@ namespace bbwx wxchoice->SetSelection(iSelection); sizer->Add( wxchoice,1,wxGROW ); } - - // panel->SetAutoLayout(true); // panel->Layout(); - } //------------------------------------------------------------------------- @@ -114,6 +106,17 @@ namespace bbwx { } + + //-------------------------------------------------------------------------- + void ComboBoxWidget::OnComboBox(int iSelection) + { + mBox->bbSetInputSelection( iSelection ); + mBox->bbSetOutputOut( iSelection ); + mBox->bbSetOutputOutString( bbtk::wx2std( wxchoice->GetString(iSelection) ) ); + mBox->bbSignalOutputModification("Out"); + mBox->bbSignalOutputModification("OutString"); + } + //-------------------------------------------------------------------------- void ComboBoxWidget::OnComboBox(wxEvent& event) { @@ -124,14 +127,8 @@ namespace bbwx } else { iSelection = wxchoice->GetSelection(); } - - mBox->bbSetInputSelection( iSelection ); - mBox->bbSetOutputOut( iSelection ); - mBox->bbSetOutputOutString( bbtk::wx2std( wxchoice->GetString(iSelection) ) ); - mBox->bbSignalOutputModification("Out"); - mBox->bbSignalOutputModification("OutString"); + OnComboBox(iSelection); } - //-------------------------------------------------------------------------- void ComboBoxWidget::FillItems( int iSelection, @@ -166,8 +163,16 @@ BBTK_BLACK_BOX_IMPLEMENTATION(ComboBox,bbtk::WxBlackBox); //===== void ComboBox::Process() { - ComboBoxWidget *w = (ComboBoxWidget*)bbGetOutputWidget(); - w->FillItems( bbGetInputSelection(),bbGetInputIn() ); + int iSelection = bbGetInputSelection(); + if (bbGetInputSelection() >= bbGetInputIn().size()) { iSelection=bbGetInputIn().size()-1; } + ComboBoxWidget *w = (ComboBoxWidget*)bbGetOutputWidget(); + w->FillItems( iSelection, bbGetInputIn() ); + bbSetInputSelection( iSelection ); + bbSetOutputOut( iSelection ); + bbSetOutputOutString( bbGetInputIn()[ iSelection ] ); +// bbSignalOutputModification("Out"); +// bbSignalOutputModification("OutString"); + } //===== @@ -182,7 +187,7 @@ void ComboBox::CreateWidget(wxWindow* parent) ComboBoxWidget *w = new ComboBoxWidget( this, - parent, + parent, bbGetInputSelection() , bbGetInputTitle(), bbGetInputIn(),