X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fwx%2Fsrc%2FbbwxComboBox.cxx;h=06ec5912e0d115e929e31be9711424aab6d10a51;hb=34a4b6e0dbf8373c79c665f64ff2d7ca6c911045;hp=29d37820119456194171df7eb87655fd3da63475;hpb=c90249b3bf6eaa6e455e0a6390ea5897108d572c;p=bbtk.git diff --git a/packages/wx/src/bbwxComboBox.cxx b/packages/wx/src/bbwxComboBox.cxx index 29d3782..06ec591 100644 --- a/packages/wx/src/bbwxComboBox.cxx +++ b/packages/wx/src/bbwxComboBox.cxx @@ -58,10 +58,9 @@ namespace bbwx mBox(box), mTypeForm(typeForm) { - wxPanel *panel = this; itemcontainer = NULL; - int i; - + wxPanel *panel = this; + int i; //--------------------------------------------------------------------- // 2) Insertion of the components in the window @@ -83,7 +82,6 @@ namespace bbwx wxChoice *wxchoice = new wxChoice ( panel , -1, wxDefaultPosition,wxSize(sizeX,sizeY)); itemcontainer=wxchoice; sizer->Add( wxchoice,1,wxGROW ); - Connect( wxchoice->GetId(), wxEVT_COMMAND_CHOICE_SELECTED, (wxObjectEventFunction) (void (wxPanel::*)(wxEvent&))&ComboBoxWidget::OnComboBox ); } @@ -123,9 +121,7 @@ namespace bbwx mBox->bbSetOutputOut( iSelection ); mBox->bbSetOutputOutString( bbtk::wx2std( itemcontainer->GetString(iSelection) ) ); mBox->bbSignalOutputModification(); - VerifyDeselect(iSelection); - if (mTypeForm==0) { wxChoice *wxchoise=(wxChoice *)itemcontainer; @@ -138,25 +134,27 @@ namespace bbwx } // if iSelection } - //-------------------------------------------------------------------------- - void ComboBoxWidget::OnComboBox(wxEvent& event) - { +//-------------------------------------------------------------------------- +void ComboBoxWidget::OnComboBox(wxEvent& event) +{ OnComboBoxSelection( itemcontainer->GetSelection() ); - } +} + //-------------------------------------------------------------------------- - void ComboBoxWidget::FillItems( int iSelection, std::vector< std::string > lstIn ) +void ComboBoxWidget::FillItems( int iSelection, std::vector< std::string > lstIn ) +{ + int i; + itemcontainer->Clear(); + for (i=0;iClear(); - for (i=0;iAppend( bbtk::std2wx( lstIn[i] ) ); - } // for i - if (iSelection>=0) itemcontainer->SetSelection(iSelection); - } + itemcontainer->Append( bbtk::std2wx( lstIn[i] ) ); + } // for i + if (iSelection>=0) itemcontainer->SetSelection(iSelection); +} BBTK_ADD_BLACK_BOX_TO_PACKAGE(wx,ComboBox) BBTK_BLACK_BOX_IMPLEMENTATION(ComboBox,bbtk::WxBlackBox); + //===== // 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) //===== @@ -164,16 +162,16 @@ void ComboBox::Process() { int iSelection = bbGetInputSelection(); if (bbGetInputSelection() >= bbGetInputIn().size()) { iSelection=bbGetInputIn().size()-1; } +// if (bbGetInputSelection() >= bbGetInputIn().size()) { iSelection=0; } ComboBoxWidget *w = (ComboBoxWidget*)bbGetOutputWidget(); w->FillItems( iSelection, bbGetInputIn() ); bbSetInputSelection( iSelection ); bbSetOutputOut( iSelection ); int size = bbGetInputIn().size(); - if ( (iSelection>0) && ( (size-1)<=iSelection) ) + if ( (iSelection>=0) && ( iSelectionVerifyDeselect(iSelection); } //===== @@ -190,7 +188,10 @@ void ComboBox::CreateWidget(wxWindow* parent) bbGetInputForm(), bbGetInputWinWidth(), bbGetInputWinHeight() ); bbSetOutputOut( bbGetInputSelection() ); - bbSetOutputOutString( bbGetInputIn()[ bbGetInputSelection() ] ); + if (bbGetInputIn().size()> bbGetInputSelection() ) + { + bbSetOutputOutString( bbGetInputIn()[ bbGetInputSelection() ] ); + } // if InputIn size bbSetOutputWidget( w ); } //=====