void ColorCurveCommand::onExecute(Context* context) { // Default curve if (!the_curve) { // TODO load the curve? the_curve = new ColorCurve(ColorCurve::Linear); the_curve->addPoint(gfx::Point(0, 0)); the_curve->addPoint(gfx::Point(255, 255)); App::instance()->Exit.connect(&on_exit_delete_curve); } ColorCurveFilter filter; filter.setCurve(the_curve); FilterManagerImpl filterMgr(context->getActiveDocument(), &filter); filterMgr.setTarget(TARGET_RED_CHANNEL | TARGET_GREEN_CHANNEL | TARGET_BLUE_CHANNEL | TARGET_GRAY_CHANNEL | TARGET_ALPHA_CHANNEL); ColorCurveWindow window(filter, filterMgr); if (window.doModal()) { // TODO save the curve? } }
void ColorCurveCommand::onExecute(Context* context) { // Default curve if (!the_curve) { // TODO load the curve? the_curve.reset(new ColorCurve(ColorCurve::Linear)); the_curve->addPoint(gfx::Point(0, 0)); the_curve->addPoint(gfx::Point(255, 255)); } ColorCurveFilter filter; filter.setCurve(the_curve.get()); FilterManagerImpl filterMgr(context, &filter); filterMgr.setTarget(TARGET_RED_CHANNEL | TARGET_GREEN_CHANNEL | TARGET_BLUE_CHANNEL | TARGET_GRAY_CHANNEL | TARGET_ALPHA_CHANNEL); ColorCurveWindow window(filter, filterMgr); if (window.doModal()) { // TODO save the curve? } }
ColorCurveWindow(ColorCurveFilter& filter, FilterManagerImpl& filterMgr) : FilterWindow("Color Curve", "ColorCurve", &filterMgr, WithChannelsSelector, WithoutTiledCheckBox) , m_filter(filter) , m_editor(filter.getCurve(), 0, 0, 255, 255) { m_view.attachToView(&m_editor); m_view.setExpansive(true); jwidget_set_min_size(&m_view, 128, 64); getContainer()->addChild(&m_view); m_editor.CurveEditorChange.connect(&ColorCurveWindow::onCurveChange, this); }