Loopp/src/goptions.cxx

106 lines
2.2 KiB
C++
Raw Normal View History

#include "goptions.hxx"
#include "eventhandler.hxx"
2013-10-18 16:56:20 +02:00
#include "controller/binding.hxx"
#include "gui.hxx"
extern Gui* gui;
static void writeBindEnable(Fl_Widget* w, void* data)
{
OptionsWindow* o = (OptionsWindow*) data;
//LUPPP_NOTE("MIDI bind mode");
Avtk::LightButton* l = (Avtk::LightButton*)w;
l->value( !l->value() );
2013-10-18 17:52:04 +02:00
EventControllerBindingEnable e( l->value() );
writeToDspRingbuffer( &e );
2013-10-18 17:56:13 +02:00
if ( l->value() < 0.5 )
{
o->setTarget("");
}
}
static void writeControllerFile(Fl_Widget* w, void* data)
{
OptionsWindow* o = (OptionsWindow*) data;
// FIXME: Controller ID hardcoded
EventControllerInstanceGetToWrite e( 1 );
writeToDspRingbuffer( &e );
}
OptionsWindow::OptionsWindow()
{
window = new Fl_Double_Window(400,400,"Options");
tabs = new Fl_Tabs(0, 0, 400, 400);
2013-10-18 15:12:34 +02:00
int x, y, w, h;
tabs->client_area( x, y, w, h, 25 );
2013-10-18 16:56:20 +02:00
Fl_Group* bindingGroup = new Fl_Group( x, y, w, h, "Binding");
2013-10-18 15:12:34 +02:00
{
2013-10-18 16:56:20 +02:00
targetLabelStat = new Fl_Box(x + 100,y + 5, 75, 25,"Target: ");
targetLabel = new Fl_Box(x + 140,y + 5, 200, 25,"");
2013-10-18 15:12:34 +02:00
bindEnable = new Avtk::LightButton(x + 5, y + 5, 100, 25, "Bind Enable");
2013-10-18 16:56:20 +02:00
writeControllerBtn = new Avtk::Button( x + 5, y + 275, 100, 25, "Save" );
Fl_Scroll* s = new Fl_Scroll( x + 5, y + 35, 400, 180 );
bindings = new Avtk::Bindings( x + 5, y + 35, 400, 200 );
2013-10-18 16:56:20 +02:00
s->end();
2013-10-18 15:12:34 +02:00
}
2013-10-18 16:56:20 +02:00
bindingGroup->end();
2013-10-18 15:12:34 +02:00
Fl_Group* controllers = new Fl_Group( x, y, w, h, "Controllers");
controllers->hide();
{
ctlrButton = new Avtk::Button(x + 5, y + 5, 100, 25, "Add Controller");
}
controllers->end();
tabs->end();
//ctlrButton->callback( selectLoadController );
bindEnable->callback( writeBindEnable, this );
writeControllerBtn->callback( writeControllerFile, this );
window->end();
}
void OptionsWindow::setTarget(const char* t)
{
2013-10-18 16:06:27 +02:00
if ( target )
free (target);
target = strdup(t);
targetLabel->label( target );
targetLabel->redraw();
//LUPPP_NOTE("New Target %s\n", target );
}
void OptionsWindow::show()
{
window->show();
}
void OptionsWindow::setBindEnable(bool e)
{
bindEnable->value( e );
2013-10-18 16:06:27 +02:00
setTarget("");
}
2013-10-18 17:52:04 +02:00
void OptionsWindow::addBinding( Binding* b )
2013-10-18 16:56:20 +02:00
{
2013-10-18 17:52:04 +02:00
bindings->add( b );
2013-10-18 16:56:20 +02:00
}