xref: /haiku/src/kits/shared/StatusView.cpp (revision 322be3bee0a03f5f8a037f1f744e6663ccda42d6)
1*322be3beSPascal Abresch /*
2*322be3beSPascal Abresch  * Copyright 2021, Pascal R. G. Abresch, nep@packageloss.eu.
3*322be3beSPascal Abresch  * Distributed under the terms of the MIT License.
4*322be3beSPascal Abresch  */
5*322be3beSPascal Abresch 
6*322be3beSPascal Abresch #include <ControlLook.h>
7*322be3beSPascal Abresch #include <View.h>
8*322be3beSPascal Abresch 
9*322be3beSPascal Abresch 
10*322be3beSPascal Abresch namespace BPrivate {
11*322be3beSPascal Abresch 
12*322be3beSPascal Abresch 
13*322be3beSPascal Abresch void
AdoptScrollBarFontSize(BView * view)14*322be3beSPascal Abresch AdoptScrollBarFontSize(BView* view)
15*322be3beSPascal Abresch {
16*322be3beSPascal Abresch 	float maxSize = be_control_look->GetScrollBarWidth();
17*322be3beSPascal Abresch 	BFont testFont = be_plain_font;
18*322be3beSPascal Abresch 	float currentSize;
19*322be3beSPascal Abresch 	font_height fontHeight;
20*322be3beSPascal Abresch 
21*322be3beSPascal Abresch 	float minFontSize = 0.0f;
22*322be3beSPascal Abresch 	float maxFontSize = 48.0f;
23*322be3beSPascal Abresch 
24*322be3beSPascal Abresch 	while (maxFontSize - minFontSize > 1.0f) {
25*322be3beSPascal Abresch 		float midFontSize = (maxFontSize + minFontSize) / 2.0f;
26*322be3beSPascal Abresch 
27*322be3beSPascal Abresch 		testFont.SetSize(midFontSize);
28*322be3beSPascal Abresch 		testFont.GetHeight(&fontHeight);
29*322be3beSPascal Abresch 		currentSize = fontHeight.ascent + fontHeight.descent;
30*322be3beSPascal Abresch 
31*322be3beSPascal Abresch 		if (currentSize > maxSize)
32*322be3beSPascal Abresch 			maxFontSize = midFontSize;
33*322be3beSPascal Abresch 		else
34*322be3beSPascal Abresch 			minFontSize = midFontSize;
35*322be3beSPascal Abresch 	}
36*322be3beSPascal Abresch 
37*322be3beSPascal Abresch 	view->SetFontSize(minFontSize);
38*322be3beSPascal Abresch }
39*322be3beSPascal Abresch 
40*322be3beSPascal Abresch 
41*322be3beSPascal Abresch } // namespace BPrivate
42