(libinterface) Add SetText() to UrlTextView
This commit is contained in:
parent
5dcf59a7e9
commit
150fd736e1
|
@ -87,39 +87,6 @@ UrlTextView::MessageReceived(BMessage* msg)
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
UrlTextView::Insert(const char* text, const text_run_array* runs)
|
||||
{
|
||||
BString buf(text);
|
||||
|
||||
int32 specStart = 0;
|
||||
int32 specEnd = 0;
|
||||
int32 lastEnd = 0;
|
||||
int32 length = buf.CountChars();
|
||||
|
||||
while (_FindUrlString(buf, &specStart, &specEnd, lastEnd) == true) {
|
||||
if (lastEnd < specStart) {
|
||||
BString normie;
|
||||
buf.CopyCharsInto(normie, lastEnd, specStart - lastEnd);
|
||||
BTextView::Insert(TextLength(), normie.String(), normie.Length(),
|
||||
runs);
|
||||
}
|
||||
BString special;
|
||||
buf.CopyCharsInto(special, specStart, specEnd - specStart);
|
||||
BTextView::Insert(TextLength(), special.String(), special.Length(),
|
||||
&fUrlRun);
|
||||
|
||||
lastEnd = specEnd;
|
||||
}
|
||||
if (lastEnd < length) {
|
||||
BString remaining;
|
||||
buf.CopyCharsInto(remaining, lastEnd, length - lastEnd);
|
||||
BTextView::Insert(TextLength(), remaining.String(), remaining.Length(),
|
||||
runs);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
UrlTextView::MouseDown(BPoint where)
|
||||
{
|
||||
|
@ -180,6 +147,47 @@ UrlTextView::Select(int32 startOffset, int32 endOffset)
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
UrlTextView::Insert(const char* text, const text_run_array* runs)
|
||||
{
|
||||
BString buf(text);
|
||||
|
||||
int32 specStart = 0;
|
||||
int32 specEnd = 0;
|
||||
int32 lastEnd = 0;
|
||||
int32 length = buf.CountChars();
|
||||
|
||||
while (_FindUrlString(buf, &specStart, &specEnd, lastEnd) == true) {
|
||||
if (lastEnd < specStart) {
|
||||
BString normie;
|
||||
buf.CopyCharsInto(normie, lastEnd, specStart - lastEnd);
|
||||
BTextView::Insert(TextLength(), normie.String(), normie.Length(),
|
||||
runs);
|
||||
}
|
||||
BString special;
|
||||
buf.CopyCharsInto(special, specStart, specEnd - specStart);
|
||||
BTextView::Insert(TextLength(), special.String(), special.Length(),
|
||||
&fUrlRun);
|
||||
|
||||
lastEnd = specEnd;
|
||||
}
|
||||
if (lastEnd < length) {
|
||||
BString remaining;
|
||||
buf.CopyCharsInto(remaining, lastEnd, length - lastEnd);
|
||||
BTextView::Insert(TextLength(), remaining.String(), remaining.Length(),
|
||||
runs);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
UrlTextView::SetText(const char* text, const text_run_array* runs)
|
||||
{
|
||||
BTextView::SetText("");
|
||||
Insert(text, runs);
|
||||
}
|
||||
|
||||
|
||||
BString
|
||||
UrlTextView::WordAt(BPoint point)
|
||||
{
|
||||
|
|
|
@ -22,15 +22,16 @@ public:
|
|||
|
||||
virtual void MessageReceived(BMessage* msg);
|
||||
|
||||
// Only differs in that it changes font face and color of any URLs
|
||||
virtual void Insert(const char* text, const text_run_array* runs = NULL);
|
||||
|
||||
virtual void MouseDown(BPoint where);
|
||||
virtual void MouseUp(BPoint where);
|
||||
virtual void MouseMoved(BPoint where, uint32 code, const BMessage* drag);
|
||||
|
||||
virtual void Select(int32 startOffset, int32 endOffset);
|
||||
|
||||
// Only differs in that it changes font face and color of any URLs
|
||||
void Insert(const char* text, const text_run_array* runs = NULL);
|
||||
void SetText(const char* text, const text_run_array* runs = NULL);
|
||||
|
||||
BString WordAt(BPoint point);
|
||||
void FindWordAround(int32 offset, int32* start, int32* end,
|
||||
BString* _word = NULL);
|
||||
|
|
Ŝarĝante…
Reference in New Issue