Greetings!!
Code: Select all
win= OpenWindow(#PB_Any,0,0,400,400,"test",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
tex= TextGadget(#PB_Any,0,0,400,30,"Test autoresize EditorGadget and window",#PB_Text_Center | #SS_CENTERIMAGE)
edi= EditorGadget(#PB_Any,0,30,WindowWidth(win),WindowHeight(win)-30,#PB_Editor_WordWrap)
txt.s= "Lorem ipsum dolor sit amet consectetur adipiscing elit duis cum class dictum, quis semper tincidunt magna sociosqu feugiat natoque parturient enim augue, accumsan urna nibh auctor hendrerit magnis felis arcu aptent laoreet. Facilisis vehicula dui gravida penatibus hendrerit habitasse donec lobortis eget, elementum taciti nunc potenti sem nullam class vestibulum volutpat hac, in faucibus tempor urna porttitor orci malesuada maecenas. Ante aliquet rhoncus vestibulum platea iaculis eleifend nullam consequat, scelerisque ridiculus sociosqu habitant torquent id imperdiet."
SetGadgetText(edi,txt)
l= CountGadgetItems(edi):oldl=l
hdc = GetDC_(GadgetID(edi)):tm.TEXTMETRIC:GetTextMetrics_(hdc, @tm)
slh= tm\tmHeight + tm\tmExternalLeading
ResizeWindow(win,#PB_Ignore,#PB_Ignore,#PB_Ignore,30 + slh * l):ResizeGadget(edi,#PB_Ignore,#PB_Ignore,#PB_Ignore,slh * l)
Repeat
event= WindowEvent()
Select event
Case #PB_Event_Gadget
eg= EventGadget()
et= EventType()
Select eg
Case edi
If et=#PB_EventType_Change
l= CountGadgetItems(edi)
If oldl<>l
ResizeWindow(win,#PB_Ignore,#PB_Ignore,#PB_Ignore,30 + slh * l):ResizeGadget(edi,#PB_Ignore,#PB_Ignore,#PB_Ignore,slh * l)
oldl=l
EndIf
EndIf
EndSelect
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver