# :stopdoc:
# This file is automatically generated by the WXRuby3 documentation 
# generator. Do not alter this file.
# :startdoc:


module Wx

  # A panel is a window on which controls are placed.
  # It is usually placed within a frame. Its main feature over its parent class {Wx::Window} is code for handling child windows and TAB traversal, which is implemented natively if possible (e.g. in wxGTK) or by wxWidgets itself otherwise.
  # Tab traversal is implemented through an otherwise undocumented intermediate {Wx::ControlContainer} class from which any class can derive in addition to the normal {Wx::Window} base class. Please see <code>Wx::/containr.h</code> and <code>Wx::/panel.h</code> to find out how this is achieved.
  # 
  # if not all characters are being intercepted by your OnKeyDown or OnChar handler, it may be because you are using the {Wx::TAB_TRAVERSAL} style, which grabs some keypresses for use by child controls.
  # 
  # By default, a panel has the same colouring as a dialog.
  # 
  # === Events emitted by this class
  # 
  # The following event-handler methods redirect the events to member method or handler blocks for {Wx::NavigationKeyEvent} events.
  # Event handler methods for events emitted by this class:
  # 
  # - {Wx::EvtHandler#evt_navigation_key}(meth = nil, &block): Process a navigation key event. 
  # 
  # === 
  # 
  # Category:  Miscellaneous Windows
  # @see Wx::Dialog 
  # 
  # 
  class Panel < Window
  
    # @overload initialize()
    #   Default constructor.
    #   @return [Wx::Panel]
    # @overload initialize(parent, id=Wx::StandardID::ID_ANY, pos=Wx::DEFAULT_POSITION, size=Wx::DEFAULT_SIZE, style=Wx::TAB_TRAVERSAL, name=Wx::PanelNameStr)
    #   Constructor.
    #   
    #   @see Wx::Panel#create 
    #   @param parent [Wx::Window]  The parent window.
    #   @param id [Integer]  An identifier for the panel. {Wx::StandardID::ID_ANY} is taken to mean a default.
    #   @param pos [Array(Integer, Integer), Wx::Point]  The panel position. The value {Wx::DEFAULT_POSITION} indicates a default position, chosen by either the windowing system or wxWidgets, depending on platform.
    #   @param size [Array(Integer, Integer), Wx::Size]  The panel size. The value {Wx::DEFAULT_SIZE} indicates a default size, chosen by either the windowing system or wxWidgets, depending on platform.
    #   @param style [Integer]  The window style. See {Wx::Panel}.
    #   @param name [String]  Window name.
    #   @return [Wx::Panel]
    def initialize(*args) end
    
    # This method is overridden from {Wx::Window#accepts_focus} and returns true only if there is no child window in the panel which can accept the focus.
    # This is reevaluated each time a child window is added or removed from the panel.
    # @return [Boolean]
    def accepts_focus; end
    
    # Used for two-step panel construction.
    # See {Wx::Panel#initialize} for details.
    # @param parent [Wx::Window] 
    # @param id [Integer] 
    # @param pos [Array(Integer, Integer), Wx::Point] 
    # @param size [Array(Integer, Integer), Wx::Size] 
    # @param style [Integer] 
    # @param name [String] 
    # @return [Boolean]
    def create(parent, id=Wx::StandardID::ID_ANY, pos=Wx::DEFAULT_POSITION, size=Wx::DEFAULT_SIZE, style=Wx::TAB_TRAVERSAL, name=Wx::PanelNameStr) end
    
    # Sends a {Wx::InitDialogEvent}, which in turn transfers data to the dialog via validators.
    # 
    # @see Wx::InitDialogEvent 
    # @return [void]
    def init_dialog; end
    
    # See {Wx::Window#set_auto_layout}: when auto layout is on, this function gets called automatically when the window is resized.
    # @return [Boolean]
    def layout; end
    
    # The default handler for {Wx::EVT_SYS_COLOUR_CHANGED}.
    # Changes the panel's colour to conform to the current settings. Add an event table entry for your panel class if you wish the behaviour to be different (such as keeping a user-defined background colour). If you do override this function, call {Wx::Event#skip} to propagate the notification to child windows and controls.
    # @see Wx::SysColourChangedEvent 
    # @param event [Wx::SysColourChangedEvent]  The colour change event.
    # @return [void]
    def on_sys_colour_changed(event) end
    
    # Overrides {Wx::Window#set_focus}.
    # This method uses the (undocumented) mix-in class {Wx::ControlContainer} which manages the focus and TAB logic for controls which usually have child controls.
    # In practice, if you call this method and the control has at least one child window, the focus will be given to the child window.
    # @see Wx::FocusEvent
    # @see  Wx::Window#set_focus 
    # @return [void]
    def set_focus; end
    
    # In contrast to {Wx::Panel#set_focus} (see above) this will set the focus to the panel even if there are child windows in the panel.
    # This is only rarely needed.
    # @return [void]
    def set_focus_ignoring_children; end
    
  end # Panel
  

end