|
Class: VariableHorizontalPanel
Object
|
+--GraphicsMedium
|
+--DisplaySurface
|
+--SimpleView
|
+--VariablePanel
|
+--VariableHorizontalPanel
- Package:
- stx:libwidg
- Category:
- Views-Layout
- Version:
- rev:
1.25
date: 2016/09/22 12:54:57
- user: cg
- file: VariableHorizontalPanel.st directory: libwidg
- module: stx stc-classLibrary: libwidg
- Author:
- Claus Gittinger
This class is only here for backward compatibility;
all functionality is now in VariablePanel. Its orientation can now
be changed dynamically.
A View to separate its subviews horizontally by a movable bar
to adjust the size-ratios.
The bar-handle is either an exposed knob (knobStyle == #motif)
or the forms defined in Scroller (knobStyle ~~ #motif)
or nothing.
The subvies dimensions MUST be given as relative sizes;
typically creation is done as:
p := VariableHorizontalPanel in:superView.
v1 := <someViewClass> origin:0.0 @ 0.0
corner:0.5 @ 1.0
in:p.
v2 := <someViewClass> origin:0.5 @ 0.0
corner:0.8 @ 1.0
in:p.
v3 := <someViewClass> origin:0.8 @ 0.0
corner:1.0 @ 1.0
in:p.
See examples.
initialization
-
initialize
-
VariableHorizontalPanel is simply setting its orientation
to #horizontal. See more examples there.
dummy example: 2 views side-by-side
|top p v1 v2|
top := StandardSystemView new.
top extent:300@200.
p := VariableHorizontalPanel
origin:0.0 @ 0.0
corner:1.0 @ 1.0
in:top.
v1 := View
origin:0.0 @ 0.0
corner:0.5 @ 1.0
in:p.
v1 viewBackground:Color red.
v2 := View
origin:0.5 @ 0.0
corner:1.0 @ 1.0
in:p.
v2 viewBackground:Color green.
top open
|
concrete example: a selectionInListView and a TextView side-by-side
(not useful - need scrollBars; see next example)
|top p v1 v2|
top := StandardSystemView new.
top extent:400@300.
p := VariableHorizontalPanel
origin:0.0 @ 0.0
corner:1.0 @ 1.0
in:top.
v1 := SelectionInListView
origin:0.0 @ 0.0
corner:0.5 @ 1.0
in:p.
v1 list:('/etc' asFilename directoryContents).
v1 useIndex:false.
v1 action:[:name | v2 contents:('/etc/' , name)
asFilename contentsOfEntireFile
].
v2 := TextView
origin:0.5 @ 0.0
corner:1.0 @ 1.0
in:p.
top open
|
better - with scrollBars (but that's another story ... see ScrollableView examples for more):
|top p v1 v2|
top := StandardSystemView new.
top extent:400@300.
p := VariableHorizontalPanel
origin:0.0 @ 0.0
corner:1.0 @ 1.0
in:top.
v1 := ScrollableView for:SelectionInListView
origin:0.0 @ 0.0
corner:0.5 @ 1.0
in:p.
v1 list:('/etc' asFilename directoryContents).
v1 useIndex:false.
v1 action:[:name | v2 contents:('/etc/' , name)
asFilename contentsOfEntireFile
].
v2 := ScrollableView for:TextView
origin:0.5 @ 0.0
corner:1.0 @ 1.0
in:p.
top open
|
another stupid example: 3-views side-by-side
|top p v1 v2 v3|
top := StandardSystemView new.
top extent:550@200.
p := VariableHorizontalPanel
origin:0.0 @ 0.0
corner:1.0 @ 1.0
in:top.
v1 := SelectionInListView
origin:0.0 @ 0.0
corner:0.3 @ 1.0
in:p.
v1 level:-1.
v1 list:#('one' 'two' 'three' nil 'dont expect' 'something' 'to happen here').
v2 := EditTextView
origin:0.3 @ 0.0
corner:0.6 @ 1.0
in:p.
v2 contents:'nonScrollable\EditTextView' withCRs.
v3 := ScrollableView
for:TextView
origin:0.6 @ 0.0
corner:1.0 @ 1.0
in:p.
v3 contents:'scrollable\TextView\\(read only)\\\\\\\\\\\\\\\\\concratulations !\you managed\to scroll down' withCRs.
top open
|
|