Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
module Fox
#
# The spring widgets, when properly embedded side by side in a horizontal
# frame or vertical frame widget, behave like a set of connected springs
# of various lengths.
#
# The third and fourth arguments to the FXSpring.new method (+relw+ and +relh+)
# determine the "length" of the spring. You can also change these settings after
# the widget is constructed using the FXSpring#relativeWidth and FXSpring#relativeHeight
# accessor methods.
# The actual length that you specify is not really
# important; the only thing that counts is the relative length of one
# spring widget to that of another, although the length does determine
# the default size. The special value zero may be given for +relw+ (or +relh+)
# to cause the spring to calculate its default width (height) normally,
# just like the FXPacker base class does.
#
# In a typical scenario, either the relative width or height is set to
# zero, an the flag <tt>LAYOUT_FILL_X</tt> or <tt>LAYOUT_FILL_Y</tt> is passed.
# When placed inside a horizontal frame, the <tt>LAYOUT_FILL_X</tt> together with
# the relative widths of the springs will cause a fixed width-ratio
# between the springs.
#
# You also can mix normal controls and springs together in a horizontal
# or vertical frames to provide arbitrary stretchable spacing between
# widgets; in this case, the springs do not need to have any children.
# Since the spring widget is derived from the FXPacker layout manager,
# it provides the same layout behavior as FXPacker.
#
class FXSpring < FXPacker
# Relative width [Integer]
attr_accessor :relativeWidth
# Relative height [Integer]
attr_accessor :relativeHeight
#
# Return an initialized FXSpring instance.
#
# ==== Parameters:
#
# +p+:: the parent widget for this spring [FXComposite]
# +relw+:: the relative width [Integer]
# +relh+:: the relative height [Integer]
# +opts+:: the options [Integer]
# +x+:: initial x-position [Integer]
# +y+:: initial y-position [Integer]
# +width+:: initial width [Integer]
# +height+:: initial height [Integer]
# +padLeft+:: left-side padding (in pixels) [Integer]
# +padRight+:: right-side padding (in pixels) [Integer]
# +padTop+:: top-side padding (in pixels) [Integer]
# +padBottom+:: bottom-side padding (in pixels) [Integer]
# +hSpacing+:: horizontal spacing (in pixels) [Integer]
# +vSpacing+:: vertical spacing (in pixels) [Integer]
#
def initialize(p, opts=0, relw=0, relh=0, x=0, y=0, width=0, height=0, padLeft=DEFAULT_SPACING, padRight=DEFAULT_SPACING, padTop=DEFAULT_SPACING, padBottom=DEFAULT_SPACING, hSpacing=DEFAULT_SPACING, vSpacing=DEFAULT_SPACING) # :yields: theSpring
end
end
end