Interface Kit: use different spacing constants.

* While this breaks binary compatibility with earlier Haiku releases,
  use values that are less likely to clash with actual use cases.
* Specifically, using a negative spacing is one way to get rid of the
  border of BScrollViews, to put them into a window neatly.
* Also, BControlLook now uses a switch to resolve them.
This commit is contained in:
Axel Dörfler
2015-09-04 17:32:44 +02:00
parent fa89878a70
commit e047b40a2f
2 changed files with 27 additions and 24 deletions
+12 -12
View File
@@ -1,5 +1,5 @@
/*
* Copyright 2001-2008, Haiku, Inc. All rights reserved.
* Copyright 2001-2015, Haiku, Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _INTERFACE_DEFS_H
@@ -228,17 +228,17 @@ enum vertical_alignment {
enum {
B_USE_DEFAULT_SPACING = -2,
B_USE_ITEM_SPACING = -3,
B_USE_ITEM_INSETS = -3,
B_USE_HALF_ITEM_SPACING = -4,
B_USE_HALF_ITEM_INSETS = -4,
B_USE_WINDOW_INSETS = -5,
B_USE_WINDOW_SPACING = -5,
B_USE_SMALL_INSETS = -6,
B_USE_SMALL_SPACING = -6,
B_USE_BIG_INSETS = -7,
B_USE_BIG_SPACING = -7
B_USE_DEFAULT_SPACING = -1002,
B_USE_ITEM_SPACING = -1003,
B_USE_ITEM_INSETS = -1003,
B_USE_HALF_ITEM_SPACING = -1004,
B_USE_HALF_ITEM_INSETS = -1004,
B_USE_WINDOW_INSETS = -1005,
B_USE_WINDOW_SPACING = -1005,
B_USE_SMALL_INSETS = -1006,
B_USE_SMALL_SPACING = -1006,
B_USE_BIG_INSETS = -1007,
B_USE_BIG_SPACING = -1007
};
+14 -11
View File
@@ -1,6 +1,6 @@
/*
* Copyright 2009, Stephan Aßmus <[email protected]>
* Copyright 2012-2014 Haiku, Inc. All rights reserved.
* Copyright 2012-2015 Haiku, Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
@@ -71,17 +71,20 @@ BControlLook::DefaultItemSpacing() const
float
BControlLook::ComposeSpacing(float spacing)
{
if (spacing == B_USE_DEFAULT_SPACING || spacing == B_USE_ITEM_SPACING) {
return be_control_look->DefaultItemSpacing();
} else if (spacing == B_USE_HALF_ITEM_SPACING) {
return ceilf(be_control_look->DefaultItemSpacing() * 0.5f);
} else if (spacing == B_USE_WINDOW_INSETS) {
return be_control_look->DefaultItemSpacing();
} else if (spacing == B_USE_SMALL_SPACING) {
return ceilf(be_control_look->DefaultItemSpacing() * 0.7f);
} else if (spacing == B_USE_BIG_SPACING) {
return ceilf(be_control_look->DefaultItemSpacing() * 1.3f);
switch ((int)spacing) {
case B_USE_DEFAULT_SPACING:
case B_USE_ITEM_SPACING:
return be_control_look->DefaultItemSpacing();
case B_USE_HALF_ITEM_SPACING:
return ceilf(be_control_look->DefaultItemSpacing() * 0.5f);
case B_USE_WINDOW_SPACING:
return be_control_look->DefaultItemSpacing();
case B_USE_SMALL_SPACING:
return ceilf(be_control_look->DefaultItemSpacing() * 0.7f);
case B_USE_BIG_SPACING:
return ceilf(be_control_look->DefaultItemSpacing() * 1.3f);
}
return spacing;
}