本文整理汇总了C++中BTextView::CanEndLine方法的典型用法代码示例。如果您正苦于以下问题:C++ BTextView::CanEndLine方法的具体用法?C++ BTextView::CanEndLine怎么用?C++ BTextView::CanEndLine使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BTextView
的用法示例。
在下文中一共展示了BTextView::CanEndLine方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: BTextView
/***********************************************************
* HardWrap
***********************************************************/
void
HWrapTextView::GetHardWrapedText(BString &out)
{
MakeEditable(false);
BTextView *offview = new BTextView(Bounds(),NULL,TextRect(),B_FOLLOW_ALL);
offview->SetText(Text());
BFont font;
uint32 propa;
GetFontAndColor(&font,&propa);
out = "";
offview->SetFontAndColor(&font,B_FONT_ALL);
BString line;
int32 length = offview->TextLength();
float view_width = offview->TextRect().Width();
char c=0;
bool inserted;
for(int32 i=0;i < length;i++)
{
c = offview->ByteAt(i);
if(c == '\n')
{
line = "";
continue;
}
line += c;
if(font.StringWidth(line.String())>=view_width)
{
// Back 1 charactor.
i--;
line.Truncate(line.Length()-1);
// Insert line break.
inserted = false;
int32 len = line.Length();
for(int32 k = 0;k<len;k++)
{
if(offview->CanEndLine(i-k))
{
offview->Insert(i-k,"\n",1);
inserted=true;
i = i-k;
break;
}
}
// If could not find proper position, add line break to end.
if(!inserted)
offview->Insert(i,"\n",1);
line = "";
}
}
out = offview->Text();
delete offview;
MakeEditable(true);
}