MCPcopy Create free account
hub / github.com/MyGUI/mygui / updateContent

Method updateContent

UnitTests/UnitTest_HyperTextBox/ScrollViewPanel.cpp:34–67  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

32 }
33
34 void ScrollViewPanel::updateContent()
35 {
36 // размер клиента с полосами
37 IntSize viewSize = mScrollViewClient->getSize();
38 if (!getVScroll()->getVisible())
39 viewSize.width -= getVScroll()->getWidth();
40
41 size_t childCount = getChildCount();
42 if (childCount == 0)
43 return;
44
45 Panel::updateMeasure(getChildAt(0), IntSize(viewSize.width, (std::numeric_limits<int>::max)()));
46 IntSize resultSize = Panel::getDesiredSize(getChildAt(0));
47
48 // содержимое влазиет по высоте, вертикального скрола не будет
49 if (viewSize.height >= resultSize.height)
50 {
51 viewSize = mScrollViewClient->getSize();
52 if (getVScroll()->getVisible())
53 viewSize.width += getVScroll()->getWidth();
54
55 Panel::updateMeasure(getChildAt(0), IntSize(viewSize.width, (std::numeric_limits<int>::max)()));
56 resultSize = Panel::getDesiredSize(getChildAt(0));
57
58 Panel::updateArrange(getChildAt(0), IntCoord(0, 0, viewSize.width, resultSize.height));
59 setCanvasSize(IntSize(viewSize.width, resultSize.height));
60 }
61 // содержимое больше, будет виден вертикальный скрол
62 else
63 {
64 Panel::updateArrange(getChildAt(0), IntCoord(0, 0, viewSize.width, resultSize.height));
65 setCanvasSize(IntSize(viewSize.width, resultSize.height));
66 }
67 }
68
69} // namespace MyGUI

Callers

nothing calls this directly

Calls 5

IntSizeFunction · 0.50
IntCoordFunction · 0.50
getSizeMethod · 0.45
getVisibleMethod · 0.45
getWidthMethod · 0.45

Tested by

no test coverage detected