本文整理汇总了C++中Fl_Text_Buffer::line_text方法的典型用法代码示例。如果您正苦于以下问题:C++ Fl_Text_Buffer::line_text方法的具体用法?C++ Fl_Text_Buffer::line_text怎么用?C++ Fl_Text_Buffer::line_text使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Fl_Text_Buffer
的用法示例。
在下文中一共展示了Fl_Text_Buffer::line_text方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: cb_save
void text_editor::cb_save(Fl_Widget *widget, void *v)
{
extern std::list<std::string> whitelist;
text_editor *editor = (text_editor*)v;
Fl_Text_Buffer *buffer = editor->buffer;
int buff_length = buffer->length();
int buff_lines = buffer->count_lines(0, buff_length);
if (buff_lines > 0)
{
int pos = 0;
whitelist.clear();
for (int i = 0; i <= buff_lines; i++)
{
char* line_text = buffer->line_text(pos);
std::string line(line_text);
free(line_text);
if(line.length() > 3)
whitelist.push_back(line);
pos = min(buffer->line_end(pos) + 1, buff_length);
}
}
editor->hide();
}
示例2: Print
void ModelViewController::Print()
{
if( !serial->isConnected() )
{
fl_alert ("Not connected to printer.\nCannot start printing");
return;
}
gui->ContinueButton->value(0);
gui->ContinueButton->activate();
gui->ContinueButton->label("Pause");
gui->PrintButton->value(1);
gui->PrintButton->label("Print");
gui->PrintButton->deactivate();
// Snack one line at a time from the Gcode view, and buffer it.
/*
if(gui->PrintButton->value() == 0) // Turned off print, cancel buffer and flush
{
m_bPrinting = false;
return;
}
*/
serial->Clear(); // resets line nr and buffer
serial->m_bPrinting = false;
serial->SetDebugMask();
serial->SetLineNr(-1); // Reset LineNr Count
gui->CommunationLog->clear();
Fl_Text_Buffer* buffer = gui->GCodeResult->buffer();
char* pText = buffer->text();
uint length = buffer->length();
uint pos = 2;
while(pos < length)
{
char* line = buffer->line_text(pos);
if(line[0] == ';')
{
pos = buffer->line_end(pos)+1; // skip newline
continue;
}
serial->AddToBuffer(line);
pos = buffer->line_end(pos)+1; // find end of line
}
gui->ProgressBar->maximum(serial->Length());
gui->ProgressBar->label("Printing");
gui->ProgressBar->value(0);
free(pText);
serial->StartPrint();
}
示例3: UnIndent
void CFLTKEditor::UnIndent()
{
bool bChangedBuffer = false;
int iSelStart = 0, iSelEnd = 0, iCurPos = 0, iTabSize, i;
char *pcLine;
Fl_Text_Buffer *pBuffer = GetTextBuffer();
pBuffer->selection_position(&iSelStart, &iSelEnd);
if (iSelEnd > iSelStart)
{
iCurPos = pBuffer->line_start(iSelStart);
iTabSize = pBuffer->tab_distance();
while (pBuffer->line_end(iCurPos) < iSelEnd)
{
pcLine = pBuffer->line_text(iCurPos);
if (pcLine[0] == '\t')
{
bChangedBuffer = true;
pBuffer->remove(iCurPos, iCurPos+1);
--iSelEnd;
}
else if (pcLine[0] == ' ')
{
for (i = 1; i < iTabSize; i++)
{
if (pcLine[i] != ' ')
break;
}
if (i == iTabSize) // same number of spaces as a tab
{
bChangedBuffer = true;
pBuffer->remove(iCurPos, iCurPos + iTabSize);
iSelEnd -= iTabSize;
}
}
iCurPos = pBuffer->skip_lines(iCurPos, 1);
free(pcLine);
}
if (bChangedBuffer)
pBuffer->select(pBuffer->line_start(iSelStart), iSelEnd);
}
}