本文整理汇总了C++中PlainDocumentLeafElementRefPtr::getText方法的典型用法代码示例。如果您正苦于以下问题:C++ PlainDocumentLeafElementRefPtr::getText方法的具体用法?C++ PlainDocumentLeafElementRefPtr::getText怎么用?C++ PlainDocumentLeafElementRefPtr::getText使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PlainDocumentLeafElementRefPtr
的用法示例。
在下文中一共展示了PlainDocumentLeafElementRefPtr::getText方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getHighlightedStringInternal
std::string TextDomArea::getHighlightedStringInternal(UInt32 lesserLine,UInt32 lesserIndex,UInt32 greaterLine,UInt32 greaterIndex)
{
std::string firstLine="";
std::string lastLine="";
std::string intermediateLines="";
PlainDocumentLeafElementRefPtr temp1 = dynamic_cast<PlainDocumentLeafElement*>(getLayoutManager()->getRootElement()->getElement(lesserLine));
std::string temp2 = temp1->getText();
if(lesserLine== greaterLine)
{
return temp2.substr(lesserIndex,greaterIndex-lesserIndex);
}
else
{
// get the first line
firstLine = temp2.substr(lesserIndex);
// get the last line
temp1 = dynamic_cast<PlainDocumentLeafElement*>(getLayoutManager()->getRootElement()->getElement(greaterLine));
temp2 = temp1->getText();
lastLine = temp2.substr(0,greaterIndex);
}
for(UInt32 i=lesserLine+1;i<greaterLine;i++)
{
PlainDocumentLeafElementRefPtr theElement = dynamic_cast<PlainDocumentLeafElement*>(getLayoutManager()->getRootElement()->getElement(i));
intermediateLines+=theElement->getText();
}
return firstLine + intermediateLines + lastLine;
}
示例2: getNextCharacter
char FixedHeightLayoutManager::getNextCharacter(UInt32 _theOriginalCaretIndex,UInt32 _theOriginalCaretLine)
{
PlainDocumentLeafElementRefPtr temp = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(_theOriginalCaretLine));
if(temp->getTextLength()-2 == _theOriginalCaretIndex)
{
temp = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(_theOriginalCaretLine+1));
std::string tempstring = temp->getText();
return tempstring[0];
}
else
{
std::string tempstring = temp->getText();
return tempstring[_theOriginalCaretIndex];
}
}
示例3: drawHighlightBGInternal
void TextDomArea::drawHighlightBGInternal(Graphics * const TheGraphics, Real32 Opacity,UInt32 lesserLine,UInt32 lesserIndex,UInt32 greaterLine,UInt32 greaterIndex) const
{
for(UInt32 i=lesserLine+1;i<greaterLine;i++)
{
PlainDocumentLeafElementRefPtr theElement = dynamic_cast<PlainDocumentLeafElement*>(getLayoutManager()->getRootElement()->getElement(i));
if(theElement)
{
Pnt2f topLeft,bottomRight;
getFont()->getBounds(theElement->getText(),topLeft,bottomRight);
TheGraphics->drawRect(Pnt2f(getLayoutManager()->getGutterSpace() + getLayoutManager()->getGutterSeparation(),i*getLayoutManager()->getHeightOfLine()),Pnt2f(getLayoutManager()->getGutterSpace() + getLayoutManager()->getGutterSeparation()+ bottomRight.x(),(i+1)*getLayoutManager()->getHeightOfLine()),Color4f(0.7,0.7,0.95,1),Opacity);
}
}
if(lesserLine== greaterLine)
{
TheGraphics->drawRect(getLayoutManager()->getXYPosition(lesserLine,lesserIndex,true),getLayoutManager()->getXYPosition(greaterLine,greaterIndex,false),Color4f(0.7,0.7,0.95,1),Opacity);
}
else
{
// draw the first line
TheGraphics->drawRect(getLayoutManager()->getXYPosition(lesserLine,lesserIndex,true),getLayoutManager()->getEndXYPosition(lesserLine),Color4f(0.7,0.7,0.95,1),Opacity);
// draw the last line
TheGraphics->drawRect(getLayoutManager()->getStartXYPosition(greaterLine),getLayoutManager()->getXYPosition(greaterLine,greaterIndex,false),Color4f(0.7,0.7,0.95,1),Opacity);
}
}
示例4: recalculateCaretPositions
void FixedHeightLayoutManager::recalculateCaretPositions(void)
{
// this function assumes that the caret index and line values are valid and computes the caret x and y positions directly
_CaretYPosition = /*getParentTextDomArea()->getPosition().y() + */_CaretLine * heightOfLine;
PlainDocumentLeafElementRefPtr theElement = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(_CaretLine));
Pnt2f topLeft,bottomRight;
std::string theSubstring = theElement->getText();
theSubstring = theSubstring.substr(0,_CaretIndex);
getParentTextDomArea()->getFont()->getBounds(theSubstring,topLeft,bottomRight);
_CaretXPosition = _GutterSpace + _GutterSeparation + bottomRight.x();
}
示例5: getNumberOfLeadingSpaces
UInt32 FixedHeightLayoutManager::getNumberOfLeadingSpaces(UInt32 line)
{
if(line>=rootElement->getElementCount())return 0;
UInt32 count = 0;
PlainDocumentLeafElementRefPtr theElement = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(line));
std::string theString = theElement->getText();
for(UInt32 i=0;i<theString.size(),theString[i]==' ';i++)count++;
return count;
}
示例6: DoIfLineLongerThanPreferredSize
void FixedHeightLayoutManager::DoIfLineLongerThanPreferredSize() const
{
PlainDocumentLeafElementRefPtr temp = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(_CaretLine));
Pnt2f topLeft,bottomRight;
getParentTextDomArea()->getFont()->getBounds(temp->getText(),topLeft,bottomRight);
Vec2f preferredSize = getParentTextDomArea()->getPreferredSize();
if(bottomRight.x() > preferredSize.x())preferredSize.setValues(bottomRight.x(),preferredSize.y());
getParentTextDomArea()->setPreferredSize(preferredSize);
}
示例7: getEndXYPosition
Pnt2f FixedHeightLayoutManager::getEndXYPosition(UInt32 lineNumber) const
{
PlainDocumentLeafElementRefPtr theElement = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(lineNumber));
if(theElement)
{
Pnt2f topLeft,bottomRight;
getParentTextDomArea()->getFont()->getBounds(theElement->getText(),topLeft,bottomRight);
return Pnt2f(_GutterSpace + _GutterSeparation + bottomRight.x(),(lineNumber+1)*heightOfLine);
}
else
{
return Pnt2f(0,0);
}
}
示例8: write
bool PlainTextFileType::write(Document* const Doc, std::ostream &OutputStream,
const std::string& FileNameOrExtension)
{
PlainDocumentRefPtr TheDocument = dynamic_cast<PlainDocument*>(Doc);
std::vector<Element*> GenericRoots;
GenericRoots = TheDocument->getRootElements();
for(UInt32 i=0;i<GenericRoots.size();i++)
{
PlainDocumentBranchElementRefPtr RootElement;
RootElement = dynamic_cast<PlainDocumentBranchElement*>(GenericRoots[i]);
for(UInt32 j=0;j<RootElement->getElementCount()-1;j++)
{
PlainDocumentLeafElementRefPtr LeafElement;
LeafElement = dynamic_cast<PlainDocumentLeafElement*>(RootElement->getElement(j));
OutputStream<<LeafElement->getText();
}
PlainDocumentLeafElementRefPtr LeafElement;
LeafElement = dynamic_cast<PlainDocumentLeafElement*>(RootElement->getElement(RootElement->getElementCount()-1));
OutputStream<<LeafElement->getText().substr(0,LeafElement->getTextLength()-2);
}
return false;
}
示例9: doubleClickHandler
void FixedHeightLayoutManager::doubleClickHandler(void)
{
UInt32 initIndex = _CaretIndex;
PlainDocumentLeafElementRefPtr theElement = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(_CaretLine));
std::string theString = theElement->getText();
Int32 BeginWord = 0;
Int32 EndWord = theElement->getTextLength();
if(isPunctuationChar(theString[_CaretIndex]))
{
EndWord = _CaretIndex + 1;
BeginWord = _CaretIndex;
}
else
{
for(Int32 i = _CaretIndex; i < theElement->getTextLength(); i++)
{
if(!isWordChar(theString[i]))
{
EndWord = i;
break;
}
}
for(Int32 i = _CaretIndex; i >= 0; i--)
{
if(!isWordChar(theString[i]))
{
BeginWord = i + 1;
break;
}
}
}
HEL = HSL = _CaretLine;
HSI = BeginWord;
HEI = EndWord;
_CaretIndex = EndWord;
recalculateCaretPositions();
getParentTextDomArea()->setCaretPosition(getParentTextDomArea()->getCaretPosition()+ (EndWord - initIndex));
}
示例10: calculateWidthOfLongestLine
Real32 FixedHeightLayoutManager::calculateWidthOfLongestLine(Element* const rootElement) const
{
Real32 finalWidth=0.0;
Real32 currentWidth;
for(UInt32 i=0;i<rootElement->getElementCount();i++)
{
PlainDocumentLeafElementRefPtr temp = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(i));
Pnt2f TopLeft, BottomRight;
getParentTextDomArea()->getFont()->getBounds(temp->getText(), TopLeft, BottomRight);
currentWidth = BottomRight.x() - TopLeft.x();
if(currentWidth > finalWidth)finalWidth = currentWidth;
}
return finalWidth + 15.0;
}
示例11: getXYPosition
Pnt2f FixedHeightLayoutManager::getXYPosition(UInt32 lineNumber,UInt32 index,bool isBeginning) const
{
PlainDocumentLeafElementRefPtr theElement = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(lineNumber));
if(theElement)
{
std::string substring = theElement->getText();
substring = substring.substr(0,index);
Pnt2f topLeft,bottomRight;
getParentTextDomArea()->getFont()->getBounds(substring,topLeft,bottomRight);
if(isBeginning)return Pnt2f( _GutterSpace + _GutterSeparation + bottomRight.x(),lineNumber*heightOfLine);
return Pnt2f(_GutterSpace + _GutterSeparation + bottomRight.x(),(lineNumber+1)*heightOfLine);
}
else
{
return Pnt2f(0,0);
}
}
示例12: moveAndHighlightWord
void FixedHeightLayoutManager::moveAndHighlightWord(UInt32 dir)
{
Int32 prevIndex= _CaretIndex;
Int32 prevLine= _CaretLine;
bool fromPrevElement = false;
PlainDocumentLeafElementRefPtr theElement;
std::string theString;
switch(dir)
{
case LEFT:
theElement = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(prevLine));
if(prevIndex == 0)
{
if(prevLine>0)
{
prevLine--;
theElement = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(prevLine));
prevIndex = theElement->getTextLength()-2;
_CaretLine = prevLine;
_CaretIndex = prevIndex;
fromPrevElement = true;
getParentTextDomArea()->setCaretPosition(getParentTextDomArea()->getCaretPosition()-2);
}
else break;
}
theString = theElement->getText();
if(prevIndex>0 && isWordChar(theString[prevIndex-1]) == false)fromPrevElement = true;
for(Int32 i=prevIndex-1; i>=0;)
{
if(isWordChar(theString[i]) != fromPrevElement) // this means that when prevIndex is 0, it would indicate the beginning of the line and hence, the ctrl action should take the cursor until a wordchar is found
{
_CaretLine = prevLine;
_CaretIndex = i;
getParentTextDomArea()->setCaretPosition(getParentTextDomArea()->getCaretPosition()-1);
i--;
}
else
{
break;
}
}
recalculateCaretPositions();
break; // case left complete.
case RIGHT:
theElement = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(prevLine));
if(prevIndex >=theElement->getTextLength()-2)
{
if(prevLine<rootElement->getElementCount()-1)
{
prevLine++;
prevIndex = 0;
_CaretLine = prevLine;
_CaretIndex = prevIndex;
fromPrevElement = true;
theElement = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(prevLine));
getParentTextDomArea()->setCaretPosition(getParentTextDomArea()->getCaretPosition()+2);
}
else break;
}
theString = theElement->getText();
if(isWordChar(theString[prevIndex]) == false)fromPrevElement = true;
for(UInt32 i=prevIndex; i<theElement->getTextLength()-2;)
{
if(isWordChar(theString[i]) != fromPrevElement) // this means that when prevIndex is 0, it would indicate the beginning of the line and hence, the ctrl action should take the cursor until a wordchar is found
{
i++;
_CaretLine = prevLine;
_CaretIndex = i;
getParentTextDomArea()->setCaretPosition(getParentTextDomArea()->getCaretPosition()+1);
}
else
{
break;
}
}
recalculateCaretPositions();
break; // Case Right complete.
}
}
示例13: calculateCaretPosition
UInt32 FixedHeightLayoutManager::calculateCaretPosition(Pnt2f PointOnComponent,bool isDragging)
{
if(!insideGutterRegion(PointOnComponent.x()))
{
UInt32 pos = 0, noOfCharacters =0;
UInt32 row = (UInt32(floor((PointOnComponent.y()/* - getParentTextDomArea()->getPosition().y() */) / heightOfLine)));
_CaretLine = row;
// calculating the caret line and caret y position
_CaretYPosition = row * heightOfLine;
Real32 xpos = PointOnComponent.x() - _GutterSpace - _GutterSeparation ;
if(row>=rootElement->getElementCount())
{
_CaretLine = rootElement->getElementCount()-1;
PlainDocumentLeafElementRefPtr temp = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(_CaretLine));
_CaretIndex = temp->getTextLength()-2;
recalculateCaretPositions();
HEL = _CaretLine;
HEI = _CaretIndex;
if(!isDragging)
{
HSL = HEL;
HSI = HEI;
}
printDebugInformation();
getParentTextDomArea()->setCaretPosition(getParentTextDomArea()->getDocumentModel()->getEndPosition()-2);
return 0;
}
for(UInt32 i=0;i<_CaretLine;i++)
{
PlainDocumentLeafElementRefPtr temp = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(i));
noOfCharacters= temp->getTextLength();
pos += noOfCharacters;
}
PlainDocumentLeafElementRefPtr temp = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(row));
noOfCharacters = 0;
std::string temptext = temp->getText();
Pnt2f topLeft,bottomRight;
std::string ttemp = "";
Real32 widthSoFar = 0.0;
_CaretIndex = 0;
for(UInt32 i=0;i<temp->getTextLength()-2;i++)
{
ttemp = temptext[i];
getParentTextDomArea()->getFont()->getBounds(ttemp,topLeft,bottomRight);
if(widthSoFar + bottomRight.x() <= xpos)
{
noOfCharacters++;
widthSoFar += bottomRight.x();
_CaretIndex++;
}
else
{
break;
}
}
_CaretXPosition = _GutterSpace + _GutterSeparation + widthSoFar;
pos += noOfCharacters;
HEL = _CaretLine;
HEI = _CaretIndex;
if(!isDragging)
{
HSL = HEL;
HSI = HEI;
}
printDebugInformation();
getParentTextDomArea()->setCaretPosition(pos);
return pos;
}
}
示例14: findBrace
void FixedHeightLayoutManager::findBrace(char theChar,UInt32 direction)
{
bool found = false;
Int32 currentLine;
switch(direction)
{
case AFTER:
{
currentLine = _StartingBraceLine;
UInt32 val = 1;
while(currentLine<rootElement->getElementCount())
{
PlainDocumentLeafElementRefPtr temp = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(currentLine));
std::string theString = temp->getText();
if(currentLine == _StartingBraceLine)
{
theString = theString.substr(_StartingBraceIndex);
}
if(find(theString.begin(),theString.end(),theChar) == theString.end() && find(theString.begin(),theString.end(),oppositeBrace(theChar)) == theString.end())
{
currentLine++;
continue;
}
else
{
for(UInt32 i=0;i<theString.size();i++)
{
if(theString[i]==theChar)
{
val++;
}
else if(theString[i]==oppositeBrace(theChar))
{
val--;
if(val <= 0)
{
_EndingBraceIndex = (currentLine == _StartingBraceLine)?(_StartingBraceIndex+i):i;
_EndingBraceLine = currentLine;
return;
}
}
}
}
currentLine++;
}
break;
}
case BEFORE:
{
currentLine = _EndingBraceLine;
UInt32 val = 1;
while(currentLine>=0)
{
PlainDocumentLeafElementRefPtr temp = dynamic_cast<PlainDocumentLeafElement*>(rootElement->getElement(currentLine));
std::string theString = temp->getText();
if(currentLine == _EndingBraceLine)
{
theString = theString.substr(0,_EndingBraceIndex);
}
if(find(theString.begin(),theString.end(),theChar) == theString.end() && find(theString.begin(),theString.end(),oppositeBrace(theChar)) == theString.end())
{
currentLine--;
continue;
}
else
{
for(Int32 i=theString.size()-1;i>=0;i--)
{
if(theString[i]==theChar)
{
val++;
}
else if(theString[i]==oppositeBrace(theChar))
{
val--;
if(val <= 0)
{
_StartingBraceIndex = i;
_StartingBraceLine = currentLine;
return;
}
}
}
}
currentLine--;
}
break;
}
}
}
示例15: tabHandler
void TextDomArea::tabHandler(bool isShiftPressed)
{
UInt32 lesserLine,greaterLine,lesserIndex;
DocumentElementAttribute temp;
UInt32 oldHSI = getLayoutManager()->getHSI();
UInt32 oldHSL = getLayoutManager()->getHSL();
UInt32 oldHEI = getLayoutManager()->getHEI();
UInt32 oldHEL = getLayoutManager()->getHEL();
PlainDocumentLeafElementRefPtr theElement;
if(getLayoutManager()->getHSL() <= getLayoutManager()->getHEL())
{
lesserLine = getLayoutManager()->getHSL();
lesserIndex = getLayoutManager()->getHSI();
greaterLine = getLayoutManager()->getHEL();
}
else
{
lesserLine = getLayoutManager()->getHEL();
lesserIndex = getLayoutManager()->getHEI();
greaterLine = getLayoutManager()->getHSL();
}
UInt32 count=0;
if(getLayoutManager()->isSomethingSelected())
{
if(!isShiftPressed)
{
for(UInt32 caretLine = lesserLine;caretLine<=greaterLine;caretLine++)
{
for(UInt32 i=0;i<getTabSize();i++)
{
//getDocumentModel()->insertCharacter(0,caretLine,' ',temp);
insertCharacterUsingCommandManager(' ',caretLine,0);
}
//getLayoutManager()->DoIfLineLongerThanPreferredSize();
}
}
else
{
for(UInt32 caretLine = lesserLine;caretLine<=greaterLine;caretLine++)
{
theElement = dynamic_cast<PlainDocumentLeafElement*>(getLayoutManager()->getRootElement()->getElement(caretLine));
std::string theString = theElement->getText();
Int32 i;
for(i=0;i<theElement->getTextLength()-2,i<getTabSize();i++)
{
if(theString[i]!=' ')break;
if(caretLine == getLayoutManager()->getCaretLine())getLayoutManager()->moveTheCaret(LEFT,false,false);
if(caretLine == lesserLine)count--;
}
theString = theString.substr(i);
setTextUsingCommandManager(theElement,theString);
//theElement->setText(theString);
}
getLayoutManager()->setHSI(0);
getLayoutManager()->setHSL(lesserLine);
getLayoutManager()->setHEI(0);
getLayoutManager()->setHEL(greaterLine);
}
}
else
{
if(!isShiftPressed)
{
for(UInt32 i=0;i<getTabSize();i++)
{
//getDocumentModel()->insertCharacter(getLayoutManager()->getCaretIndex(),getLayoutManager()->getCaretLine(),' ',temp);
insertCharacterUsingCommandManager(' ',-1,-1);
//getLayoutManager()->moveTheCaret(RIGHT,false,false);
}
//getLayoutManager()->DoIfLineLongerThanPreferredSize();
}
else
{
theElement = dynamic_cast<PlainDocumentLeafElement*>(getLayoutManager()->getRootElement()->getElement(getLayoutManager()->getCaretLine()));
std::string theString = theElement->getText();
Int32 i,count=0;
Int32 initIndex = getLayoutManager()->getCaretIndex();
for(i=getLayoutManager()->getCaretIndex()-1;i>=0,count<getTabSize();i--,count++)
{
if(i<0 || theString[i]!=' ')break;
getLayoutManager()->moveTheCaret(LEFT,false,false);
}
theString = theString.substr(0,getLayoutManager()->getCaretIndex())+theString.substr(initIndex);
setTextUsingCommandManager(theElement,theString);
//theElement->setText(theString);
}
}
}