Commit Graph
51 Commits
Author SHA1 Message Date
Stefano Ceccherini 9d73eec0ef Fixed a couple of problems with inserting text when there was a
selection (for example, moving around text with the mouse).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23789 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-30 10:58:04 +00:00
Stefano Ceccherini bc7e472d88 DragMessage() makes a copy of the passed message. We were leaking inside
BTextView::_InitiateDrag().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23787 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-30 09:22:49 +00:00
Stefano Ceccherini 8afaa47365 Fixed warning
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23606 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 12:09:23 +00:00
Stefano Ceccherini 75ee0a2911 Respect the maximum bytes set by SetMaxBytes() in Insert() and on
keydown. Fixed SetMaxBytes() so that it respect multibyte characters
(it removes the whole character in case it doesn't fit).
This can be seen in BColorControls, where you can't write numbers with 
more than 3 characters anymore.  


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23605 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 12:01:31 +00:00
Stefano Ceccherini 2c2176ceba Removed SetViewCursor() from BTextView::_Deactivate(), as suggested by
cl21.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-01 15:50:37 +00:00
Stefano Ceccherini cb752f1822 xdiff -> xDiff, useHorz -> useHorizontal...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22978 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-22 10:56:27 +00:00
Stefano Ceccherini c9dcf7979b BTextView::_ScrollToOffset() just didn't work correctly most of the
times, since xdiff and ydiff didn't take the point returned by 
PointAt() into account. Thanks to Andrea Anzani for noticing this.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22977 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-22 10:53:53 +00:00
Stephan Aßmus 23b6ac7e15 this should complete the work on password mode for BTextView:
* fixed +/- 1 bug in _BTextGapBuffer_::GetString()
* used the correct text and offsets in BTextView whenever the visible
  text is to be used
* when copying to the clipboard, copy the bullets
* when dragging the text, drag the bullets
TODO:
* test more with UTF8 chars in the original text (I am unsure if fSelStart
  and so on is really in bytes rather than glyphs)
* test with multiple font styles



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22787 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-01 15:58:07 +00:00
Axel Dörfler 13ca2d942d Patch by Vasilis Kaoutsis - thanks!:
* Rewrote TextView.h
* Renamed all private methods to have the underscore prefix.
And also:
* Whitespace and line width cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22688 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-23 20:44:17 +00:00
Stefano Ceccherini 17dee6524b and there, the usual commit which removes the forgotten debug output...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22490 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-08 21:48:49 +00:00
Stefano Ceccherini c044172704 I was wrong after all. InsertText() doesn't call SetRunArray() (and
hence CancelInputMethod()), but it implements part of it. To avoid code 
duplication, I added a private _SetRunArray() call, which does most of 
the work, except cancelling the input method, and calling Refresh().
Removed some unneeded code from CancelInputMethod(), some small changes 
in HandleInputMethodChanged. 
-Questa linea, e quelle sotto di essa, saranno ignorate--

M    src/kits/interface/TextView.cpp
M    headers/os/interface/TextView.h


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22489 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-08 21:46:35 +00:00
Stefano Ceccherini 6fc1a5d0ea Mail's inherited InsertText() calls CancelInputMethod()
indirectly, and since InsertText() is called inside 
BTextView::HandleInputMethodChanged(), this method would see fInline 
slip away from under its feet.. Now we call the BTextView version 
explicitly. Fixes bug #1022, although I'm not sure if this is completely 
correct.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22444 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-04 19:57:27 +00:00
Stefano Ceccherini 94b9294f48 oops! Somehow I managed to commit a version with some extra debug code
enabled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22433 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-04 11:37:04 +00:00
Stefano Ceccherini f2476bcc9c Patch by Rene Gollent: TextViews now can scroll even if they aren't
attached to a BScrollView.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22432 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-04 11:32:06 +00:00
Stefano Ceccherini b33a19a278 Adjusted a bit BTextView::AutoResize() so that the text rect is more
centered. At least renaming a file in tracker looks a bit better now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-01 14:51:51 +00:00
Stefano Ceccherini e94ad1e24d If typing is hidden, don't reply to B_COPY or B_CUT messages, but beep()
in this case. Note that the public methods still let you copy and cut 
the real text. Also prevented stealing passwords via scripting (not 
tested, though). Fixes bug #1354
Got rid of the _BTextGapBuffer_::[] operator since using it creates less readable code.
Also Implemented _BTextGapBuffer_::RealText() and used it instead of Text() inside BTextView. Will make sense later.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22129 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-31 07:39:18 +00:00
Stefano Ceccherini 6a9c969bcc If line breaks have changed, don't take the startOffset into account. Fixes bug #1430
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22095 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-28 15:13:55 +00:00
Stephan Aßmus c6811df0c3 * I am turning this back on, it seems the problems are fixed, and if not,
I would like to fix them. Using the string width cache results in a great
  drawing speed up, for example in StyledEdit and Mail. Any app that uses a
  larger BTextView.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21928 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-13 17:03:53 +00:00
Stefano Ceccherini 98eadf4b9d Scrolling didn't work correctly if the user didn't move the mouse all
the time. Fixed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21868 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-09 09:38:19 +00:00
Stefano Ceccherini 99584ef9a2 Added _Show/_HideCaret() and used them in place of more bug-prone code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21558 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-04 20:20:09 +00:00
Stefano Ceccherini c57ff65839 Avoid scrolling vertically if scrolling area is outside the text rect. Pin parameters in Select() before doing other checks on them (reported by Marc Flerackers)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21511 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-27 10:43:48 +00:00
Stefano Ceccherini 1a2a0e07c6 Check scrolling against text rect limits. Fixes bug 1240 (and maybe 1241
too)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21207 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-22 14:13:08 +00:00
Stefano Ceccherini 107ce0bba0 Fixed a bug in selection via keyboard (the problem described in bug
#716, comment #4)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20997 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-03 15:15:23 +00:00
Stefano Ceccherini f96bec013d small cleanups. Moved some code into a _DrawLine() method.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20940 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-30 19:49:43 +00:00
Stefano Ceccherini 0d4fbcc8fe made _BInlineInput_::AddClause() more robust in low memory conditions
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20870 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-27 20:35:36 +00:00
Stefano Ceccherini a1c0361478 Use LineHeight() instead of StyledWidthUTF8Safe() to get the height of
the line in PointAt(), since the former didn't return the correct 
result, due to the fact that there were 0 charachters on that line. 
Fixed a bug in TextHeight() which ended up doubling the 
height of the line if we requested the last line.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20745 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-18 09:33:32 +00:00
Stefano Ceccherini 1a64df767e BTextView::FreeRunArray() now accepts a NULL pointer too (like free())
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19937 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-24 06:02:58 +00:00
Stefano Ceccherini ee144512ec use Invalidate() and UpdateIfNeeded() in BTextView::SetTextRect(). Fixes bug #571
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19824 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-16 09:04:14 +00:00
Stefano Ceccherini 25df172b72 Implemented auto horizontal scrolling (by fixed steps for now), moved
auto scrolling to its own method, introduced a new private 
StyledWidthUTF8Safe method.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19694 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-04 10:44:29 +00:00
Stefano Ceccherini 23fb6e0efe - Fixed wrong redrawing of the caret in some particular circumstancies
(most notably when you clicked the first time on the textview, the caret 
would be left "drawn" on the old position.
- Implemented vertical auto scrolling (horizontal auto scrolling is 
still missing). Note that the view jumps when there is nothing to 
scroll, might be a bug in BView::ScrollBy() ?
 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19692 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-04 09:40:54 +00:00
Stefano Ceccherini 59f9192c3b added nothrow
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19590 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-21 14:34:58 +00:00
Axel Dörfler 7ca295180f Applied Stefano's patch to bug #886. Also does nothing now if startOffset is larger
than endOffset.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19169 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-02 10:07:13 +00:00
Axel Dörfler fe23fb6699 * Renamed private BMenu::SelectItem() to _SelectItem(), and made its arguments a bit more sane.
* Fixed two GCC 4 warnings.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-29 11:22:14 +00:00
Axel Dörfler f0cd9e9d87 Canceling an input method now removes the complete inline from the text.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-25 12:25:41 +00:00
Axel Dörfler 3956f772e1 No longer ignores the text that comes with a confirmed B_INPUT_METHOD_CHANGED
event; it now only deactivates the inline in that case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19115 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-24 23:20:20 +00:00
Stefano Ceccherini 4dd74f2945 disabled the use of _BWidthBuffer_ until the app_server font backend implements B_BITMAP_SPACING. Small cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19004 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-05 12:19:06 +00:00
Stefano Ceccherini de20f0faca some changes, fixed a rendering bug
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18987 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-02 12:23:38 +00:00
Stefano Ceccherini 1e17db8ac6 put common code for Insert() methods into DoInsertText(), this avoids an extra strlen() call
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18968 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-28 13:28:13 +00:00
Stefano Ceccherini 7d8ee43e80 now checks the real lenght of the passed buffer in BTextView::Insert(). Seems to fix bug 675
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18967 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-28 13:08:01 +00:00
Stefano Ceccherini 25ba188a07 added a parameter to _BTextGapBuffer_::GetString() so that the caller knows how many bytes are really returned. password mode looks better now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18965 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-28 12:27:31 +00:00
Stefano Ceccherini f70a414b8b fixed broken endlines in case there were TAB charachters (bug 865). A better solution is also coming.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18959 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-28 12:00:14 +00:00
Stefano Ceccherini 3091f56a1a more bugs fixed in keyboard text selection
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18956 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-28 11:38:56 +00:00
Stefano Ceccherini a09f0db169 fixed some remaining bugs in keyboard selection, reimported code for up/down keys handling
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18954 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-28 10:13:29 +00:00
Stefano Ceccherini 7184af5e4e improved keyboard text selection.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18953 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-28 10:01:07 +00:00
Jérôme Duval 4a718fa33d fix for gcc4
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18944 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-26 17:24:00 +00:00
Stefano Ceccherini 9205b41148 fixed word by word selection
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18943 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-26 15:07:19 +00:00
Stefano Ceccherini 6343dc9855 Implemented working asynchronous mouse tracking, dropped synchronous tracking. Selecting text is now also much faster. Auto scrolling is missing for the moment, though
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18942 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-26 14:41:53 +00:00
Stefano Ceccherini d67b1efc99 Fixed broken endlines. This breaks a bit more 'password mode', but it wasn't 100% working yet anyway
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18874 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-17 13:34:15 +00:00
Stefano Ceccherini 575a68b317 Implemented BTextView::HideTyping(). Now it will display B_UTF8_BULLET
chars instead of the real text if this option is enabled. Note that 
there are problems with the text width, i.e. the calculation is still 
done with the "real" chars, leading to text corruption.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18837 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 14:51:18 +00:00
Stefano Ceccherini 3a70724f43 Finally nailed that bug which caused text not to be drawn in some cases... OffsetAt() was returning 1 instead of 0 if you clicked on an empty BTextView due to a bug in NextInitialByte() . Some cleanups
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18836 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 13:17:47 +00:00