X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fwx%2Fsrc%2FbbwxComboBox.cxx;h=d0872ddff2a4cd4edf56b35c8efb347217e7dc49;hb=dc704ef6c582d0ba65c331bb20bf27dcf4d2bf04;hp=b11c55874b7ab4d32ebb5fb487020eb79812d5a0;hpb=f9574f4d8fb212474d38c304002a493051c7b579;p=bbtk.git diff --git a/packages/wx/src/bbwxComboBox.cxx b/packages/wx/src/bbwxComboBox.cxx index b11c558..d0872dd 100644 --- a/packages/wx/src/bbwxComboBox.cxx +++ b/packages/wx/src/bbwxComboBox.cxx @@ -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 ) , mBox(box), mTypeForm(typeForm) { @@ -70,8 +71,6 @@ namespace bbwx { sizer->Add( new wxStaticText(panel,-1, bbtk::std2wx(title) ) ); } - sizer->AddGrowableCol(0); - panel->SetSizer(sizer); //--------------------------------------------------------------------- if (mTypeForm==1) { @@ -81,24 +80,39 @@ namespace bbwx Connect( wxlistbox->GetId(), wxEVT_COMMAND_LISTBOX_SELECTED, (wxObjectEventFunction) (void (wxPanel::*)(wxEvent&))&ComboBoxWidget::OnComboBox ); } else if (mTypeForm==0) { - wxChoice *wxchoice = new wxChoice ( panel , -1 ); + wxChoice *wxchoice = new wxChoice ( panel , -1); itemcontainer=wxchoice; sizer->Add( wxchoice,1,wxGROW ); + Connect( wxchoice->GetId(), wxEVT_COMMAND_CHOICE_SELECTED, (wxObjectEventFunction) (void (wxPanel::*)(wxEvent&))&ComboBoxWidget::OnComboBox ); } + sizer->AddGrowableCol(0); + panel->SetSizer(sizer); + for (i=0;iAppend( 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 +122,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 +145,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 +161,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 +196,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)