Example #1
0
void CFLTKEditor::Paste()
{
	string sText, sNewText;
	int iInsStart = 0, iInsEnd = 0;
	Fl_Text_Editor *pEditor = GetEditor();
	Fl_Text_Buffer *pBuffer = pEditor->buffer();

	pBuffer->selection_position(&iInsStart, &iInsEnd);
	if (iInsStart == iInsEnd)
	{
		iInsStart = pEditor->insert_position();
		Fl_Text_Editor::kf_paste(0, pEditor);
		iInsEnd = pEditor->insert_position();
	}
	else
	{
		Fl_Text_Editor::kf_paste(0, pEditor);
		iInsEnd = pEditor->insert_position();
	}

	pBuffer->select(iInsStart, iInsEnd);
	sText = pBuffer->selection_text();

	if (AdaptText(sNewText, sText))
	{
		pBuffer->replace_selection(sNewText.c_str());
	}
	pBuffer->unselect();
}