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