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 AbreschAdoptScrollBarFontSize(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