Skip to content
Snippets Groups Projects
FXSpring.rb 2.73 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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