History log of /haiku/src/kits/interface/Slider.cpp
Revision Date Author Comments
# 6a8276c4 22-Mar-2016 John Scipione <jscipione@gmail.com>

BSlider: Remove non be_control_look drawing code


# 8e7b383a 22-Mar-2016 John Scipione <jscipione@gmail.com>

Slider: Replace min_c and max_c with std::min and std::max


# 8be1a5f0 22-Mar-2016 John Scipione <jscipione@gmail.com>

Slider: Style fixes

Pointer style
Newlines
Indentation
Compare against NULL or 0 explicitly
use single floating point precision for float literals (i.e. use 0.0f)


# 8b902d94 22-Mar-2016 John Scipione <jscipione@gmail.com>

IK: Use panel text color for select control labels

NOTE: This should have no effect on the colors of these labels unless
you have changed the panel text color and control text colors to be
different. Both are black by default.

In the case of the menu field, spinner, check box, radio button,
slider, and text control labels we want to draw these labels using
the panel text color instead of the control text color because they
are drawn on top of the panel color. (the menu field label color was
changed in a previous commit in this push).

In all cases except the menu field the label color is specified by
temporarily unsetting the B_IS_CONTROL flag while drawing the label.
All use control look to draw the label.

The control text color is meant to be used for text INSIDE the control,
not the label text that accompanies the control -- at least that's the
way I understand it.


# 9909ce41 15-Jan-2016 looncraz <looncraz@looncraz.net>

BSlider - Don't Use Control Mark Color

This returns BSlider to its original appearance.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

Fixes #12578.


# 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.


# e25776bd 07-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

Whitespace cleanup only.


# be436742 21-Dec-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

BControl subclasses: Override SetIcon()

... and implement Perform() action for potential later use.


# 0a7975bf 04-Feb-2013 Axel Dörfler <axeld@pinc-software.de>

BSlider::SetPosition() now calls BSlider's SetValue().

* Before it directly called the BControl version which doesn't really
make any sense, and prevented visual updates.


# 57c5b09e 05-Aug-2012 Ryan Leavengood <leavengood@gmail.com>

Use be_control_look != NULL everywhere in the Interface Kit.

Should not be a functional change. It is not in the Haiku Coding Guidelines but
I feel like 'if (object != NULL)' is generally preferred to 'if (object)', plus
in this case of be_control_look that is the more common style.


# 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.


# 7327891c 25-Feb-2012 Jerome Duval <jerome.duval@gmail.com>

interface kit: added compatibility symbols for BeAE for #8354

* _ZN5BMenu16InvalidateLayoutEb for GCC4
* InvalidateLayout__7BSliderb for GCC2


# 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.


# d316dc57 14-Jul-2011 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Remove over-optimization trying not to redraw the background under slider's thumbs.

This gets sliders with custom, non-rectangle thumbs, like the one in APlayer or the example in the BeBook, working properly.
I hope it doesn't break anything - it doesn't seem to but I may have overlooked some pixels.

Fixes #7817.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42425 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f3997b74 03-Jun-2011 Stephan Aßmus <superstippi@gmx.de>

Applied patch by Pete Goodeve (with small coding style corrections)
which fixes vertical BSliders. (ticket #7548) Thanks a bunch!
+alpha


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41881 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e6cb8eb4 05-Nov-2010 Stephan Aßmus <superstippi@gmx.de>

* Reuse the check for changed location which decides whether
to Invoke() in MouseUp() in the code path for keyboard control.
Should fix ticket #6792, but I have not actually tested it.
* Don't post notification values in KeyDown() when the value did
not change because it was constrained between min and max values.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39323 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c944d11f 13-Apr-2010 Stephan Aßmus <superstippi@gmx.de>

bonefish+stippi:
All views which cache layout information need to call ResetLayoutInvalidation()
when they have updated the cached information. Otherwise calling
InvalidateLayout() once they are already attached to a layout may not have any
effect.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36217 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 03e6434e 10-Apr-2010 Jérôme Duval <korli@users.berlios.de>

* fixes a BSlider issue noticed by Matt on the mailing list:
Invoke() wasn't called the first time you grab a slider and slide it all the way to the left.
Thanks for the test case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36145 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 731480e8 08-Feb-2010 Rene Gollent <anevilyak@gmail.com>

Call UpdateTextChanged() in BSlider::AttachedToWindow() instead of updating the text manually. Otherwise when a subclass overrode UpdateText and the value hadn't yet been changed, the text would never be updated correctly which resulted in several problems in the VirtualMemory preflet when localizations used a longer string for "Requested swap file size:".



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35435 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5993482b 25-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Fixed LowColor() of "background" view. Seems this was always wrong, but now we
are running without offscreen view, and this caused dark slider background,
since LowColor() was unintentionally B_TRANSPARENT_COLOR. Fixes #5323.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35284 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4cdd68e7 22-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

* Don't draw/clear the background if the parent view draws on children.
* Make use of the BControlLook method to draw labels.

Both fix ticket #4875.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35261 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4914357d 07-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Automatic trailing whitespace removal.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33929 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0210dcd7 18-Sep-2009 Stephan Aßmus <superstippi@gmx.de>

Small cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33165 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cd7f1893 09-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* The slider position was actually computed incorrectly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30072 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b8473812 09-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Making it private doesn't help unless you have a const BSlider. Therefore,
removed it from the public namespace, and made it only visible when linking.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30071 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d9479a69 09-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Added const version of GetLimits() (the non-const version is still around
for binary compatibility).
* Always round the bar thickness, or we get drawing artefacts.
* Cleaned up the header following our coding style.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30070 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


# 6eb09230 01-Feb-2009 Michael Lotz <mmlr@mlotz.ch>

* Resolve further warnings on GCC4.
* Enable -Werror on GCC4 builds as well (limited to the same selected targets).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29118 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cee0c5c7 21-Nov-2008 Karsten Heimrich <host.haiku@gmx.de>

* use rgba32 bitmap to get rid of the anoying slider
background while using a different panel background color



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28710 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


# 65785bf7 13-Sep-2008 Stephan Aßmus <superstippi@gmx.de>

* Don't do anything in SetOrientation() if orientation is the same as the
current one.
* When calculating the thumb and bar frames, handle the case when the object
doesn't have a label, but does have an update text.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27493 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 54badb1f 19-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

mmlr + stippi:
Fixed more controls to handle a B_TRANSPARENT_COLOR as view coloe of the
parent view. Some controls would not initialize their LowColor() at all
if they were the only control in a window.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26515 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 85db8e83 18-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

In my BSlider changes, I changed the behavior of GetPreferredSize(), which
previously did never shrink the slider horizontally. This broke a couple
apps, so I added it back, although I don't quite agree that this is the correct
behavior. Apps using the new layout system are not affected though, so I
guess it is alright. Should fix #2530, although I didn't test it yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26502 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f779adc6 17-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

mmlr + stippi:
In my last row of changes I removed a call to ResizeToPreferred()
in SetLimitLabels(). It is confirmed that the BeOS implementation
is doing it and some applications rely on it, like our own Mouse preflet.
This closes #2526.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26479 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3cd9fb75 16-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* Calculate correct invalidation rect in SetBarThickness()
* Improved ThumbFrame() for B_TRIANGLE_THUMB, too high horizontal slider
had the thumb along the bottom and not on the bar.
* Improved triangel thumb drawing, the vertical drawing did look so good
yet, I also put the triangle on the right side, it looked weird on the
left and it reverted the hashmark meaning too.
* Small code cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26458 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ae79415 16-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* Changed the signature of UpdateText() to return a "const char*" (char*
really makes no sense if the pointer belongs to the derived class and
only confuses). Note this change does not affect binary compatibility.
* Introduced a new MaxUpdateTextWidth() virtual method which is really
necessary to handle the update text correctly in the layout.
* Introduced a new UpdateTextChanged() method which can be called to
notify the control of a changed update text. Internally, SetValue()
also uses it.
* Handle the width or height of the UpdateText() correctly in the layout.
For horizontal layout, the width was forgotten to be included in
GetPreferredSize(), for vertical layout, it was completely broken before.
* Handle invalidation correctly when the UpdateText() changes.
* Remove the arbitrary insets for labels from the border the control. This
makes it easier to align the control's labels with other controls.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26447 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8995071f 16-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

The vertical slider is now at least functionally working, although the rendering
code needs some love.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26444 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f898f8af 16-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

If the user specified a hashmark location other than B_HASH_MARKS_NONE, draw
at least two hash marks, even if the hash mark count has never been configured.
Also means the minimum hashmark count is 2 instead of 1 as before. I think this
behavior is more what one would expect, I turned on hashmarks and wondered
why nothing happened until I realized I needed to configure the count as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26443 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 423b1244 16-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

First round of BSlider fixes to be more layout friendly:
* Improve the minimum size calculation and cache it.
* Invalidate the layout on various property changes that require it.

Vertical BSliders are very broken... that's up next.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26441 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cdcfa594 16-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* Added layout friendly constructor
* Use constructor lists for initializing members
* Simplified initial SetBarColor()
* Update the offscreen view with ViewColor() and LowColor(), someone might
have changed it after AttachedToWindow() was called.
* Cleanup here and there


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26440 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7b94dab1 08-Jan-2008 Stephan Aßmus <superstippi@gmx.de>

* fix some invalidation problems with the triangle thumb which are caused by
non-traight lines extending past the thumb frame because of anti-aliasing
effects


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23286 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 01c2f44e 08-Jan-2008 Stephan Aßmus <superstippi@gmx.de>

* fix keyboard handling to trigger the correct invokation message
* add support for B_HOME and B_END key (jump to min/max value)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23285 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fb29f5b0 04-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

Changes to let updates happen less frequently:
* _ContrainPoint() was broken as it could never change the point it was supposed
to contrain.
* MouseDown() no longer sends a notification message automatically (only if it
changed something)
* MouseMoved() and synchronous MouseDown() will now only send modification messages
if something actually changed (not for every mouse update).
* After key presses, the invokation message is only sent when the value changed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19697 a95241bf-73f2-0310-859d-f6bbb57e9c96


# de0ca38e 12-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17817 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 18745cb6 02-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

BSlider didn't like if minimum and maximum limit were the same. Now the slider is
drawn correctly in that case, and the thumb stays at the start of the slider
(minimal position). This fixes bug #193.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17705 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 687e9253 22-May-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Removed private functions _long_to_color_() and _color_to_long_(), there
shouldnt be any application that uses them, as they were not in headers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17552 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 11d7eceb 21-Apr-2006 Jérôme Duval <korli@users.berlios.de>

fixed some Archive() following stippi's path


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17188 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f90a951e 19-Apr-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

The previous commit was obviously incorrect, as the window wasn't updated anymore.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17170 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 422ce5d4 18-Apr-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

the synchronous version of BSlider::MouseDown() now discards old message events

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17169 a95241bf-73f2-0310-859d-f6bbb57e9c96


# efdd9586 17-Apr-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

BSlider locked the looper and never unlocked it anymore. Was the cause of bug 406

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17154 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 632ba028 17-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

SetValue() is now called after the object has been fully initialized.
This fixes bug #495.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17149 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e762848a 16-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* Now draws the UpdateText() label as well (was obviously forgotten before).
To reduce the number of calls to UpdateText(), the value returned is now
buffered. This fixes bug #443.
* SetValue() now calls UpdateText() and also invalidates the region where
that label is drawn.
* In asynchronous mode, B_NO_POINTER_HISTORY is set now for tracking.
* Increased minimum snooze time in synchronous mode.
* Minor cleanup, renamed fMinLimitStr to fMinLimitLabel, etc.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17146 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 805cb76e 05-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* Added several R4.5 compatibility exports - they are now only compiled when GCC
2.95 is used.
* Added empty _klock_node_() syscall for compatibility - all R5 syscalls are now
also only compiled with GCC 2.95.
* This should fix bug #403.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17011 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b1da1ce 04-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

DrawSlider() now locks the looper - this should fix bug #396.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17002 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 224a6b04 03-Apr-2006 Jérôme Duval <korli@users.berlios.de>

code hardening, should help on bug #385


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16981 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5eae27a4 19-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Fixed ValueForPoint() to correctly limit the value to the slider bounds.
This fixes bug #294.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16839 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 36e7c9a6 10-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

SetValue(Value()) is a no op, and we need to invalidate a bit more than
that, anyway. This should fix the broken resize behaviour of the slider
(as, for example, seen in DiskProbe).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16689 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 662dc0bd 02-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

This fixes the appearance when the slider is directly added to the window, ie.
like it's done in Chart - didn't set the background correctly before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16208 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a71c9607 01-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

* BControl::SetValue() now calls Invalidate() again - not doing so would
break compatibility a bit too much (as this is a public class).
* Instead, we're now using the same mechanism as in Dano/Zeta, that is,
we use BControl::SetValueNoUpdate() in the inherited classes.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16183 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8643b098 23-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

All controls/views now accept NULL arguments for "width" and "height" in GetPreferredSize().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15091 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 44534147 15-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

"#ifdef __HAIKU__" is no longer needed with the new build system.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14945 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d89467ed 14-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed potential endless recursion in FBC code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14938 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1ab68c6 05-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

implemented disabled look for triangle thumb

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14714 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 21027896 05-Jul-2005 Stephan Aßmus <superstippi@gmx.de>

the triangle thumb has 45 degree edges this was, which just look much cleaner

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13467 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


# 597aa5f2 29-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

No longer draws any lines over the thumb area in B_BLOCK_THUMB mode.
It's now completely flicker-free in that mode, all known drawing bugs are gone.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13358 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a66e28b1 29-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

B_BLOCK_THUMB style actually deletes the background, so it's safe to exclude
its region when clearing the background in Draw().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13352 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f549570 29-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

The bar background was still drawing over some border lines which could cause flickering.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13351 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7af7a222 29-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed the remaining drawing bugs the test app revealed.
The block thumb frame is now left out when the bar background is filled
which reduces flicker.
Also, the background fill draw over the region occupied with the border
lines which also caused flicker.
The border lines still draw over the thumb area, and thus, may cause
noticeable flicker there when moving it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13345 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 09196077 28-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

This fixes some of the drawing bugs; those were only visible under BeOS, though (both R5 + Dano).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13344 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c280e11b 28-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

The update region for B_VERTICAL orientation is different; it now
also works correctly when fUseFillColor is used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13343 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a00fcbcd 28-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Improved BSlider class:
- rewrote GetPreferredSize(), it now actually works correctly
- BSlider is certainly not supposed to resize itself on creation
- fixed BarFrame() and ThumbFrame() to support a different view frame
than the ideal one
- added SetBarThickness() support
- refactored constraining the mouse point to _ConstrainPoint() - it's
now used by MouseDown() and MouseMoved() - because of that, tracking
now works with vertical sliders as well
- still has some drawing problems, but less
- _ReservedSlider4() was defined public for the R5 build
Cleanup, more or less rewrote the header.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13342 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1d0f02b4 28-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed some drawing problems (only visible when fUseFillColor was used, or
when DrawBar() was overridden).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13336 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 12315044 16-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed various problem of the BSlider class:
- _DrawTriangleThumb() was drawing outside of thumb frame in B_HORIZONTAL mode
- the focus mark was not updated on value changes
- MessageReceived() and FrameMoved() called themselves, resulting in an endless loop
- there were some drawing leftovers when moving the slider around (only in the thumb
frame). The fix is not nice and may cause flickering (it's commented as such)
- Fixed triangle drawing problems due to anti-aliasing
Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13196 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c10a3393 03-Jun-2005 Stephan Aßmus <superstippi@gmx.de>

huge BSlider cleanup, it doesn't use an offscreen bitmap anymore by default (compile time switch), updated drawing for Haiku features and disabled look, work in progress

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12948 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 08d9a7e9 16-Jan-2005 DarkWyrm <darkwyrm@gmail.com>

Prevent build of BSlider::SetLimits if not building specifically for Haiku


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10781 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e06ebe5 16-Jun-2003 Marc Flerackers <mflerackers@nowhere.fake>

Lots of changes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3535 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 30fd5147 14-May-2003 haydentech <haydentech@nowhere.fake>

Minor header-related changes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3246 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f81711e0 23-Jan-2003 Marc Flerackers <mflerackers@nowhere.fake>

Added the virtual function BSlider::SetLimits


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2541 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ac6f7aa8 23-Jan-2003 Marc Flerackers <mflerackers@nowhere.fake>

Lots of fixes, geometry calculations updated, added buffered BSlider support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2539 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b8d13dee 25-Oct-2002 Marc Flerackers <mflerackers@nowhere.fake>

Added functionality B_VERTICAL, hashmarks, B_TRIANGLE_THUMB, and fixed bugs


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1641 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1d266aed 17-Oct-2002 Marc Flerackers <mflerackers@nowhere.fake>

HashMark support for horizontal sliders + other fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1560 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d90c2c74 17-Sep-2002 Marc Flerackers <mflerackers@nowhere.fake>

Fixed some bugs, added vertical support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1069 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f3c97ca 12-Sep-2002 Marc Flerackers <mflerackers@nowhere.fake>

Initial Checkin


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1028 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e25776bd83f3f3659f6c69fd3b74491899547a10 07-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

Whitespace cleanup only.


# be4367428b6478ae059614d7a9b6f6dc721e5dcb 21-Dec-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

BControl subclasses: Override SetIcon()

... and implement Perform() action for potential later use.


# 0a7975bfede13ecd4fbccf52d039099939b25eed 04-Feb-2013 Axel Dörfler <axeld@pinc-software.de>

BSlider::SetPosition() now calls BSlider's SetValue().

* Before it directly called the BControl version which doesn't really
make any sense, and prevented visual updates.


# 57c5b09e1a3d0f36f94cbab11c96842d782b8eaf 05-Aug-2012 Ryan Leavengood <leavengood@gmail.com>

Use be_control_look != NULL everywhere in the Interface Kit.

Should not be a functional change. It is not in the Haiku Coding Guidelines but
I feel like 'if (object != NULL)' is generally preferred to 'if (object)', plus
in this case of be_control_look that is the more common style.


# 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.


# 7327891c90556890045ddc6f828dfe9caaa809fc 25-Feb-2012 Jerome Duval <jerome.duval@gmail.com>

interface kit: added compatibility symbols for BeAE for #8354

* _ZN5BMenu16InvalidateLayoutEb for GCC4
* InvalidateLayout__7BSliderb for GCC2


# 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.


# d316dc57ded8d78e2cc10494c307c8be80f59fdc 14-Jul-2011 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Remove over-optimization trying not to redraw the background under slider's thumbs.

This gets sliders with custom, non-rectangle thumbs, like the one in APlayer or the example in the BeBook, working properly.
I hope it doesn't break anything - it doesn't seem to but I may have overlooked some pixels.

Fixes #7817.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42425 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f3997b74b340c97d9e8a1d80ba6a350d4cd0c910 03-Jun-2011 Stephan Aßmus <superstippi@gmx.de>

Applied patch by Pete Goodeve (with small coding style corrections)
which fixes vertical BSliders. (ticket #7548) Thanks a bunch!
+alpha


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41881 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e6cb8eb4c62ec3bc02b241cc06f68b3e3cdd444d 05-Nov-2010 Stephan Aßmus <superstippi@gmx.de>

* Reuse the check for changed location which decides whether
to Invoke() in MouseUp() in the code path for keyboard control.
Should fix ticket #6792, but I have not actually tested it.
* Don't post notification values in KeyDown() when the value did
not change because it was constrained between min and max values.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39323 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c944d11f7e0a6775ab04ced50dd929e539c7d10f 13-Apr-2010 Stephan Aßmus <superstippi@gmx.de>

bonefish+stippi:
All views which cache layout information need to call ResetLayoutInvalidation()
when they have updated the cached information. Otherwise calling
InvalidateLayout() once they are already attached to a layout may not have any
effect.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36217 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 03e6434ec0ca4628c1192f0ef5f4d0c1ff7d61de 10-Apr-2010 Jérôme Duval <korli@users.berlios.de>

* fixes a BSlider issue noticed by Matt on the mailing list:
Invoke() wasn't called the first time you grab a slider and slide it all the way to the left.
Thanks for the test case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36145 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 731480e891c40a63b24acca9a739337a8f9f429a 08-Feb-2010 Rene Gollent <anevilyak@gmail.com>

Call UpdateTextChanged() in BSlider::AttachedToWindow() instead of updating the text manually. Otherwise when a subclass overrode UpdateText and the value hadn't yet been changed, the text would never be updated correctly which resulted in several problems in the VirtualMemory preflet when localizations used a longer string for "Requested swap file size:".



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35435 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5993482bf51282bfd212b6507bd7426e80e85dc3 25-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Fixed LowColor() of "background" view. Seems this was always wrong, but now we
are running without offscreen view, and this caused dark slider background,
since LowColor() was unintentionally B_TRANSPARENT_COLOR. Fixes #5323.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35284 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4cdd68e73995965312dc3b7163718c22fd815c24 22-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

* Don't draw/clear the background if the parent view draws on children.
* Make use of the BControlLook method to draw labels.

Both fix ticket #4875.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35261 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4914357d9d8189a012f48bb8fe55284aae2c6005 07-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Automatic trailing whitespace removal.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33929 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0210dcd7b8ae9b04ca5e93db0595558fda92a804 18-Sep-2009 Stephan Aßmus <superstippi@gmx.de>

Small cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33165 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cd7f1893ebee526c85a1f5ea4d19a8013a178aee 09-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* The slider position was actually computed incorrectly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30072 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b8473812504816985d94288b3537a4fbcf055e47 09-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Making it private doesn't help unless you have a const BSlider. Therefore,
removed it from the public namespace, and made it only visible when linking.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30071 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d9479a695100c52778bfda4b68efac996b1a5df6 09-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Added const version of GetLimits() (the non-const version is still around
for binary compatibility).
* Always round the bar thickness, or we get drawing artefacts.
* Cleaned up the header following our coding style.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30070 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


# 6eb09230bae52bcdf045e1f1920b67205c29adc8 01-Feb-2009 Michael Lotz <mmlr@mlotz.ch>

* Resolve further warnings on GCC4.
* Enable -Werror on GCC4 builds as well (limited to the same selected targets).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29118 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cee0c5c7b580824a22254dc7e84a60d128cb2af7 21-Nov-2008 Karsten Heimrich <host.haiku@gmx.de>

* use rgba32 bitmap to get rid of the anoying slider
background while using a different panel background color



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28710 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


# 65785bf7fd763207ca98bbe4a4b30fb4b05d6fc9 13-Sep-2008 Stephan Aßmus <superstippi@gmx.de>

* Don't do anything in SetOrientation() if orientation is the same as the
current one.
* When calculating the thumb and bar frames, handle the case when the object
doesn't have a label, but does have an update text.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27493 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 54badb1f367a83d2cb7a031375fca78fad510187 19-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

mmlr + stippi:
Fixed more controls to handle a B_TRANSPARENT_COLOR as view coloe of the
parent view. Some controls would not initialize their LowColor() at all
if they were the only control in a window.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26515 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 85db8e8380db5cb0c6df6eeb6fbab8947608cf8a 18-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

In my BSlider changes, I changed the behavior of GetPreferredSize(), which
previously did never shrink the slider horizontally. This broke a couple
apps, so I added it back, although I don't quite agree that this is the correct
behavior. Apps using the new layout system are not affected though, so I
guess it is alright. Should fix #2530, although I didn't test it yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26502 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f779adc69286b9babc31ad311a2b8558f09c29e9 17-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

mmlr + stippi:
In my last row of changes I removed a call to ResizeToPreferred()
in SetLimitLabels(). It is confirmed that the BeOS implementation
is doing it and some applications rely on it, like our own Mouse preflet.
This closes #2526.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26479 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3cd9fb75187b2cdec981a75f058a1548ed8ea903 16-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* Calculate correct invalidation rect in SetBarThickness()
* Improved ThumbFrame() for B_TRIANGLE_THUMB, too high horizontal slider
had the thumb along the bottom and not on the bar.
* Improved triangel thumb drawing, the vertical drawing did look so good
yet, I also put the triangle on the right side, it looked weird on the
left and it reverted the hashmark meaning too.
* Small code cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26458 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ae794159a94a272edabc18c4af0499189ddd2ac 16-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* Changed the signature of UpdateText() to return a "const char*" (char*
really makes no sense if the pointer belongs to the derived class and
only confuses). Note this change does not affect binary compatibility.
* Introduced a new MaxUpdateTextWidth() virtual method which is really
necessary to handle the update text correctly in the layout.
* Introduced a new UpdateTextChanged() method which can be called to
notify the control of a changed update text. Internally, SetValue()
also uses it.
* Handle the width or height of the UpdateText() correctly in the layout.
For horizontal layout, the width was forgotten to be included in
GetPreferredSize(), for vertical layout, it was completely broken before.
* Handle invalidation correctly when the UpdateText() changes.
* Remove the arbitrary insets for labels from the border the control. This
makes it easier to align the control's labels with other controls.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26447 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8995071f077b657547f0736c617111dc42917144 16-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

The vertical slider is now at least functionally working, although the rendering
code needs some love.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26444 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f898f8af47a152b4380ea509a3e305a04f2fffca 16-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

If the user specified a hashmark location other than B_HASH_MARKS_NONE, draw
at least two hash marks, even if the hash mark count has never been configured.
Also means the minimum hashmark count is 2 instead of 1 as before. I think this
behavior is more what one would expect, I turned on hashmarks and wondered
why nothing happened until I realized I needed to configure the count as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26443 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 423b124450861415baaeee9d480d180c39829473 16-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

First round of BSlider fixes to be more layout friendly:
* Improve the minimum size calculation and cache it.
* Invalidate the layout on various property changes that require it.

Vertical BSliders are very broken... that's up next.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26441 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cdcfa5945d0694dec7695986c8e09e8276c9b4e5 16-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* Added layout friendly constructor
* Use constructor lists for initializing members
* Simplified initial SetBarColor()
* Update the offscreen view with ViewColor() and LowColor(), someone might
have changed it after AttachedToWindow() was called.
* Cleanup here and there


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26440 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7b94dab18fc6c19b5ac137771081c7edb695f127 08-Jan-2008 Stephan Aßmus <superstippi@gmx.de>

* fix some invalidation problems with the triangle thumb which are caused by
non-traight lines extending past the thumb frame because of anti-aliasing
effects


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23286 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 01c2f44ee8cbe8d17179c6c4b172ea4196cc7420 08-Jan-2008 Stephan Aßmus <superstippi@gmx.de>

* fix keyboard handling to trigger the correct invokation message
* add support for B_HOME and B_END key (jump to min/max value)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23285 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fb29f5b0fb77e2079d4b272a932c15bf355ffb65 04-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

Changes to let updates happen less frequently:
* _ContrainPoint() was broken as it could never change the point it was supposed
to contrain.
* MouseDown() no longer sends a notification message automatically (only if it
changed something)
* MouseMoved() and synchronous MouseDown() will now only send modification messages
if something actually changed (not for every mouse update).
* After key presses, the invokation message is only sent when the value changed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19697 a95241bf-73f2-0310-859d-f6bbb57e9c96


# de0ca38e5a494f7dd0309e78402207a8e20aab83 12-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17817 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 18745cb6203605a6e5673781aec5ee85167dbcb5 02-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

BSlider didn't like if minimum and maximum limit were the same. Now the slider is
drawn correctly in that case, and the thumb stays at the start of the slider
(minimal position). This fixes bug #193.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17705 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 687e925395c7517e55b49d2ddfe5e7687214585e 22-May-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Removed private functions _long_to_color_() and _color_to_long_(), there
shouldnt be any application that uses them, as they were not in headers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17552 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 11d7ecebd0255943e4b27c2fe94174c30d00385d 21-Apr-2006 Jérôme Duval <korli@users.berlios.de>

fixed some Archive() following stippi's path


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17188 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f90a951e328b8104bb8b7fb32bcca32ecc4dfe91 19-Apr-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

The previous commit was obviously incorrect, as the window wasn't updated anymore.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17170 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 422ce5d4bc57f8cd974b341e54d6571e9228fce5 18-Apr-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

the synchronous version of BSlider::MouseDown() now discards old message events

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17169 a95241bf-73f2-0310-859d-f6bbb57e9c96


# efdd958617945aaa152da856a1fa2e390e189fc8 17-Apr-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

BSlider locked the looper and never unlocked it anymore. Was the cause of bug 406

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17154 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 632ba028c9164f7ae9ca92980cd4319658d079e1 17-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

SetValue() is now called after the object has been fully initialized.
This fixes bug #495.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17149 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e762848ab2db2c6c1bd9d122d5225e4c2ff07980 16-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* Now draws the UpdateText() label as well (was obviously forgotten before).
To reduce the number of calls to UpdateText(), the value returned is now
buffered. This fixes bug #443.
* SetValue() now calls UpdateText() and also invalidates the region where
that label is drawn.
* In asynchronous mode, B_NO_POINTER_HISTORY is set now for tracking.
* Increased minimum snooze time in synchronous mode.
* Minor cleanup, renamed fMinLimitStr to fMinLimitLabel, etc.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17146 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 805cb76ed8e50f1ae3fd6990a8a6f3d0936be89b 05-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* Added several R4.5 compatibility exports - they are now only compiled when GCC
2.95 is used.
* Added empty _klock_node_() syscall for compatibility - all R5 syscalls are now
also only compiled with GCC 2.95.
* This should fix bug #403.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17011 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b1da1ce9ad003c3623f9ad643642c6955517edb 04-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

DrawSlider() now locks the looper - this should fix bug #396.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17002 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 224a6b047f921af9f203298439ffc5bbbdcebece 03-Apr-2006 Jérôme Duval <korli@users.berlios.de>

code hardening, should help on bug #385


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16981 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5eae27a4d058b2b61e222e66547f52c7ba2ca4fa 19-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Fixed ValueForPoint() to correctly limit the value to the slider bounds.
This fixes bug #294.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16839 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 36e7c9a636e76d5be3e70fb7734353dc64aeef2e 10-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

SetValue(Value()) is a no op, and we need to invalidate a bit more than
that, anyway. This should fix the broken resize behaviour of the slider
(as, for example, seen in DiskProbe).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16689 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 662dc0bdc8a81c6f02ae85561992c1b00372f446 02-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

This fixes the appearance when the slider is directly added to the window, ie.
like it's done in Chart - didn't set the background correctly before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16208 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a71c960755b6e636ce99639c700d3415788c7b41 01-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

* BControl::SetValue() now calls Invalidate() again - not doing so would
break compatibility a bit too much (as this is a public class).
* Instead, we're now using the same mechanism as in Dano/Zeta, that is,
we use BControl::SetValueNoUpdate() in the inherited classes.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16183 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8643b0987c2d6aca25b53fb6d8fa0a126b2b3f1f 23-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

All controls/views now accept NULL arguments for "width" and "height" in GetPreferredSize().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15091 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 44534147b13424906d3a9489d0a3eeb29a733fb9 15-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

"#ifdef __HAIKU__" is no longer needed with the new build system.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14945 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d89467ed24b141a52fbd70ce9490147beee973af 14-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed potential endless recursion in FBC code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14938 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1ab68c612563df25bbbcc2869a960ef476f614b 05-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

implemented disabled look for triangle thumb

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14714 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 21027896c8a8d887259c63e9cc70d59f9c9cd773 05-Jul-2005 Stephan Aßmus <superstippi@gmx.de>

the triangle thumb has 45 degree edges this was, which just look much cleaner

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13467 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


# 597aa5f24d63e05b026eb14b86772d89b06ff63c 29-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

No longer draws any lines over the thumb area in B_BLOCK_THUMB mode.
It's now completely flicker-free in that mode, all known drawing bugs are gone.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13358 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a66e28b1ffb600c573dcd2451fee94fa58af74a1 29-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

B_BLOCK_THUMB style actually deletes the background, so it's safe to exclude
its region when clearing the background in Draw().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13352 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f5495702477e9c0f6583ff65199958db33d0d63 29-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

The bar background was still drawing over some border lines which could cause flickering.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13351 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7af7a22216937e9e39ae98ffd5ad655e9bb106fe 29-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed the remaining drawing bugs the test app revealed.
The block thumb frame is now left out when the bar background is filled
which reduces flicker.
Also, the background fill draw over the region occupied with the border
lines which also caused flicker.
The border lines still draw over the thumb area, and thus, may cause
noticeable flicker there when moving it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13345 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 09196077b88565772dc0e7b0a311615abc5cd6b0 28-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

This fixes some of the drawing bugs; those were only visible under BeOS, though (both R5 + Dano).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13344 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c280e11b896eb094afd168f8216639d3839dfb0f 28-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

The update region for B_VERTICAL orientation is different; it now
also works correctly when fUseFillColor is used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13343 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a00fcbcdf8d065de90cd421527d1a03ee838fd3f 28-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Improved BSlider class:
- rewrote GetPreferredSize(), it now actually works correctly
- BSlider is certainly not supposed to resize itself on creation
- fixed BarFrame() and ThumbFrame() to support a different view frame
than the ideal one
- added SetBarThickness() support
- refactored constraining the mouse point to _ConstrainPoint() - it's
now used by MouseDown() and MouseMoved() - because of that, tracking
now works with vertical sliders as well
- still has some drawing problems, but less
- _ReservedSlider4() was defined public for the R5 build
Cleanup, more or less rewrote the header.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13342 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1d0f02b4ac511aae5ef48ef837cefd8897cd5f07 28-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed some drawing problems (only visible when fUseFillColor was used, or
when DrawBar() was overridden).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13336 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 12315044654af4ab3e7125ae3bbb9d782b974b61 16-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed various problem of the BSlider class:
- _DrawTriangleThumb() was drawing outside of thumb frame in B_HORIZONTAL mode
- the focus mark was not updated on value changes
- MessageReceived() and FrameMoved() called themselves, resulting in an endless loop
- there were some drawing leftovers when moving the slider around (only in the thumb
frame). The fix is not nice and may cause flickering (it's commented as such)
- Fixed triangle drawing problems due to anti-aliasing
Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13196 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c10a3393e23ce9fff61d83608b8985c52b07dd66 03-Jun-2005 Stephan Aßmus <superstippi@gmx.de>

huge BSlider cleanup, it doesn't use an offscreen bitmap anymore by default (compile time switch), updated drawing for Haiku features and disabled look, work in progress

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12948 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 08d9a7e92d7d279909cf3fb92364ba1e85102371 16-Jan-2005 DarkWyrm <darkwyrm@gmail.com>

Prevent build of BSlider::SetLimits if not building specifically for Haiku


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10781 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e06ebe5d72be4aef724ff3c4d87d92f0df9f59e 16-Jun-2003 Marc Flerackers <mflerackers@nowhere.fake>

Lots of changes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3535 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 30fd51473f390b92d40b3a3c83b25e2d4a042f08 14-May-2003 haydentech <haydentech@nowhere.fake>

Minor header-related changes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3246 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f81711e0de29e317716c0b0c6d45e443df795f11 23-Jan-2003 Marc Flerackers <mflerackers@nowhere.fake>

Added the virtual function BSlider::SetLimits


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2541 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ac6f7aa8506e964f35eb1c1107aea80ae7d06d18 23-Jan-2003 Marc Flerackers <mflerackers@nowhere.fake>

Lots of fixes, geometry calculations updated, added buffered BSlider support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2539 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b8d13dee919fad1b3d9368286a37d0c287c0f519 25-Oct-2002 Marc Flerackers <mflerackers@nowhere.fake>

Added functionality B_VERTICAL, hashmarks, B_TRIANGLE_THUMB, and fixed bugs


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1641 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1d266aed5ba73417022c8dcd6397cbd9b386e9e3 17-Oct-2002 Marc Flerackers <mflerackers@nowhere.fake>

HashMark support for horizontal sliders + other fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1560 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d90c2c74a167ac8b26353d08176b49df8611d081 17-Sep-2002 Marc Flerackers <mflerackers@nowhere.fake>

Fixed some bugs, added vertical support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1069 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f3c97ca49a4a33720299fd2c8d9699edd6f61b5 12-Sep-2002 Marc Flerackers <mflerackers@nowhere.fake>

Initial Checkin


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1028 a95241bf-73f2-0310-859d-f6bbb57e9c96