#
b2720cd3 |
|
30-Jan-2024 |
Augustin Cavalier <waddlesplash@gmail.com> |
BScrollView: Don't adjust other dimension if it's negative. Some non-layout applications start out with negative view dimensions. Making them positive too early on can break the view's appearance, it seems. Fixes #18690.
|
#
fbcc7b27 |
|
31-May-2023 |
Augustin Cavalier <waddlesplash@gmail.com> |
BScrollView: Ajust minimum dimensions as little as necessary. If the dimensions are already larger than needed, don't add to them. Fixes Terminal and other non-layout applications' display following the prior change.
|
#
269de6ac |
|
31-May-2023 |
Augustin Cavalier <waddlesplash@gmail.com> |
BScrollView: Take both minimum dimensions of scrollbars into account. Fixes #5678.
|
#
a06b52be |
|
28-Jul-2020 |
Augustin Cavalier <waddlesplash@gmail.com> |
BScrollView: Revert to earlier document-window adjust behavior. We need a different constant or mechanism to get the document window border size, it appears, or a static method to get a scroll bar's preferred size. Should fix #16422.
|
#
b022a5e2 |
|
05-Jul-2020 |
Augustin Cavalier <waddlesplash@gmail.com> |
BScrollView: Ask the BScrollBars what their preferred sizes are. This replaces the use of the hard-coded scroll bar size constants and instead asks the scrollbars for their preferred sizes directly. Right now, this is a giant no-op since BScrollBar just returns the same hard-coded size when asked. The next commit will, however, change that.
|
#
e5d0c909 |
|
01-Feb-2019 |
Augustin Cavalier <waddlesplash@gmail.com> |
BView: Add a B_SCROLL_VIEW_AWARE flag. * This indicates the view will manage whatever scrollbars are targeted to it. * Use _B_RESERVED7_ for this. It's been RESERVED since BeOS R5 (I guess it was probably something on some older BeOS version?) and we don't really care about BeOS R4 ABI compatibility, so that should be fine. * Update BScrollView to not touch BScrollBar range/proportion when the target view has this set. * Update BListView to set this flag, always. Fixes #14871. Change-Id: I17027f3b63ef28da1e735c5393593496c415dce3 Reviewed-on: https://review.haiku-os.org/c/998 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
4854630d |
|
27-Jan-2019 |
Augustin Cavalier <waddlesplash@gmail.com> |
BScrollView: Resize scrollbars dynamically based on target's B_SUPPORTS_LAYOUT... ...instead of the BScrollView itself's layout flag. Thanks to Adrien and Kacper for discussion on the mailing list.
|
#
5b0e5c0a |
|
22-Jan-2019 |
Augustin Cavalier <waddlesplash@gmail.com> |
BScrollView: Automatically update the scrollbar proportions in layout mode. Since we know what size the target view is / wants to be, we can automatically set the range, steps, and proportion trivially. In non-layout mode, we retain the old behavior. Applications or views that need custom scrolling behavior almost certainly will be using BScrollBars directly and not this, so this should not be "wasted computation" in pretty much any case. Greatly improves the appearance and UX of the default case of a layouted view inside a BScrollView. Change-Id: Ia6ff6ee14df96799c579e15d274fd4c849675577 Reviewed-on: https://review.haiku-os.org/c/892 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
bfbb9655 |
|
10-Sep-2017 |
Augustin Cavalier <waddlesplash@gmail.com> |
Interface Kit: Remove more non-BControlLook code.
|
#
7a96554c |
|
09-Dec-2015 |
looncraz <looncraz@looncraz.net> |
kits/interface: Convert to using Set*UIColor. Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com> Patches 0003-0017 from looncraz, unmodified.
|
#
93244a65 |
|
14-Sep-2015 |
Jessica Hamilton <jessica.l.hamilton@gmail.com> |
BScrollView: _ComputeFrame(BRect,...) used incorrect insets. Previously, the BRect would be expanded by the call to InsetBy(), but the replacement _InsetBorders() forgot to take this into account. Fixes #12380.
|
#
fd79684a |
|
09-Sep-2015 |
Axel Dörfler <axeld@pinc-software.de> |
BScrollView::SetBorders() added to disable borders. * You can specify which borders will be drawn using the BControlLook::B_TOP_BORDER, ... constants. * Adapted Mail to no longer need the SetInsets() hack.
|
#
1bf53ffc |
|
12-Oct-2014 |
Adrien Destugues <pulkomandy@gmail.com> |
Remove leftover printf and fix build.
|
#
bdb4ae32 |
|
12-Oct-2014 |
Adrien Destugues <pulkomandy@gmail.com> |
Fix unarchiving of BScrollView with layout * We archive views using "managed" archives, and the children are not attached in the BView(BMessage*) constructor, but later. So it's not possible to find the target and scrollbars in the constructor of BScrollView. * Make BScrollView override AllUnarchived and find the target and scrollbars again there. The code is slightly different as there is no guarantee that the first child will be the target in that case. The existing code in the constructor is preserved for non-managed archives.
|
#
1f424632 |
|
11-Jun-2014 |
John Scipione <jscipione@gmail.com> |
Style fixes to IK, focus on docs
|
#
8adaa6c5 |
|
26-Feb-2012 |
Jerome Duval <jerome.duval@gmail.com> |
interface kit: added compatibility symbols for GCC4 * InvalidateLayout method for BBox, BButton, BCheckBox, BMenuField, BScrollView, BSlider, BStringView, BTextControl.
|
#
f6c8d242 |
|
19-Dec-2011 |
Rene Gollent <anevilyak@gmail.com> |
Use the correct perform invocation for these functions.
|
#
466f2b8f |
|
18-Dec-2011 |
Rene Gollent <anevilyak@gmail.com> |
Add compatibility symbols for removed LayoutChanged() calls.
|
#
61eb1f1d |
|
22-Oct-2011 |
Alex Wilson <yourpalal2@gmail.com> |
Replace remaining InvalidateLayout()'s with LayoutInvalidated(). Also do a bit of cleanup/move methods around.
|
#
eee4243d |
|
20-Oct-2011 |
Alex Wilson <yourpalal2@gmail.com> |
De-virtualize BView::InvalidateLayout() and introduce LayoutInvalidated() hook, like BLayout.
|
#
4ce4d86b |
|
22-Nov-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
The scrollbars need to be constructed before calling 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
|
#
89208c77 |
|
27-Aug-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Finished unifying the Interface Kit headers: * 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
|
#
262c5f65 |
|
20-Jun-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Small cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31135 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0a7367b7 |
|
31-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* B_SUPPORTS_LAYOUT is already added by the BView consturctor. * 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
|
#
8d8da849 |
|
31-Mar-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added missing MaxSize() implementation. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29819 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5d67bb7c |
|
23-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Use BControlLook new BScrollView drawing method. Should have been part of last commit... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29662 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2f86ba45 |
|
15-Feb-2009 |
Stephan Aßmus <superstippi@gmx.de> |
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
|
#
5fd5fe56 |
|
31-Jan-2009 |
Karsten Heimrich <host.haiku@gmx.de> |
* refactor _Init and DoLayout to share some code * 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
|
#
125ec815 |
|
31-Oct-2008 |
Stephan Aßmus <superstippi@gmx.de> |
r28258 (adapting BScrollView to be usable in layout management) exposed a 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
|
#
9e163a7a |
|
21-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Made BScrollView work when using it with the layout system. * 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
|
#
39fbf550 |
|
15-Oct-2008 |
Oliver Tappe <zooey@hirschkaefer.de> |
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
|
#
9ecf9d1c |
|
26-Aug-2006 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merge from layout management branch. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18649 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
27a00cdd |
|
29-Dec-2005 |
Stephan Aßmus <superstippi@gmx.de> |
don't resize scrollbars if the window hasn't even document look git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15727 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
dde10e45 |
|
06-Dec-2005 |
Stephan Aßmus <superstippi@gmx.de> |
fixes for various controls to remove or show focus indication when the window active status changes git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15362 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2e6a5805 |
|
05-Jul-2005 |
Stephan Aßmus <superstippi@gmx.de> |
MenuField layouts the menu bar better with respect to fDivider, it aligns better with other controls. fDivider in TextControl is an integer number now, small fix and small cleanup in Menu, Window::InitData takes an optional BBitmap token to construct an offscreen window, fixed PrivateScreen IndexForColor, View prevents being located at fractional coordinates as in R5, BBitmap unlocks its offscreen window since it is never Show()n and needs manual unlocking, fixed Slider offscreen window mode and improved triange thumb drawing, ScrollView would not crash when passing a NULL target just for kicks, the private MenuBar class now implements Draw to draw itself a little differently inside the BMenuField (dark right and bottom side) - though how it currently sets the clipping region prevents the text controls to draw in Playground, needs fixing git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13450 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1ae95ac8 |
|
15-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Mixed up argument order - dunno why this didn't have any effect on R5, 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
|
#
8c15126a |
|
15-May-2004 |
DarkWyrm <darkwyrm@gmail.com> |
Replaced header with standard one 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
|
#
75c3c8f5 |
|
20-Feb-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed SetTarget() - BTW is even correctly implemented in R5. Beautified SetBorderHighlighting(). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6669 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
52bb9b2d |
|
20-Feb-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Now takes B_DOCUMENT_WINDOW_LOOK properly into account. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6667 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ecae3149 |
|
20-Feb-2004 |
Axel Dörfler <axeld@pinc-software.de> |
We are now updating our drawings properly on resize. 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
|
#
26a96b16 |
|
20-Feb-2004 |
Axel Dörfler <axeld@pinc-software.de> |
New private static method BorderSize(). 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
|
#
122e979e |
|
20-Feb-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed ModFlags() to ModifyFlags() and made it static. 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
|
#
5078b0fc |
|
19-Feb-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Removed BScrollView::InitObject(); it's not exported by libbe.so. 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
|
#
8b35053e |
|
18-Feb-2004 |
Axel Dörfler <axeld@pinc-software.de> |
The scroll bars are now actually placed at the correct location. 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
|
#
16fe6dd9 |
|
18-Feb-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Added almost empty BScrollView implementation. It will actually create 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
|
#
93244a65e6b96b37b4fe39e7e1d512b91c007721 |
|
14-Sep-2015 |
Jessica Hamilton <jessica.l.hamilton@gmail.com> |
BScrollView: _ComputeFrame(BRect,...) used incorrect insets. Previously, the BRect would be expanded by the call to InsetBy(), but the replacement _InsetBorders() forgot to take this into account. Fixes #12380.
|
#
fd79684a5f6650a4c479e90da5b884a7923eb152 |
|
09-Sep-2015 |
Axel Dörfler <axeld@pinc-software.de> |
BScrollView::SetBorders() added to disable borders. * You can specify which borders will be drawn using the BControlLook::B_TOP_BORDER, ... constants. * Adapted Mail to no longer need the SetInsets() hack.
|
#
1bf53ffcfcb408417219ed47a5f62b4a97c9a5c9 |
|
12-Oct-2014 |
Adrien Destugues <pulkomandy@gmail.com> |
Remove leftover printf and fix build.
|
#
bdb4ae32fd5a6282583f17e35dcb382fc8c994b8 |
|
12-Oct-2014 |
Adrien Destugues <pulkomandy@gmail.com> |
Fix unarchiving of BScrollView with layout * We archive views using "managed" archives, and the children are not attached in the BView(BMessage*) constructor, but later. So it's not possible to find the target and scrollbars in the constructor of BScrollView. * Make BScrollView override AllUnarchived and find the target and scrollbars again there. The code is slightly different as there is no guarantee that the first child will be the target in that case. The existing code in the constructor is preserved for non-managed archives.
|
#
1f424632be5dcad5b81a23080eb205ab6471cd7b |
|
11-Jun-2014 |
John Scipione <jscipione@gmail.com> |
Style fixes to IK, focus on docs
|
#
8adaa6c54487cab1d200592bb2d5aca44ba2039b |
|
26-Feb-2012 |
Jerome Duval <jerome.duval@gmail.com> |
interface kit: added compatibility symbols for GCC4 * InvalidateLayout method for BBox, BButton, BCheckBox, BMenuField, BScrollView, BSlider, BStringView, BTextControl.
|
#
f6c8d242946d814ca47bca8eb49219979f009686 |
|
19-Dec-2011 |
Rene Gollent <anevilyak@gmail.com> |
Use the correct perform invocation for these functions.
|
#
466f2b8f997acaecf0397f9f1c8b36a2b1fc5a4e |
|
18-Dec-2011 |
Rene Gollent <anevilyak@gmail.com> |
Add compatibility symbols for removed LayoutChanged() calls.
|
#
61eb1f1d19eed26b6138b0701612e8eb31bb1d86 |
|
22-Oct-2011 |
Alex Wilson <yourpalal2@gmail.com> |
Replace remaining InvalidateLayout()'s with LayoutInvalidated(). Also do a bit of cleanup/move methods around.
|
#
eee4243d35225a35d0964ebebe94490eaca14261 |
|
20-Oct-2011 |
Alex Wilson <yourpalal2@gmail.com> |
De-virtualize BView::InvalidateLayout() and introduce LayoutInvalidated() hook, like BLayout.
|
#
4ce4d86bc9e79ef54b360baee5e17ead5334e255 |
|
22-Nov-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
The scrollbars need to be constructed before calling 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
|
#
89208c77f10235d43fda0c7b3fd6751db02cc12c |
|
27-Aug-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Finished unifying the Interface Kit headers: * 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
|
#
262c5f651e687477c0d50fc86193c03ea94299f2 |
|
20-Jun-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Small cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31135 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0a7367b70bcc941d8fb8e20c0058c44add9c9628 |
|
31-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* B_SUPPORTS_LAYOUT is already added by the BView consturctor. * 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
|
#
8d8da849c8c1a4986566107da6e5e3f4ae14ad35 |
|
31-Mar-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added missing MaxSize() implementation. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29819 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5d67bb7cfa0f182fdbfddbab828b12e22a8a7539 |
|
23-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Use BControlLook new BScrollView drawing method. Should have been part of last commit... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29662 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2f86ba45579bdc9648b232175f87edc62ab71b54 |
|
15-Feb-2009 |
Stephan Aßmus <superstippi@gmx.de> |
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
|
#
5fd5fe56bb933196362615bd00056d5bfad42ffe |
|
31-Jan-2009 |
Karsten Heimrich <host.haiku@gmx.de> |
* refactor _Init and DoLayout to share some code * 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
|
#
125ec815128d361030bd4a7052dd8c71986e8e2f |
|
31-Oct-2008 |
Stephan Aßmus <superstippi@gmx.de> |
r28258 (adapting BScrollView to be usable in layout management) exposed a 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
|
#
9e163a7a93c4237b659bf8411513a48351ee60d3 |
|
21-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Made BScrollView work when using it with the layout system. * 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
|
#
39fbf5509b8740d9883b61649027478dc8a3ead8 |
|
15-Oct-2008 |
Oliver Tappe <zooey@hirschkaefer.de> |
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
|
#
9ecf9d1c1d4888d341a6eac72112c72d1ae3a4cb |
|
26-Aug-2006 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merge from layout management branch. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18649 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
27a00cdd92369cae6c611f9dd948a3f4a2575c64 |
|
29-Dec-2005 |
Stephan Aßmus <superstippi@gmx.de> |
don't resize scrollbars if the window hasn't even document look git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15727 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
dde10e451942993f3d48b9bccf2b777815efea79 |
|
06-Dec-2005 |
Stephan Aßmus <superstippi@gmx.de> |
fixes for various controls to remove or show focus indication when the window active status changes git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15362 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2e6a5805ba8db3b072d81257cc44f966def5fd37 |
|
05-Jul-2005 |
Stephan Aßmus <superstippi@gmx.de> |
MenuField layouts the menu bar better with respect to fDivider, it aligns better with other controls. fDivider in TextControl is an integer number now, small fix and small cleanup in Menu, Window::InitData takes an optional BBitmap token to construct an offscreen window, fixed PrivateScreen IndexForColor, View prevents being located at fractional coordinates as in R5, BBitmap unlocks its offscreen window since it is never Show()n and needs manual unlocking, fixed Slider offscreen window mode and improved triange thumb drawing, ScrollView would not crash when passing a NULL target just for kicks, the private MenuBar class now implements Draw to draw itself a little differently inside the BMenuField (dark right and bottom side) - though how it currently sets the clipping region prevents the text controls to draw in Playground, needs fixing git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13450 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1ae95ac8724efaf5fce9058e4d2f1c16a303ffea |
|
15-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Mixed up argument order - dunno why this didn't have any effect on R5, 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
|
#
8c15126aec6b80f50b38b665b40c167dcba5e28a |
|
15-May-2004 |
DarkWyrm <darkwyrm@gmail.com> |
Replaced header with standard one 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
|
#
75c3c8f50d388b53df93ced41c79f976bc7fb9d6 |
|
20-Feb-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed SetTarget() - BTW is even correctly implemented in R5. Beautified SetBorderHighlighting(). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6669 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
52bb9b2d33bcccaa4898d85d2b2cc551e39a8c56 |
|
20-Feb-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Now takes B_DOCUMENT_WINDOW_LOOK properly into account. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6667 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ecae314976edcc69a2048668092251c97678d67c |
|
20-Feb-2004 |
Axel Dörfler <axeld@pinc-software.de> |
We are now updating our drawings properly on resize. 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
|
#
26a96b16746f8d3d9d8517aac708905fc19a0387 |
|
20-Feb-2004 |
Axel Dörfler <axeld@pinc-software.de> |
New private static method BorderSize(). 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
|
#
122e979e2d63dd20a8fd8946770d6eed96faedfc |
|
20-Feb-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed ModFlags() to ModifyFlags() and made it static. 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
|
#
5078b0fcccba89b08da420c8f166712ece348b8f |
|
19-Feb-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Removed BScrollView::InitObject(); it's not exported by libbe.so. 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
|
#
8b35053e1aab60efb3e125f756c05ef6943f7e68 |
|
18-Feb-2004 |
Axel Dörfler <axeld@pinc-software.de> |
The scroll bars are now actually placed at the correct location. 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
|
#
16fe6dd90f60f399716579085684a1626701c3f7 |
|
18-Feb-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Added almost empty BScrollView implementation. It will actually create 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
|