BView::TargetedByScrollView(), otherwise the target view couldn't
access them in that method.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34186 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed copyrights (puncuation and capitalization, removed authors from
headers)
* Updated indentation style
* Unified pointer/reference style
* Re-ordered some methods for better grouping where it could be done
(abd adopted source accordingly)
* Small coding style fixes here and there
No functional change intended.
+alphabranch
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32745 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed MaxSize() and PreferredSize() to use the correct explicitly set size.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29847 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
* DoLayout did not work as expected, after the call
the scrollbars would have an 1px offset inside the target
* the target needs to be resized while setting a new border, otherwise
it would overlap the border and give some drawing artefacts
- I'm still unsure if the behavior change introduced with the layout stuff is nice
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29103 a95241bf-73f2-0310-859d-f6bbb57e9c96
problem in TextSearch. After the change, the scrollbar and child view layout
would be messed up there. The reason is that TextSearch calls
scrollview->ResizeToPreferred() prior to adding it to the window. In this
situation, the child views (scrollbars, target view) do not follow the parent
view. Before r28258, ResizeToPreferred() would not change the size of the
view (calling it in TextSearch is stupid anyways, since it is layouted later
in the code). I have thought about how to best fix this. I know 100% that there
is code out there that will mess with scrollbar layout. So it wouldn't be a
good option to refactor the layout out of BScrollView::DoLayout() and calling
that method from AttachedToWindow(), although that seems like the cleanest
option. Instead, I opted to simply reject resizing in ResizeToPreferred()
when the scroll view is not yet attached to a window. What do others think?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28409 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added a layout friendly constructor - it's not so nice to use, though, since
the original one already doesn't get a BRect (we just don't need the
resizing mode, and have to set the B_SUPPORTS_LAYOUT flag).
* Refactored size/frame computation a bit.
* Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28258 a95241bf-73f2-0310-859d-f6bbb57e9c96
* 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
but the frame wasn't visible in Haiku, and rightly so :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13166 a95241bf-73f2-0310-859d-f6bbb57e9c96
Investigated Axel's TODO concerning SetBorderHighlighted and converted the #if 0 to a regular C-style comment.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7590 a95241bf-73f2-0310-859d-f6bbb57e9c96
ModifyFlags() now sets B_FRAME_EVENTS if B_FULL_UPDATE_ON_RESIZE was not set.
Fixed a small bug in SetBorder().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6665 a95241bf-73f2-0310-859d-f6bbb57e9c96
Correctly implemented SetBorderHighlighted(), but differently from BeBook
description (see comment).
Unlike the R5 version, correctly implemented SetBorder().
Draw() now takes SetBorderHighlighted() into account.
The BScrollView(BMessage *) constructor now searches its children for
the scroll bars, no matter in what order they are.
Corrected a drawing glitch that was also exposed in the R5 version (the
scroll bars are misplaced for anything else but B_NO_BORDER).
Renamed resizeMask to the more usual resizingMode.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6664 a95241bf-73f2-0310-859d-f6bbb57e9c96
Implemented SetTarget().
Implemented BArchivable methods, R5 compatible.
The constructor still crashes when the provided target is NULL (as R5),
but the rest now accepts it (to make it reliable against SetTarget() and
shallow archiving).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6660 a95241bf-73f2-0310-859d-f6bbb57e9c96
Now uses ModFlags() instead of direct code in the constructor.
Moved CalcFrame() and ModFlags() a bit more to the top.
Fixed initial scroll bar values (name and maximum value now match
the R5 implementation).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6652 a95241bf-73f2-0310-859d-f6bbb57e9c96
The Draw() method now draws all supported borders, but no highlighting yet.
CalcFrame() now seems to work correctly.
Fixed warnings due to missing return codes from non-implemented methods.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6646 a95241bf-73f2-0310-859d-f6bbb57e9c96
the scroll bars, but it won't do much more yet; no border, no highlighting,
no ...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6644 a95241bf-73f2-0310-859d-f6bbb57e9c96