diff options
Diffstat (limited to 'examples/example_03_layout_container.nim')
| -rwxr-xr-x | examples/example_03_layout_container.nim | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/examples/example_03_layout_container.nim b/examples/example_03_layout_container.nim new file mode 100755 index 0000000..5310f71 --- /dev/null +++ b/examples/example_03_layout_container.nim @@ -0,0 +1,86 @@ +# This example shows some possibilities to align controls with a LayoutContainer. + +import nigui + +app.init() + +var window = newWindow() +window.width = 800 +window.height = 600 +var mainContainer = newLayoutContainer(Layout_Vertical) +window.add(mainContainer) + +# Row 1: Auto-sized: +var innerContainer = newLayoutContainer(Layout_Horizontal) +mainContainer.add(innerContainer) +innerContainer.frame = newFrame("Row 1: Auto-sized") +for i in 1..3: + var control = newButton("Button " & $i) + innerContainer.add(control) + +# Row 2: Auto-sized, more padding: +innerContainer = newLayoutContainer(Layout_Horizontal) +mainContainer.add(innerContainer) +innerContainer.padding = 10 +innerContainer.frame = newFrame("Row 2: Auto-sized, more padding") +for i in 1..3: + var control = newButton("Button " & $i) + innerContainer.add(control) + +# Row 3: Auto-sized, more spacing: +innerContainer = newLayoutContainer(Layout_Horizontal) +mainContainer.add(innerContainer) +innerContainer.spacing = 15 +innerContainer.frame = newFrame("Row 3: Auto-sized, more spacing") +for i in 1..3: + var control = newButton("Button " & $i) + innerContainer.add(control) + +# Row 4: Controls expanded: +innerContainer = newLayoutContainer(Layout_Horizontal) +mainContainer.add(innerContainer) +innerContainer.frame = newFrame("Row 4: Controls expanded") +for i in 1..3: + var control = newButton("Button " & $i) + control.widthMode = WidthMode_Expand + innerContainer.add(control) + +# Row 5: Controls centered: +innerContainer = newLayoutContainer(Layout_Horizontal) +mainContainer.add(innerContainer) +innerContainer.widthMode = WidthMode_Expand +innerContainer.height = 80 # problem +innerContainer.xAlign = XAlign_Center +innerContainer.yAlign = YAlign_Center +innerContainer.frame = newFrame("Row 5: Controls centered") +for i in 1..3: + var control = newButton("Button " & $i) + innerContainer.add(control) + +# Row 6: Container expanded, spread: +innerContainer = newLayoutContainer(Layout_Horizontal) +mainContainer.add(innerContainer) +# innerContainer.height = 80 +innerContainer.widthMode = WidthMode_Expand +innerContainer.xAlign = XAlign_Spread +innerContainer.frame = newFrame("Row 6: Container expanded, spread") +for i in 1..3: + var control = newButton("Button " & $i) + innerContainer.add(control) + +# Row 7: Static size: +innerContainer = newLayoutContainer(Layout_Horizontal) +mainContainer.add(innerContainer) +innerContainer.widthMode = WidthMode_Expand +innerContainer.xAlign = XAlign_Center +innerContainer.yAlign = YAlign_Center +innerContainer.frame = newFrame("Row 7: Static size") +for i in 1..3: + var control = newButton("Button " & $i) + control.width = 90 * i + control.height = 15 * i + innerContainer.add(control) + + +window.show() +app.run() |
