Commit Graph
33 Commits
Author SHA1 Message Date
Ingo Weinhold be4367428b BControl subclasses: Override SetIcon()
... and implement Perform() action for potential later use.
2013-12-22 02:48:27 +01:00
Ingo Weinhold df37cd4edd BCheckBox: Add tri-state support
* Add possible control state B_CONTROL_PARTIALLY_ON and support it in
  BCheckBox and BControlLook.
* BCheckBox: Add partialStateToOff property defining whether the
  partial state should transition to off. Defaults to false (i.e.
  partial to on).
2013-12-21 02:12:04 +01:00
Rene Gollent 426f721b81 Fix default alignment on BCheckBox.
Was most readily noticeable in WebPositive's Find pane, where the
CheckBox was incorrectly top-aligned. Thanks to Humdinger for reporting.
2013-09-11 18:23:07 -04:00
Rene Gollent 46d6e9d9ed Interface Kit: Adjust max size and default alignment...
...on controls where it makes sense:
- BRadioButton and BCheckBox now return their preferred size as their
maximum.
- BRadioButton, BCheckBox and BTextControl now use left alignment by
default, as this is the most common use case for them.
2013-07-01 11:30:49 -04:00
Rene Gollent 621ae6bd72 Revert 7910d8b for now.
Quite a few layouts seem to depend on the previous behavior, and there
isn't really an elegant way to resolve that for now, unless I miss
something in the lauout APIs. However, this does  need to be looked at
at some point, for some other controls as well, since it effectively
makes it impossible to properly use such controls in horizontal groups
and get an expected result.
2013-07-01 08:46:30 -04:00
Rene Gollent 7910d8b89c Adjust BCheckBox::MaxSize.
Previously BCheckBox returned unlimited width for its max size. This
became problematic if one wanted to put a checkbox in any kind of
horizontal layout with other controls, since they would expand to use as
much space as possible. This is also in contrast to other controls such
as BButton, which simply return the max to be the same as the preferred.
As such, adjust BCheckBox to do the same.
2013-06-28 18:49:34 -04:00
Ryan Leavengood 57c5b09e1a 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.
2012-08-05 18:07:23 -04:00
Jerome Duval 8adaa6c544 interface kit: added compatibility symbols for GCC4
* InvalidateLayout method for BBox, BButton, BCheckBox, BMenuField,
  BScrollView, BSlider, BStringView, BTextControl.
2012-02-26 10:36:04 +01:00
Rene Gollent f6c8d24294 Use the correct perform invocation for these functions. 2011-12-19 08:49:58 -05:00
Rene Gollent 466f2b8f99 Add compatibility symbols for removed LayoutChanged() calls. 2011-12-18 15:34:44 -05:00
Alex Wilson eee4243d35 De-virtualize BView::InvalidateLayout() and introduce LayoutInvalidated() hook, like BLayout. 2011-10-28 14:16:43 -06:00
Stephan Aßmus c944d11f7e 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
2010-04-13 13:36:49 +00:00
Stephan Aßmus a3840a518d One more little cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32688 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 10:31:03 +00:00
Stephan Aßmus c5c20344eb * Cleaned up the header
* Reordered methods to group them logically
* Use nothrow version of new when instantiating BCheckBox from archive.

+alphabranch


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


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


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-15 09:29:06 +00:00
Stephan Aßmus ab7c45e727 * Prevent cross from being too close to the surroundings.
* No need for B_OP_OVER anymore since ages.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-23 11:52:53 +00:00
Ingo Weinhold 05e3a10655 Rather use B_SIZE_UNSET for fPreferredSize.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21425 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-17 01:11:08 +00:00
Ingo Weinhold c594b2f5f2 Added layout-friendly constructors and implemented Min/Max/PreferredSize().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21365 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-09 10:52:36 +00:00
Axel Dörfler da7c734d5c Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21155 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-16 15:50:04 +00:00
Stephan Aßmus a0c5ca01a5 using Draw(); Flush(); doesn't get a clean background to draw on, other controls should be fixed as well... this should fix the text becomming thick when repeatedly clicking a check box
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17524 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-22 09:55:39 +00:00
Axel Dörfler 2990d21b82 * Recognized any values instead of just boolean ones. This fixes bug #186.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16545 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-28 12:17:26 +00:00
Axel Dörfler a71c960755 * 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
2006-02-01 15:55:46 +00:00
Axel Dörfler 8643b0987c 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
2005-11-23 17:29:39 +00:00
Stephan Aßmus 0c3344f4a1 no Invalidate in BControl::SetValue, I figure more controls need to be updated for this change
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 19:55:49 +00:00
Stephan Aßmus 5f50ffd65c The real fix for taking anti-aliasing into account, though what my previous commit said was true as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12686 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-16 13:28:59 +00:00
Stephan Aßmus dcf0c6ebd6 The anti-aliasing in Haiku requires the same carefulness with B_OP_COPY for line drawing as text drawing does in R5
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12682 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-16 11:57:13 +00:00
Stephan Aßmus 25ad8b2c74 replaced direct calling of Draw() with Invalidate() where appropriate
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12563 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-03 21:51:29 +00:00
Stefano Ceccherini bc6981cc74 Switch synchronous and asynchronous mouse tracking code as it was wrongly placed. Style changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10517 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-23 12:13:56 +00:00
Marc Flerackers 64603764f9 *** empty log message ***
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3533 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-16 06:33:32 +00:00
Marc Flerackers 47bc8348ea *** empty log message ***
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3126 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-04-29 07:26:55 +00:00
Marc Flerackers 8ce46bc32b Lots of fixes, geometry calculations updated, added buffered BSlider support
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2540 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-23 15:11:19 +00:00
ejakowatz 52a3801208 It is accomplished ...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-09 12:24:59 +00:00