/* TranslationEditorDialog::onRBColourSelected * Called when the 'colour gradient' translation type radio button is * selected *******************************************************************/ void TranslationEditorDialog::onRBColourSelected(wxCommandEvent& e) { // Swap to target colour panel showGradientTarget(); // If a range is selected int index = list_translations->GetSelection(); if (index >= 0) { // Remove it translation.removeRange(index); // Recreate it translation.addRange(TRANS_COLOUR, index); TransRangeColour* tr = (TransRangeColour*)translation.getRange(index); // Origin range tr->setOStart(pal_canvas_original->getSelectionStart()); tr->setOEnd(pal_canvas_original->getSelectionEnd()); // Target colour gradient wxColour sc = cp_range_begin->GetColour(); wxColour ec = cp_range_end->GetColour(); tr->setDStart(rgba_t(sc.Red(), sc.Green(), sc.Blue())); tr->setDEnd(rgba_t(ec.Red(), ec.Green(), ec.Blue())); // Update UI updateListItem(index); openRange(index); updatePreviews(); } }
/* TranslationEditorDialog::setStartColour * Sets the current translation range's destination starting colour * to [col] *******************************************************************/ void TranslationEditorDialog::setStartColour(rgba_t col) { // Get currently selected translation range TransRange* tr = translation.getRange(list_translations->GetSelection()); // Check its type if (tr->getType() == TRANS_COLOUR) { // Colour range TransRangeColour* tcr = (TransRangeColour*)tr; // Set destination start colour tcr->setDStart(col); } else if (tr->getType() == TRANS_DESAT) { // Desaturated colour range TransRangeDesat* tdr = (TransRangeDesat*)tr; // Determine start colour float sr = MathStuff::clamp(col.r / 127.0f, 0, 2); float sg = MathStuff::clamp(col.g / 127.0f, 0, 2); float sb = MathStuff::clamp(col.b / 127.0f, 0, 2); // Set destination start colour tdr->setDStart(sr, sg, sb); } // Set gradient box end colour gb_gradient->setStartCol(col); // Update UI gb_gradient->Refresh(); updateListItem(list_translations->GetSelection()); updatePreviews(); }