#include <wx/control.h>
#include <wx/listbox.h>
+#include <wx/spinbutt.h>
+
namespace bbwx
{
//--------------------------------------------------------------------------
void FillItems( int iSelection, std::vector< std::string > lstIn);
void VerifyDeselect(int iSelection);
+ void OnSpinCtrlClick(wxCommandEvent& event);
+
+
private:
int mTypeForm;
ComboBox *mBox;
- wxItemContainer* itemcontainer;
+ wxItemContainer *itemcontainer;
+ wxSpinButton *mwxspinbutton;
};
mBox(box),
mTypeForm(typeForm)
{
+ mwxspinbutton = NULL;
itemcontainer = NULL;
wxPanel *panel = this;
int i;
// 2) Insertion of the components in the window
// We use a FlexGridSizer
- wxFlexGridSizer *sizer = new wxFlexGridSizer(1);
+ wxFlexGridSizer *sizer = new wxFlexGridSizer(2);
if (title!="")
{
sizer->Add( new wxStaticText(panel,-1, bbtk::std2wx(title) ) );
itemcontainer=wxlistbox;
sizer->Add( wxlistbox,1,wxEXPAND );
Connect( wxlistbox->GetId(),
- wxEVT_COMMAND_LISTBOX_SELECTED, (wxObjectEventFunction) (void (wxPanel::*)(wxEvent&))&ComboBoxWidget::OnComboBox );
+ wxEVT_COMMAND_LISTBOX_SELECTED, (wxObjectEventFunction) (void (wxPanel::*)(wxEvent&))&ComboBoxWidget::OnComboBox );
} else if (mTypeForm==0) {
wxChoice *wxchoice = new wxChoice ( panel , -1, wxDefaultPosition,wxSize(sizeX,sizeY));
itemcontainer=wxchoice;
Connect( wxchoice->GetId(),
wxEVT_COMMAND_CHOICE_SELECTED, (wxObjectEventFunction) (void (wxPanel::*)(wxEvent&))&ComboBoxWidget::OnComboBox );
}
- sizer->AddGrowableCol(0);
- panel->SetSizer(sizer);
+ if (mBox->bbGetInputWithSpinButton()==true)
+ {
+ mwxspinbutton = new wxSpinButton( panel, -1 );
+ Connect( mwxspinbutton->GetId(),
+ wxEVT_SPIN,
+ (wxObjectEventFunction)
+ (void (wxPanel::*)(wxScrollEvent&))
+ &ComboBoxWidget::OnSpinCtrlClick);
+
+ sizer->Add( mwxspinbutton,1,wxEXPAND );
+ }
-
+ sizer->AddGrowableCol(0);
+ panel->SetSizer(sizer);
FillItems( iSelection,lstIn );
// for (i=0;i<lstIn.size(); i++)
//--------------------------------------------------------------------------
void ComboBoxWidget::OnComboBox(wxEvent& event)
{
- OnComboBoxSelection( itemcontainer->GetSelection() );
+ int iSelection = itemcontainer->GetSelection();
+ OnComboBoxSelection( iSelection );
+ if (mBox->bbGetInputWithSpinButton()==true)
+ {
+ mwxspinbutton->SetValue( iSelection );
+ }
+
+}
+
+//--------------------------------------------------------------------------
+void ComboBoxWidget::OnSpinCtrlClick(wxCommandEvent& event)
+{
+ int iSelection = mwxspinbutton->GetValue();
+ printf("EED ComboBoxWidget::OnSpinCtrlClick %d\n", iSelection );
+ itemcontainer->SetSelection(iSelection);
+ OnComboBoxSelection( iSelection );
+
+/*
+ if (mBox->bbGetInputType()==0)
+ {
+ mBox->bbSetOutputOut( mwxSpinCtrl->GetValue() );
+ } else {
+ mBox->bbSetOutputOut( mwxSpinButton->GetValue() );
+ }// if Type
+
+ // and signal that the output has changed
+ //if(_reactiveOnKeyStroke==1){
+ mBox->bbSignalOutputModification(std::string("Out"));
+ //}
+*/
}
+
//--------------------------------------------------------------------------
void ComboBoxWidget::FillItems( int iSelection, std::vector< std::string > lstIn )
{
{
itemcontainer->Append( bbtk::std2wx( lstIn[i] ) );
} // for i
- if (iSelection>=0) itemcontainer->SetSelection(iSelection);
+ if (iSelection>=0)
+ {
+ itemcontainer->SetSelection(iSelection);
+ if (mBox->bbGetInputWithSpinButton()==true)
+ {
+ mwxspinbutton->SetRange( 0,size-1 );
+ mwxspinbutton->SetValue( iSelection );
+ }
+
+ } // iSelection
if (mTypeForm==0)
{
bbSetInputWinWidth(10);
bbSetInputWinHeight(45);
bbSetInputDeselect(false);
+ bbSetInputWithSpinButton(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)