void ColorSliders::addSlider(Channel channel, const char* labelText, int min, int max) { Label* label = new Label(labelText); Slider* absSlider = new Slider(min, max, 0); Slider* relSlider = new Slider(min-max, max-min, 0); Entry* entry = new Entry(4, "0"); m_label.push_back(label); m_absSlider.push_back(absSlider); m_relSlider.push_back(relSlider); m_entry.push_back(entry); m_channel.push_back(channel); absSlider->setProperty(SkinSliderPropertyPtr(new SkinSliderProperty(new ColorSliderBgPainter(channel)))); absSlider->setDoubleBuffered(true); get_skin_property(entry)->setLook(MiniLook); absSlider->Change.connect(Bind<void>(&ColorSliders::onSliderChange, this, m_absSlider.size()-1)); relSlider->Change.connect(Bind<void>(&ColorSliders::onSliderChange, this, m_relSlider.size()-1)); entry->Change.connect(Bind<void>(&ColorSliders::onEntryChange, this, m_entry.size()-1)); HBox* box = new HBox(); box->addChild(absSlider); box->addChild(relSlider); absSlider->setExpansive(true); relSlider->setExpansive(true); relSlider->setVisible(false); gfx::Size sz(INT_MAX, SkinTheme::instance()->dimensions.colorSliderHeight()); label->setMaxSize(sz); box->setMaxSize(sz); entry->setMaxSize(sz); m_grid.addChildInCell(label, 1, 1, LEFT | MIDDLE); m_grid.addChildInCell(box, 1, 1, HORIZONTAL | VERTICAL | EXPANSIVE); m_grid.addChildInCell(entry, 1, 1, LEFT | MIDDLE); }