Added some comments, some small style changes, and some TODO items.

Simplified some code.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8458 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stefano Ceccherini 2004-07-23 09:58:25 +00:00
parent b87611aa33
commit 41e3acb043

View File

@ -404,8 +404,8 @@ BTextView::Draw(BRect updateRect)
{
CALLED();
// what lines need to be drawn?
long startLine = LineAt(BPoint(0.0f, updateRect.top));
long endLine = LineAt(BPoint(0.0f, updateRect.bottom));
int32 startLine = LineAt(BPoint(0.0f, updateRect.top));
int32 endLine = LineAt(BPoint(0.0f, updateRect.bottom));
DrawLines(startLine, endLine);
@ -523,11 +523,9 @@ BTextView::MouseDown(BPoint where)
break;
case 2:
{
// double click, select word by word
FindWord(mouseOffset, &start, &end);
break;
}
default:
// new click, select char by char
@ -942,7 +940,8 @@ BTextView::ResolveSpecifier(BMessage *message, int32 index,
return target;
}
//------------------------------------------------------------------------------
status_t
BTextView::GetSupportedSuites(BMessage *data)
{
@ -965,14 +964,16 @@ BTextView::GetSupportedSuites(BMessage *data)
return BView::GetSupportedSuites(data);
}
//------------------------------------------------------------------------------
status_t
BTextView::Perform(perform_code d, void *arg)
{
CALLED();
return BView::Perform(d, arg);
}
//------------------------------------------------------------------------------
void
BTextView::SetText(const char *inText, const text_run_array *inRuns)
{
@ -1010,7 +1011,8 @@ BTextView::SetText(const char *inText, const text_run_array *inRuns)
InvertCaret();
}
}
//------------------------------------------------------------------------------
void
BTextView::SetText(const char *inText, int32 inLength,
const text_run_array *inRuns)
@ -1047,7 +1049,8 @@ BTextView::SetText(const char *inText, int32 inLength,
InvertCaret();
}
}
//------------------------------------------------------------------------------
void
BTextView::SetText(BFile *inFile, int32 inOffset, int32 inLength,
const text_run_array *inRuns)
@ -1090,14 +1093,16 @@ BTextView::SetText(BFile *inFile, int32 inOffset, int32 inLength,
InvertCaret();
}
}
//------------------------------------------------------------------------------
void
BTextView::Insert(const char *inText, const text_run_array *inRuns)
{
CALLED();
Insert(fSelStart, inText, strlen(inText), inRuns);
}
//------------------------------------------------------------------------------
void
BTextView::Insert(const char *inText, int32 inLength,
const text_run_array *inRuns)
@ -1105,7 +1110,8 @@ BTextView::Insert(const char *inText, int32 inLength,
CALLED();
Insert(fSelStart, inText, inLength, inRuns);
}
//------------------------------------------------------------------------------
void
BTextView::Insert(int32 startOffset, const char *inText, int32 inLength,
const text_run_array *inRuns)
@ -1254,7 +1260,8 @@ BTextView::TextLength() const
CALLED();
return fText->Length();
}
//------------------------------------------------------------------------------
void
BTextView::GetText(int32 offset, int32 length, char *buffer) const
{
@ -1279,7 +1286,8 @@ BTextView::ByteAt(int32 offset) const
return (*fText)[offset];
}
//------------------------------------------------------------------------------
int32
BTextView::CountLines() const
{
@ -1743,7 +1751,14 @@ BTextView::LineAt(BPoint point) const
CALLED();
return fLines->PixelToLine(point.y - fTextRect.top);
}
//------------------------------------------------------------------------------
/*! \brief Returns the location of the charachter at the given offset.
\param inOffset The offset of the charachter.
\param outHeight Here the function will put the height of the charachter at the
given offset.
\return A BPoint which is the location of the charachter.
*/
BPoint
BTextView::PointAt(int32 inOffset, float *outHeight) const
{
@ -1751,6 +1766,8 @@ BTextView::PointAt(int32 inOffset, float *outHeight) const
BPoint result;
int32 textLength = fText->Length();
int32 lineNum = LineAt(inOffset);
// TODO: This looks broken. line + 1 could go outside the line buffer
STELinePtr line = (*fLines)[lineNum];
float height = (line + 1)->origin - line->origin;
@ -1797,7 +1814,12 @@ BTextView::PointAt(int32 inOffset, float *outHeight) const
return result;
}
//------------------------------------------------------------------------------
/*! \brief Returns the offset for the given location.
\param point A BPoint which specify the wanted location.
\return The offset for the given point.
*/
int32
BTextView::OffsetAt(BPoint point) const
{
@ -1922,7 +1944,12 @@ BTextView::OffsetAt(BPoint point) const
return offset;
}
//------------------------------------------------------------------------------
/*! \brief Returns the offset of the given line.
\param line A line number.
\return The offset of the passed line.
*/
int32
BTextView::OffsetAt(int32 line) const
{
@ -1931,7 +1958,8 @@ BTextView::OffsetAt(int32 line) const
return (*fLines)[line]->offset;
}
//------------------------------------------------------------------------------
void
BTextView::FindWord(int32 inOffset, int32 *outFromOffset,
int32 *outToOffset)
@ -1969,10 +1997,8 @@ float
BTextView::LineWidth(int32 lineNum) const
{
CALLED();
if (lineNum < 0)
return (*fLines)[0]->width;
else if (lineNum > fLines->NumLines() - 1)
return (*fLines)[fLines->NumLines() - 1]->width;
if (lineNum < 0 || lineNum >= fLines->NumLines())
return 0;
else
return (*fLines)[lineNum]->width;
}
@ -1982,12 +2008,7 @@ float
BTextView::LineHeight(int32 lineNum) const
{
CALLED();
if (lineNum < 0)
return (*fLines)[0]->ascent;
else if (lineNum > fLines->NumLines() - 1)
return (*fLines)[fLines->NumLines() - 1]->ascent;
else
return (*fLines)[lineNum]->ascent;
return TextHeight(lineNum, lineNum);
}
@ -2005,6 +2026,7 @@ BTextView::TextHeight(int32 startLine, int32 endLine) const
if (endLine == numLines - 1 && (*fText)[fText->Length() - 1] == '\n')
height += (*fLines)[endLine + 1]->origin - (*fLines)[endLine]->origin;
return height;
}
@ -2059,7 +2081,8 @@ BTextView::GetTextRegion(int32 startOffset, int32 endOffset,
outRegion->Include(selRect);
}
}
//------------------------------------------------------------------------------
void
BTextView::ScrollToOffset(int32 inOffset)
{
@ -2079,7 +2102,8 @@ BTextView::ScrollToOffset(int32 inOffset)
ScrollBar(B_VERTICAL)->SetValue(point.y - (bounds.IntegerHeight() / 2));
}
}
//------------------------------------------------------------------------------
void
BTextView::ScrollToSelection()
{
@ -2107,7 +2131,8 @@ BTextView::Highlight(int32 startOffset, int32 endOffset)
FillRegion(&selRegion, B_SOLID_HIGH);
SetDrawingMode(B_OP_COPY);
}
//------------------------------------------------------------------------------
void
BTextView::SetTextRect(BRect rect)
{
@ -2120,14 +2145,17 @@ BTextView::SetTextRect(BRect rect)
if (Window() != NULL)
Refresh(0, fLines->NumLines(), true, false);
}
//------------------------------------------------------------------------------
BRect
BTextView::TextRect() const
{
CALLED();
return fTextRect;
}
//------------------------------------------------------------------------------
void
BTextView::SetStylable(bool stylable)
{
@ -2146,7 +2174,8 @@ BTextView::IsStylable() const
CALLED();
return fStylable;
}
//------------------------------------------------------------------------------
void
BTextView::SetTabWidth(float width)
{
@ -2817,7 +2846,7 @@ BTextView::HandleArrowKey(uint32 inArrowKey)
fClickOffset = PreviousInitialByte(fClickOffset);
if (shiftDown) {
if (fClickOffset > fSelStart)
if (fClickOffset >= fSelStart)
selEnd = fClickOffset;
else
selStart = fClickOffset;
@ -2832,7 +2861,7 @@ BTextView::HandleArrowKey(uint32 inArrowKey)
fClickOffset = NextInitialByte(fClickOffset);
if (shiftDown) {
if (fClickOffset < fSelEnd)
if (fClickOffset <= fSelEnd)
selStart = fClickOffset;
else
selEnd = fClickOffset;
@ -2918,7 +2947,8 @@ BTextView::HandleDelete()
Refresh(fSelStart, fSelEnd, true, true);
}
//------------------------------------------------------------------------------
void
BTextView::HandlePageKey(uint32 inPageKey)
{
@ -2970,6 +3000,7 @@ BTextView::HandlePageKey(uint32 inPageKey)
case B_PAGE_UP:
case B_PAGE_DOWN:
// TODO: Fix this
{
if (ScrollBar(B_VERTICAL) != NULL) {
float delta = Bounds().Height();
@ -2980,7 +3011,8 @@ BTextView::HandlePageKey(uint32 inPageKey)
}
}
}
//------------------------------------------------------------------------------
void
BTextView::HandleAlphaKey(const char *bytes, int32 numBytes)
{
@ -3101,7 +3133,8 @@ BTextView::Refresh(int32 fromOffset, int32 toOffset, bool erase,
Flush(); ////
}
//------------------------------------------------------------------------------
void
BTextView::RecalLineBreaks(int32 *startLine, int32 *endLine)
{
@ -3175,7 +3208,8 @@ BTextView::RecalLineBreaks(int32 *startLine, int32 *endLine)
*endLine = lineIndex - 1;
*startLine = min_c(*startLine, *endLine);
}
//------------------------------------------------------------------------------
int32
BTextView::FindLineBreak(int32 fromOffset, float *outAscent,
float *outDescent, float *ioWidth)
@ -3410,7 +3444,8 @@ BTextView::ActualTabWidth(float location) const
CALLED();
return fTabWidth - fmod(location, fTabWidth);
}
//------------------------------------------------------------------------------
void
BTextView::DoInsertText(const char *inText, int32 inLength, int32 inOffset,
const text_run_array *inRuns,
@ -3418,14 +3453,16 @@ BTextView::DoInsertText(const char *inText, int32 inLength, int32 inOffset,
{
CALLED();
}
//------------------------------------------------------------------------------
void
BTextView::DoDeleteText(int32 fromOffset, int32 toOffset,
_BTextChangeResult_ *outResult)
{
CALLED();
}
//------------------------------------------------------------------------------
void
BTextView::DrawLines(int32 startLine, int32 endLine, int32 startOffset,
bool erase)
@ -3551,7 +3588,8 @@ BTextView::DrawLines(int32 startLine, int32 endLine, int32 startOffset,
ConstrainClippingRegion(NULL);
}
//------------------------------------------------------------------------------
void
BTextView::DrawCaret(int32 offset)
{
@ -3617,20 +3655,23 @@ BTextView::DragCaret(int32 offset)
fDragOffset = offset;
}
//------------------------------------------------------------------------------
void
BTextView::StopMouseTracking()
{
CALLED();
}
//------------------------------------------------------------------------------
bool
BTextView::PerformMouseUp(BPoint where)
{
CALLED();
return false;
}
//------------------------------------------------------------------------------
bool BTextView::PerformMouseMoved(BPoint where, uint32 code)
{
CALLED();
@ -3703,7 +3744,14 @@ BTextView::InitiateDrag()
DragMessage(drag, dragRect, dragHandler);
}
}
//------------------------------------------------------------------------------
/*! \brief Called when some data is dropped on the view.
\param inMessage The message which has been dropped.
\param where The location where the message has been dropped.
\param offset ?
\return \c true if the message was handled, \c false if not.
*/
bool
BTextView::MessageDropped(BMessage *inMessage, BPoint where, BPoint offset)
{
@ -3928,8 +3976,10 @@ uint32
BTextView::CharClassification(int32 offset) const
{
CALLED();
// Should check against a list of characters containing also
// japanese word breakers
// TODO:Should check against a list of characters containing also
// japanese word breakers.
// And what about other languages ? Isn't there a better way to check
// for separator charachters ?
switch (fText->RealCharAt(offset)) {
case B_SPACE:
case '_':
@ -3993,7 +4043,8 @@ BTextView::PreviousInitialByte(int32 offset) const
return count ? offset : 0;
}
//------------------------------------------------------------------------------
bool
BTextView::GetProperty(BMessage *specifier, int32 form,
const char *property, BMessage *reply)
@ -4029,7 +4080,8 @@ BTextView::GetProperty(BMessage *specifier, int32 form,
else
return false;
}
//------------------------------------------------------------------------------
bool
BTextView::SetProperty(BMessage *specifier, int32 form,
const char *property, BMessage *reply)
@ -4071,7 +4123,8 @@ BTextView::SetProperty(BMessage *specifier, int32 form,
else
return false;
}
//------------------------------------------------------------------------------
bool
BTextView::CountProperties(BMessage *specifier, int32 form,
const char *property, BMessage *reply)