module Fox
#
# A dock bar widget can be docked inside a dock site widget, or floated
# around freely. Users can move, undock, and dock the dock bar widget
# by means of a handle such as a tool bar grip. When docking, the dock
# bar sends a +SEL_DOCKED+ message to its target; when undocking, it sends
# a +SEL_FLOATED+ message. In either case the dock site involved is passed
# as the message data.
#
# === Events
#
# The following messages are sent by FXDockBar to its target:
#
# +SEL_DOCKED+:: sent when the dock bar is docked; the message data is a reference to the new dock site (an FXDockSite instance).
# +SEL_FLOATED+:: sent when the dock bar is undocked; the message data is a reference to the previous dock site.
#
# === Dock Bar Options
#
# +ALLOW_NOWHERE+:: Don't allow docking anywhere
# +ALLOW_TOP+:: Docking at the top only
# +ALLOW_BOTTOM+:: Docking at the bottom only
# +ALLOW_LEFT+:: Docking at the left only
# +ALLOW_RIGHT+:: Docking at the right only
# +ALLOW_HORIZONTAL+:: Docking at the top and bottom
# +ALLOW_VERTICAL+:: Docking at the left and right
# +ALLOW_EVERYWHERE+:: Docking can be everywhere
#
class FXDockBar < FXPacker
# Docking side, one of +LAYOUT_SIDE_LEFT+, +LAYOUT_SIDE_RIGHT+, +LAYOUT_SIDE_TOP+ or +LAYOUT_SIDE_BOTTOM+ [Integer]
attr_accessor :dockingSide
#
# Construct a floatable dock bar, with a default parent _p_ and an
# alternate parent _q_. To allow docking and dragging, the default parent
# _p_ must be of type FXDockSite, and the alternate parent _q_ must be of
# type FXToolBarShell.
# Normally, the dock bar is docked under a window _p_ of type FXDockSite.
# When floated, the toolbar can be docked under window _q_, which is
# usually an kind of FXToolBarShell window.
#
# ==== Parameters:
#
# +p+:: the "dry dock" window for this dock bar [FXComposite]
# +q+:: the "wet dock" window for this dock bar [FXComposite]
# +opts+:: dock bar options [Integer]
# +x+:: initial x-position [Integer]
# +y+:: initial y-position [Integer]
# +width+:: initial width [Integer]
# +height+:: initial height [Integer]
# +padLeft+:: internal padding on the left side, in pixels [Integer]
# +padRight+:: internal padding on the right side, in pixels [Integer]
# +padTop+:: internal padding on the top side, in pixels [Integer]
# +padBottom+:: internal padding on the bottom side, in pixels [Integer]
# +hSpacing+:: horizontal spacing between widgets, in pixels [Integer]
# +vSpacing+:: vertical spacing between widgets, in pixels [Integer]
#
def initialize(p, q, opts=LAYOUT_TOP|LAYOUT_LEFT|LAYOUT_FILL_X, x=0, y=0, width=0, height=0, padLeft=3, padRight=3, padTop=2, padBottom=2, hSpacing=DEFAULT_SPACING, vSpacing=DEFAULT_SPACING) # :yields: theDockBar
end
#
# Construct a non-floatable dock bar.
# The dock bar can not be undocked.
#
# ==== Parameters:
#
# +p+:: the parent window for this dock bar [FXComposite]
# +opts+:: dock bar options [Integer]
# +x+:: initial x-position [Integer]
# +y+:: initial y-position [Integer]
# +width+:: initial width [Integer]
# +height+:: initial height [Integer]
# +padLeft+:: internal padding on the left side, in pixels [Integer]
# +padRight+:: internal padding on the right side, in pixels [Integer]
# +padTop+:: internal padding on the top side, in pixels [Integer]
# +padBottom+:: internal padding on the bottom side, in pixels [Integer]
# +hSpacing+:: horizontal spacing between widgets, in pixels [Integer]
# +vSpacing+:: vertical spacing between widgets, in pixels [Integer]
#
def initialize(p, opts=LAYOUT_TOP|LAYOUT_LEFT|LAYOUT_FILL_X, x=0, y=0, width=0, height=0, padLeft=3, padRight=3, padTop=2, padBottom=2, hSpacing=DEFAULT_SPACING, vSpacing=DEFAULT_SPACING) # :yields: theDockBar
end
# Return +true+ if docked
def docked? ; end
#
# Return +true+ if the dock bar would dock or undock if at locaton (_barx_, _bary_).
#
def insideDock?(docksite, barx, bary); end
#
# Set parent when docked.
# If it was docked, reparent under the new docking window.
#
def dryDock=(dry); end
# Return parent when docked.
def dryDock; end
#
# Set parent when floating.
# If it was undocked, then reparent under the new floating window.
#
def wetDock=(wet); end
# Return parent when floating.
def wetDock; end
#
# Search for dock against given side of main window.
#
def findDockAtSide(side=LAYOUT_SIDE_TOP); end
#
# Search for dock close to coordinates (root_x, root_y).
#
def findDockNear(root_x, root_y); end
#
# Dock the bar against the given side, after some other widget.
# However, if after is -1, it will be docked as the innermost bar just before
# the work-area, while if after is 0, if will be docked as the outermost bar.
#
def dock(docksite, before=nil, notify=false); end
#
# Dock the bar against the given side, near the given position relative
# to the toolbar dock's origin.
#
def dock(docksite, local_x, local_y, notify); end
#
# Undock or float the bar.
# The initial position of the wet dock is a few pixels
# below and to the right of the original docked position.
#
def undock(root_x, root_y, notify=false); end
#
# Change set of sides (a combination of +ALLOW_TOP+, +ALLOW_LEFT+, etc.),
# where docking is allowed. The default is to allow docking on all sides.
#
def allowedSides=(allowed); end
#
# Return set of sides where docking is allowed
#
def allowedSides(); end
end
end