/* TranslationEditorDialog::onBtnRemove
 * Called when the 'Remove Translation' button is clicked
 *******************************************************************/
void TranslationEditorDialog::onBtnRemove(wxCommandEvent& e)
{
	// Do nothing if there is only one translation
	if (translation.nRanges() == 1)
		return;

	// Get index of range to remove
	int index = list_translations->GetSelection();

	// Remove it from the translation
	translation.removeRange(index);

	// Remove it from the list
	list_translations->Delete(index);

	// Update UI
	if (index >= (int)list_translations->GetCount())
		index--;
	if (index >= 0)
	{
		list_translations->SetSelection(index);
		openRange(index);
	}
	updatePreviews();
}
/* TranslationEditorDialog::onPalTargetLeftUp
 * Called when the left mouse button is released in the target
 * palette range canvas
 *******************************************************************/
void TranslationEditorDialog::onPalTargetLeftUp(wxMouseEvent& e)
{
	// Get current translation range
	TransRange* tr = translation.getRange(list_translations->GetSelection());

	// Update its target range if it's a palette translation
	if (tr && tr->getType() == TRANS_PALETTE)
	{
		TransRangePalette* tpr = (TransRangePalette*)tr;
		if (cb_target_reverse->GetValue())
		{
			tpr->setDEnd(pal_canvas_target->getSelectionStart());
			tpr->setDStart(pal_canvas_target->getSelectionEnd());
		}
		else
		{
			tpr->setDStart(pal_canvas_target->getSelectionStart());
			tpr->setDEnd(pal_canvas_target->getSelectionEnd());
		}
	}

	// Update UI
	updateListItem(list_translations->GetSelection());
	updatePreviews();
}
/* TranslationEditorDialog::onRBDesaturateSelected
 * Called when the 'desaturated colour gradient' translation type
 * radio button is selected
 *******************************************************************/
void TranslationEditorDialog::onRBDesaturateSelected(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_DESAT, index);
		TransRangeDesat* tr = (TransRangeDesat*)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(MathStuff::clamp(sc.Red() / 127.0f, 0, 2),
		              MathStuff::clamp(sc.Green() / 127.0f, 0, 2),
		              MathStuff::clamp(sc.Blue() / 127.0f, 0, 2));
		tr->setDEnd(MathStuff::clamp(ec.Red() / 127.0f, 0, 2),
		            MathStuff::clamp(ec.Green() / 127.0f, 0, 2),
		            MathStuff::clamp(ec.Blue() / 127.0f, 0, 2));

		// Update UI
		updateListItem(index);
		openRange(index);
		updatePreviews();
	}
}
/* 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();
	}
}
Пример #5
0
void SidebarPreviewBase::documentChanged(DocumentChangeType type)
{
	XOJ_CHECK_TYPE(SidebarPreviewBase);

	if (type == DOCUMENT_CHANGE_COMPLETE || type == DOCUMENT_CHANGE_CLEARED)
	{
		updatePreviews();
	}
}
/* TranslationEditorDialog::onPalOriginLeftUp
 * Called when the left mouse button is released in the origin
 * palette range canvas
 *******************************************************************/
void TranslationEditorDialog::onPalOriginLeftUp(wxMouseEvent& e)
{
	// Get current translation range
	TransRange* tr = translation.getRange(list_translations->GetSelection());

	// Update its origin range
	if (tr)
	{
		tr->setOStart(pal_canvas_original->getSelectionStart());
		tr->setOEnd(pal_canvas_original->getSelectionEnd());
	}

	// Update UI
	updateListItem(list_translations->GetSelection());
	updatePreviews();
}
Пример #7
0
void IconManager::setShowPreview(bool show)
{
    if (m_showPreview != show) {
        m_showPreview = show;
        if (show) {
            updatePreviews();
        }
    }

    if (show && (m_mimeTypeResolver != 0)) {
        // don't resolve the MIME types if the preview is turned on
        m_mimeTypeResolver->deleteLater();
        m_mimeTypeResolver = 0;
    } else if (!show && (m_mimeTypeResolver == 0)) {
        // the preview is turned off: resolve the MIME-types so that
        // the icons gets updated
        m_mimeTypeResolver = new KMimeTypeResolver(m_view, m_model);
    }
}
/* TranslationEditorDialog::openTranslation
 * Opens the translation [trans] for preview/modification
 *******************************************************************/
void TranslationEditorDialog::openTranslation(Translation& trans)
{
	// Read translation
	translation.copy(trans);

	// Update translation list
	list_translations->Clear();
	for (unsigned a = 0; a < translation.nRanges(); a++)
		list_translations->Append(translation.getRange(a)->asText());

	// Select+open first range if it exists
	if (list_translations->GetCount() > 0)
	{
		list_translations->SetSelection(0);
		openRange(0);
	}

	// Update previews
	updatePreviews();
}
/* TranslationEditorDialog::onBtnDown
 * Called when the 'Move Down' button is clicked
 *******************************************************************/
void TranslationEditorDialog::onBtnDown(wxCommandEvent& e)
{
	// Get selection
	int index = list_translations->GetSelection();

	// Check selection is valid
	if (index >= (int)translation.nRanges()-1)
		return;

	// Swap item with above
	translation.swapRanges(index, index+1);
	updateListItem(index);
	updateListItem(index+1);

	// Update selection
	list_translations->SetSelection(index+1);
	openRange(index+1);

	// Update previews
	updatePreviews();
}
/* TranslationEditorDialog::onBtnAdd
 * Called when the 'Add Translation' button is clicked
 *******************************************************************/
void TranslationEditorDialog::onBtnAdd(wxCommandEvent& e)
{
	// Get index to add at
	int index = list_translations->GetSelection()+1;

	// Add new range to translation depending on current type selection
	if (rb_type_palette->GetValue())
		translation.addRange(TRANS_PALETTE, index);
	else if (rb_type_colour->GetValue())
		translation.addRange(TRANS_COLOUR, index);
	else
		translation.addRange(TRANS_DESAT, index);

	// Add it to the list
	list_translations->Insert(translation.getRange(index)->asText(), index);

	// Update UI
	list_translations->SetSelection(index);
	openRange(index);
	updatePreviews();
}
/* TranslationEditorDialog::onRBPaletteSelected
 * Called when the 'palette range' translation type radio button is
 * selected
 *******************************************************************/
void TranslationEditorDialog::onRBPaletteSelected(wxCommandEvent& e)
{
	// Swap to target palette panel
	showPaletteTarget();

	// If a range is selected
	int index = list_translations->GetSelection();
	if (index >= 0)
	{
		// Remove it
		translation.removeRange(index);

		// Recreate it
		translation.addRange(TRANS_PALETTE, index);
		TransRangePalette* tr = (TransRangePalette*)translation.getRange(index);
		// Origin range
		tr->setOStart(pal_canvas_original->getSelectionStart());
		tr->setOEnd(pal_canvas_original->getSelectionEnd());
		// Target range
		if (cb_target_reverse->GetValue())
		{
			tr->setDEnd(pal_canvas_target->getSelectionStart());
			tr->setDStart(pal_canvas_target->getSelectionEnd());
		}
		else
		{
			tr->setDStart(pal_canvas_target->getSelectionStart());
			tr->setDEnd(pal_canvas_target->getSelectionEnd());
		}

		// Update UI
		updateListItem(index);
		openRange(index);
		updatePreviews();
	}
}
/* TranslationEditorDialog::setEndColour
 * Sets the current translation range's destination ending colour
 * to [col]
 *******************************************************************/
void TranslationEditorDialog::setEndColour(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 end colour
		tcr->setDEnd(col);
	}
	else if (tr->getType() == TRANS_DESAT)
	{
		// Desaturated colour range
		TransRangeDesat* tdr = (TransRangeDesat*)tr;

		// Determine end colour
		float er = MathStuff::clamp(col.r / 127.0f, 0, 2);
		float eg = MathStuff::clamp(col.g / 127.0f, 0, 2);
		float eb = MathStuff::clamp(col.b / 127.0f, 0, 2);

		// Set destination end colour
		tdr->setDEnd(er, eg, eb);
	}

	// Set gradient box end colour
	gb_gradient->setEndCol(col);

	// Update UI
	gb_gradient->Refresh();
	updateListItem(list_translations->GetSelection());
	updatePreviews();
}
/* TranslationEditorDialog::onCBTruecolor
 * Called when the 'Truecolor' checkbox is (un)checked
 *******************************************************************/
void TranslationEditorDialog::onCBTruecolor(wxCommandEvent& e)
{
	updatePreviews();
}