Codebase list ruby-fxruby / run/8a909198-7fff-4596-a78d-571f487fdb51/upstream rdoc-sources / FXSplitter.rb
run/8a909198-7fff-4596-a78d-571f487fdb51/upstream

Tree @run/8a909198-7fff-4596-a78d-571f487fdb51/upstream (Download .tar.gz)

FXSplitter.rb @run/8a909198-7fff-4596-a78d-571f487fdb51/upstreamraw · history · blame

module Fox
  #
  # A splitter window is used to interactively repartition
  # two or more subpanels.
  # Space may be subdivided horizontally (+SPLITTER_HORIZONTAL+, which
  # the default) or vertically (+SPLITTER_VERTICAL+ option).
  # When the splitter is itself resized, the right-most (or bottom-most)
  # child window will be resized unless the splitter window is _reversed_;
  # if the splitter is reversed, the left-most (or top-most) child window
  # will be resized instead.
  # Normally, children are resizable from size 0 upwards; however, if the child
  # in a horizontally-oriented splitter has +LAYOUT_FILL_X+ in combination with
  # +LAYOUT_FIX_WIDTH+, it will not be made smaller than its default width,
  # except when the child is the last visible widget (or first when the
  # +SPLITTER_REVERSED+ option has been passed to the splitter).
  # In a vertically-oriented splitter, children with +LAYOUT_FILL_Y+ and
  # +LAYOUT_FIX_HEIGHT+ behave analogously.
  #
  # === Events
  #
  # The following messages are sent by FXSplitter to its target:
  #
  # +SEL_LEFTBUTTONPRESS+:: sent when the left mouse button goes down; the message data is an FXEvent instance.
  # +SEL_LEFTBUTTONRELEASE+:: sent when the left mouse button goes up; the message data is an FXEvent instance.
  # +SEL_COMMAND+::  sent at the end of a resize operation, to signal that the resize is complete
  # +SEL_CHANGED+::  sent continuously while a resize operation is occurring
  #
  # === Splitter options
  #
  # +SPLITTER_HORIZONTAL+::   Split horizontally
  # +SPLITTER_VERTICAL+::     Split vertically
  # +SPLITTER_REVERSED+::     Reverse-anchored
  # +SPLITTER_TRACKING+::     Track continuous during split
  # +SPLITTER_NORMAL+::       same as +SPLITTER_HORIZONTAL+
  #
  class FXSplitter < FXComposite

    # Splitter style [Integer]
    attr_accessor :splitterStyle

    # Splitter bar size, in pixels [Integer]
    attr_accessor :barSize

    #
    # Return an initialized FXSplitter instance.
    #
    # ==== Parameters:
    #
    # +p+:: the parent widget for this splitter {FXComposite}
    # +opts+:: the options [Integer]
    # +x+:: initial x-position [Integer]
    # +y+:: initial y-position [Integer]
    # +width+:: initial width [Integer]
    # +height+:: initial height [Integer]
    #
    def initialize(p, opts=SPLITTER_NORMAL, x=0, y=0, width=0, height=0) # :yields: theSplitter
    end

    #
    # Return an initialized FXSplitter instance.
    #
    # ==== Parameters:
    #
    # +p+:: the parent widget for this splitter {FXComposite}
    # +target+:: the message target for this splitter {FXObject}
    # +selector+:: the message identifier for this splitter [Integer]
    # +opts+:: the options [Integer]
    # +x+:: initial x-position [Integer]
    # +y+:: initial y-position [Integer]
    # +width+:: initial width [Integer]
    # +height+:: initial height [Integer]
    #
    def initialize(p, tgt, sel, opts=SPLITTER_NORMAL, x=0, y=0, width=0, height=0) # :yields: theSplitter
    end

    #
    # Return size of the panel at index.
    # Raises IndexError if _index_ is out of range.
    #
    def getSplit(index); end

    #
    # Change the size of panel at the given index.
    # Raises IndexError if _index_ is out of range.
    #
    def setSplit(index, size); end
  end
end