Commit Graph
103 Commits
Author SHA1 Message Date
Oliver Tappe f2e0ac2cd7 * Instead of moving bounds-height during paging, we now determine the exact
next position of the caret and only scroll the distance between the current
  and the next position. This fixes #3981
* When paging upwards, we need to compensate for the fact that the caret 
  position is always considered at the top of the line, as otherwise a
  page-up would pass one more line than a page-down


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30933 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-30 21:07:36 +00:00
Oliver Tappe 4b6aea9b74 Fixed bug in BTextView reported by Matt:
* when selecting via mouse, the caret position now follows the direction of
  the selection - which is less surprising than not moving the caret at all

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30928 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-30 17:27:03 +00:00
Oliver Tappe b62daa4867 * adjusted _HandleInputMethodChanged() to not blindly insert the string that
has been given via the inline input method, but to feed the individual
  UTF8-characters it contains to KeyDown() - this way special keys like
  B_BACKSPACE and cursor keys will be handled correctly instead of producing
  a "unknown char rectangle"


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30764 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-15 10:05:05 +00:00
Oliver Tappe 78da6449b0 * corrected the computation of alignment offsets for centered or right-aligned
textviews, such that the characters are drawn at their correct positions and 
  there  are no longer any mismatches between caret and character positions
* fixed too large widths returned by LineWidth() for lines ending with a
  newline: the newline character must not contribute to the width
This makes the textcontrol in DiskProbe work properly again.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30762 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-14 17:44:49 +00:00
Oliver Tappe 8ca914d177 * removed debug output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30758 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-13 22:28:34 +00:00
Oliver Tappe f287ca7dc8 fixed behaviour of non-editable textviews:
* non-editable textviews no longer draw the caret
* the cursor keys scroll immediately, not only when the (invisible) caret 
  reaches the views bounds
* HOME/END work more reliably
* any selection stays active throughout keyboard navigation
Tested with AboutSystem, Mail, StyledEdit and Beam - seems to work ok


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30756 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-13 22:09:15 +00:00
Oliver Tappe 6f260d075b Fixed two bug(let)s in BTextView that I encountered when working on the
Keymap preflet:
* obscure the cursor only if the textview has the focus
* initiate a drag not only if the cursor has moved to another index, but also
  when the cursor has moved more than three pixels, since otherwise it was
  impossible to drag the first character to the left or top of the view
  (as the corresponding index was always zero)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30698 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-10 13:09:41 +00:00
Oliver Tappe 73af36d459 * maintain width of 80 chars per line
* automatic whitespace cleanup

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30533 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-01 14:27:52 +00:00
Oliver Tappe 5cc8dc2fe3 * unified application of style into a separate method _ApplyStyleRange()
in order to maintain the null-style appropriately, if required
* finally fix #3040 for real (a single style is now maintained at all times
  for non-stylable textviews)
* the caret is now being drawn with the correct size, even if it is on
  the empty line at the end of the buffer and a specific font size has been
  requested


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30532 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-01 13:59:13 +00:00
Oliver Tappe 435455abc1 * textviews that aren't editable no longer perform cut or paste actions (again
reported by kirilla, thanks!)
* when tracking the mouse in order to detect drags, it is not necessary to
  check if the pointer is within the selection, as that causes problems when
  you e.g. click on the border of the selection and then move the mouse outside
  of it (we'd still want to initiate a drag in that case)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30519 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-30 20:19:43 +00:00
Oliver Tappe c27ffb3a23 Fixed a bug reported by kirilla:
* the textview now only initiates a drag after the mouse has been moved to 
  another offset, making it possible to click into the selection in order to 
  position the caret at the offset corresponding to the point of the click
  (just as R5 does it)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30518 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-30 19:56:54 +00:00
Oliver Tappe 819c98a383 Fixing #3040 (DeskCalcs textview showing wrong/multiple styles)
* fixed crash in StyleBuffer::SetStyleFromMode() if any of the given pointers
  is NULL (which is perfectly valid)
* BTextView::SetFontAndColor() now syncs the null style before it sets the 
  range, thus making sure that there is only one style if the view is not 
  stylable

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30516 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-30 18:44:26 +00:00
Oliver Tappe 6241755766 Fixed all wrapping issues that I know of (non-working wrapping at end of text, broken hard-wrapping of overlong words, visual leftovers after a word got wrapped):
* adjusted _FindLineBreak() to no longer expect that only whitespace can
  end a line, as that is simply not true
* CanEndLine() returns true for characters that are followed by end-of-text
  or a separator
* activated the commented lines in CanEndLine() that allow '...' to be treated
  as a word
As I have nothing more relating to BTextView on my todo-list, I will start doing something else now, but please *do* send any complaints my way ;-)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30473 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-27 20:58:37 +00:00
Oliver Tappe cad2c3d0a5 * fixed bug in autoscrolling that caused the content to jump between the
view's top and bottom if you moved the pointer above the view and reached
  the top
* increased auto-scrolling speed to 40 scroll steps per second and changed
  _PerformAutoScrolling() to behave as R5: do soft scrolling

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30463 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-27 16:14:55 +00:00
Oliver Tappe 588b46eacd more work concerning navigation within BTextView:
* pressing HOME on last line works again
* made public versions of LineAt() do what is required to pass back the
  correct value even for the last line of the buffer (original implementation
  has been moved to private _LineAt())
* PAGE_UP/PAGE_DOWN now moves the view by the bounds-height, making the
  behaviour somewhat less confusing (IMHO, please shout if that's not 
  acceptable for you)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30458 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-27 13:59:45 +00:00
Oliver Tappe 2ae836dbe0 * temporarily removed parts of my last change as this completely ruins
single-lined textviews - needs some more thinking ...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30456 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-27 08:48:56 +00:00
Oliver Tappe 8fd209b4de Fixed incompatibility with R5 (and general PITA) - LineAt(TextLength())
returned one less than it should, causing unexpected moves of the caret, for instance when pressing HOME on the last (empty) line:
* LineBuffer::OffsetToLine() and LineBuffer::PixelToLine() did not check
  for the last line in their binary search
* removed a special case from TextView::PointAt() which now is no longer
  necessary (not sure if it was, before)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30435 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-26 18:05:42 +00:00
Oliver Tappe f7c48ade93 * fixed a couple of inconsistencies with respect to handling of cursor-
and paging-keys, especially extending the selection via shift was more or
  less broken


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30431 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-26 16:19:27 +00:00
Oliver Tappe ed4f2d8805 Fixed a regression pointed out by Rene:
* Select() did not adjust fClickOffset, which resulted in the cursor
  position not being where on would expect (noticable when pressing
  cursor-up/-down)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-15 22:02:16 +00:00
Stephan Aßmus 78772ca58c Should fix the problems with dirty selection left-overs when editing and also
other situations. Basically, I made DeleteText() adjust the selection according
to the deleted range. Some places where DeleteText() was called forgot to
adopt the selection. Other places adopted the selection. Maybe some of those
could be removed now, but some also change fClickOffset, so I just left them
as they are.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-09 18:29:55 +00:00
Stephan Aßmus bedfcd63af Improve the word wrapping a bit. This should eventually use the LocalKit when
it's ready. For now, I just tried to fix stuff like breaking before
punctuations. I had trouble wrapping my mind around the wrapping code, so I
didn't include as much cases as I wanted. Basically, the wrapping code assumes
that a spot where CanEndLine() returns true must be a white space character,
which wouldn't be the case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-09 17:54:01 +00:00
Stephan Aßmus b2a271d29f Changing the text selection region calculation was not such a good idea, it
needs more testing before I can do that, but in principle, I think the idea
was an ok one... :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30048 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-08 22:50:35 +00:00
Stephan Aßmus 82d9f50841 Some BTextView fixes, most importantly the annoying up/down ping pong when
triggering auto-scrolling in BTextControls...
* _BTextInput_::MinSize() added 1 to the line height, but when aligning the
  text rect, at least one pixel is added at the top and bottom, which makes
  for at least two extra pixels.
* BTextView::_PerformAutoScrolling() had some code which was supposed to
  prevent from out-of-bounds scrolling, but the bottom maximum coordinate
  was not correctly calculated. This and the above item led to the ping-pong
  effect.
* Additionally, I prevented scrolling vertically for one-line text views
  completely.
* On mouse-up, reset the cursor. It may have to be the I-Beam cursor again,
  for example after de-selecting.
* While mouse tracking the selection, always use the I-Beam cursor.
* Also when mouse tracking, do not use the minimum/maximum text offset when
  the mouse is above/below the text rect. Do this only when it's also outside
  on left/right sides. This is less irritating and works like on other
  platforms. It means the first/last line can still be selected, without
  having to constrain the mouse to the inside of the text view.
* When calculating the selection region, don't make the bottom one pixel too
  far up. Lines which contain glyphs that extend below the base-line have
  one more pixel below the glyphs that is inverted now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30046 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-08 22:10:27 +00:00
Oliver Tappe 200da6828f * implemented wordwise navigation via control + arrow keys
* renamed _FindXXXWordBoundary() methods to _Previous/_NextWordBoundary()
  since the respective per-char methods are named this way
* started to work on improving the behaviour of page-up/page-down

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30012 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-07 22:40:53 +00:00
Oliver Tappe ed5f1fd367 * fix off-by-one error in my last change that reverted the editing
direction - oops ;-)
* undo is now active by default

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29996 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-07 15:52:58 +00:00
Oliver Tappe 3f3ab1625c continued work on BTextView:
* reverted my recent change that caused Mail to always show the end
  of mails 8-) and now invoke ScrollToOffset() wherever it was missing
  (mostly in keyboard-related methods)
* _DoInsertText() only moves the caret if the text has been inserted
  in front of the caret, not after it
* overhauled selection by char/word/line and their extension mechanism
  (which now behaves as the haiku shell)
* use strnlen() instead of strlen() in those versions of Insert() which
  accept a length parameter, as strlen can potentially waste a lot of
  cycles skipping the whole string, when all we want is to clamp the length.
* cleanup (some of it automatic removal of trailing whitespace)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29995 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-07 15:29:23 +00:00
Oliver Tappe 940901b615 applied two textview-patches from Blub that fixes #3458:
* Select() did not re-show the caret when it should
* GoToLine() must hide/show the caret to avoid drawing artefacts


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29983 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-06 22:27:01 +00:00
Oliver Tappe 4e50f1ae68 * Instead of invoking _DrawLines out of the app-server drawing context,
we request the drawing via Invalidate() - this make use of the app-server's
  potential double buffering, whenever that is active. This change reduces 
  flickering in VESA mode considerably.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29962 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-06 11:31:10 +00:00
Oliver Tappe 2da74964c0 fixed two scalability problems that made BTextView perform rather slow
with large contents:
* when searching for tab characters in DrawLine(), we now limit the search 
  to the current line, too (not only the end of the style) - this avoids
  scanning to the end of large contents repeatedly
* there's no need to refresh from the edit location to the end of the
  content in _DoInsertText(), we only need to refresh the part that has
  changed

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29960 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-06 09:00:52 +00:00
Stephan Aßmus c06e28719b Patch by Olivier Coursiere: Fixes ticket #3673. Thanks a lot!
NOTE: There are some more problems with regard to this, if you resize
DeskCalc (which sets a new font size on the expression view, and then type
something, the newly typed stuff will have the old font still...)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29911 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-04 22:40:58 +00:00
Stephan Aßmus 339dcf9c81 When changing the text rect, simply invalidate the view. Otherwise it leaves
dirt in various cases.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29760 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-28 19:34:40 +00:00
Ryan Leavengood b7c9f42b94 Fix the bug on the mailing list where TextView does not go to the beginning of
the buffer when Ctrl-Home is pressed and to the end when Ctrl-End is pressed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29476 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-12 02:37:18 +00:00
Stephan Aßmus 2f86ba4557 Implemented a new look for the Haiku interface controls. It was
overheard that they looked too ninety-ish.
TODO: The code behind this is work in progress. The basic idea
is to extract all drawing code into a new class BControlLook,
of which there is a global instance be_control_look, instantiated
in InterfaceDefs.cpp. At the moment, all the old drawing code is
still there, and the usage of be_control_look is inside if-bodies
checking the instance against NULL. In another words, by not
instanitating be_control_look, you can revert back to the old look.
BControlLook's job is to provide reusable methods for drawing
certain types of frames, backgrounds and labels, so that application
developers can make controls that re-use the same drawing code
as built-in controls and adopt to changes made there. I have added
the notion of "borders". Each of the frame drawing methods can be
made to draw certain borders only, which is supposed to help when
controls shall visually attach. This feature is not fully explored
at all ATM.
TODO: Update BColumnListView header view and BStringItem text
spacing. Update other apps where it makes sense to use BControlLook.
For the moment, only Tracker and LaunchBox are updated. More...
NOTE: The new look is not very radically different, so that existing
apps do not immediately look too ugly or out of place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-15 18:23:19 +00:00
Stephan Aßmus b545073f08 * Moved the global BPrivate::WidthBuffer from BTextView into BPrivate as
gWidthBuffer.
* Tracker PoseView now uses BPrivate::gWidthBuffer instead of it's own
  instance.
* TextView.h and PoseView.h are now a little cleaner.
* InterfaceDefs.cpp now deletes gWidthBuffer in _fini_interface_kit_().
* Added binary compatibility support for NetPositive in WidthBuffer.h and .cpp.
  Obviously it kind of defeats the purpose of having WidthBuffer neatly tucked
  away in the BPrivate namespace, but Haiku should run NetPositive, I guess.
  Fixes #2879.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28532 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-06 11:31:40 +00:00
Stephan Aßmus c1513476b3 SetWordWrap() did not work when the BTextView was not (yet) attached to a
window this fixes the tool tip size/layout in apps that use BubbleHelper
(Beam, WonderBrush, ...). Thanks to Rene and Stefano for sending me a test
application.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28489 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-04 10:54:34 +00:00
Stephan Aßmus c470027d27 Tracked down a busy loop that I could reproduce pretty reliably with
tool tips in WonderBrush. The reason was that the text rect is getting
smaller and smaller each time the tool tip is shown (even though there
is only one word), and the line break moves one char towards the beginning
each time. After four times, the busy loop would kick in reliably. I cannot
really say that I understand the code, though. But that's the spot anyways.
Stefano, could you have a look?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28471 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-02 21:40:44 +00:00
Oliver Tappe 9f3fce1eac Stippi + zooey:
* fixed LineHeight() for the case when the textview does not yet contain
  anything - instead of returning 0 we now return the lineheight of the
  default style (or the textview's font).
Fixes #2231


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28194 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-16 21:40:12 +00:00
Stephan Aßmus 1cbca49a83 zooey + stippi:
* Fix the calculation of the fTextRect member. The BeOS behavior (and also the
  previous Haiku behavior) was to recalculate the "bottom" always. This was not
  taken care of in SetTextRect() (needs to override the passed bottom).
* The insets are already tracked in fLayoutData, use this in
  _UpdateScrollBars() to calculate the correct data width/height (an
  improvement over the BeOS behavior it seems).
* Try to minimize the need to call _Refresh(), which reduces flickering a whole
  lot.
* Fix several instances where fTextRect was recalculated based on Bounds() and
  the saved insets, where it was broken when the BTextView was scrolled.

Fixes #2784.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28151 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-15 21:07:37 +00:00
Oliver Tappe 39fbf5509b bonefish + zooey:
* Fixed a general problem with respect to overriding of the reserved
  virtual function slots: instead of statically invoking the method
  that corresponds to the reserved slot on the class that contains the
  slot, we now invoke the virtual Perform() method. Perform() then dispatches 
  the method invocation to the "proper" class, i.e. the highest class in the 
  hierarchy that  actually implements the requested method.
  This fixes a crash in apps that use liblayout's MSlider class and
  should fix one or other spurious bug with old apps or libraries, too.
* added new header folder 'binary_compatibility' that contains files that
  define the method codes and data structures required by Perform()
* looked for and implemented all used reserved virtual slot functions to
  invoke Perform() where necessary or to pass on the method call statically
  (for slots that were already maintained by Be)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-15 09:29:06 +00:00
Stephan Aßmus 4df6a8c3fb * As with other controls, for BeOS compatibly behavior, don't shrink
a BTextView via GetPreferredSize() if it is large enough. (Have not
  confirmed this is necessary... gut feeling.)
* Calculate a minimum line height even if the BTextView is empty yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27828 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-01 16:12:21 +00:00
Rene Gollent 90b7764dc3 Move WidthBuffer and TextGapBuffer into BPrivate and use them from there in BPoseView and BTextView. This (correctly) fixes the previous gcc4 build issues.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27675 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-21 20:47:16 +00:00
Stephan Aßmus 8864334702 * First steps towards making BTextView behave well within the layout management.
* The class calculates a minimum width now, which is based on the line height,
  this may also fix the bug with the small text inputs in the Pe Find window.
* Added TODOs about implementing GetHeightForWidth(), which may be a good idea
  when a BTextView is used as non-editable informative text in an interface,
  and one wants to make sure that the entire text is shown.
* Replaced the call to _Refresh() in Draw(), which recalculates all the line
  breaks for no reason with _DrawLines() again. The TODO mentioned that text
  will be drawn without drawing the background first, but maybe this is a
  relict from times where Draw() was invoked directly? At least I cannot see
  any negative consequences, and this should be much more efficient.
  (Other than that, this patch should hopefully have no potential negative
  side effects...<crosses fingers>)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27670 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-21 15:36:44 +00:00
Stephan Aßmus 8ab8c63d26 Moved BTextView::UndoBuffer derivatives into the BTextView class as well,
hopefully fixing the GCC4 build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27660 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-21 08:42:02 +00:00
Stephan Aßmus a682d9819f Quite a cleanup action to avoid polluting the global namespace with private
BTextView classes:

* Declared the directly used BTextView helper classes as private BTextView
  classes and changed all affected files.
* Realized that Tracker's BPoseView was (accidentally?) using what used to
  be _BWidthBuffer_. It had declared it's own class with the same name and
  same members/size in headers/private/tracker/TextViewSupport.h, but the
  implementation was nowhere to be found. I can only explain this that
  the BTextView implementation was then actually linked and used. But the big
  problem was that it was used without locking (unlike in BTextView)! When
  many Tracker windows opened during system startup or later and they happened
  to each request characters not yet in the cache, I imagine things could have
  gone bad and corrupted memory. Anyways, since I can see the usefulness of
  the cache, BPoseView uses BTextView::WidthBuffer on purpose now. And I moved
  the locking inside BTextView::WidthBuffer::StringWidth().
* Adjusted InterfaceDefs.cpp accordingly.
* TODO: Move subsequent classes into BTextView namespace as well, ie derived
  classes that BTextView doesn't directly know about. All stuff in src/kits/
   inteface/textview_support/
* Added preliminary and not yet implemented layout friendly BTextView
  constructors.
* I will try to handle the insets imposed by BTextView::fTextRect a bit
  differently when used inside the new layout management framework. For this,
  I added BTextView::SetInsets() and GetInsets(). SetInsets() doesn't do
  anything yet.

So far, everything seems to work still... ;-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27654 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-20 15:08:40 +00:00
Stefano Ceccherini fc16834e55 buffer is an array, so use delete[]. CID 130
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27439 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-12 07:34:37 +00:00
Stephan Aßmus 2a739c3115 Insignificant cleanup and comment typo fixes...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26420 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 13:17:20 +00:00
Jérôme Duval 4c1f76cbf4 Patch from Shinta: don't send B_INPUT_METHOD_STOPPED when IM is not active
fix bug #2220


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25518 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-15 23:37:34 +00:00
Stephan Aßmus bd78dbf81c Fixed bad text antialiasing against the colored background used for input
methods. Fixes #2209.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25349 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 15:38:09 +00:00
Stephan Aßmus a01db67de0 Do not scroll to the bottom of the current line if that means the top of the
line will be scrolled out of view. (Fixes text jumping one pixel up/down in
Vision with each new char you type into Visions text box.)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24136 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-26 11:48:36 +00:00
Stephan Aßmus 46ea5b1e49 Further improvements to auto scrolling and text rect + container view resizing:
* Renaming things in Tracker list mode no longer magically grows the text view.
* ScrollToOffset() is not supposed to depend on the existence of any scroll
  bars, in R5 text views simply scroll to where they need to. This fixes
  renaming things in Tracker when hitting the window bounds (text widget stops
  growing and starts to autoscroll) and also the Text tool in WonderBrush.
* _ScrollToOffset() is therefor no longer needed.
* The insets of the text rect are not so interesting as the original width.
  In auto resizing mode, the original width is important when there is no
  container view. In this setup, the text rect auto resizing is mainly needed
  for auto scrolling, but it should never shrink below the original size.
* Further improved auto scrolling for right aligned and center aligned text
  views, it works like R5 now. Also take the line height into account when
  checking for the bounds bottom. Removed extra spacing for vertical
  scrolling.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24130 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-25 23:34:23 +00:00