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


module Wx

  # 
  STB_SIZEGRIP = 16
  
  # 
  STB_SHOW_TIPS = 32
  
  # 
  STB_ELLIPSIZE_START = 64
  
  # 
  STB_ELLIPSIZE_MIDDLE = 128
  
  # 
  STB_ELLIPSIZE_END = 256
  
  # 
  STB_DEFAULT_STYLE = 65840
  
  # 
  SB_NORMAL = 0
  
  # 
  SB_FLAT = 1
  
  # 
  SB_RAISED = 2
  
  # 
  SB_SUNKEN = 3
  
  # A status bar is a narrow window that can be placed along the bottom of a frame to give small amounts of status information.
  # It can contain one or more fields, one or more of which can be variable length according to the size of the window.
  # {Wx::StatusBar} also maintains an independent stack of status texts for each field (see {Wx::StatusBar#push_status_text} and {Wx::StatusBar#pop_status_text}).
  # Note that in {Wx::StatusBar} context, the terms pane and field are synonyms.
  # === Styles
  # 
  # This class supports the following styles:
  # 
  # - {Wx::STB_SIZEGRIP}: Displays a gripper at the right-hand side of the status bar which can be used to resize the parent window. 
  # 
  # - {Wx::STB_SHOW_TIPS}: Displays tooltips for those panes whose status text has been ellipsized/truncated because the status text doesn't fit the pane width. Note that this style has effect only on wxGTK (with GTK+ >= 2.12) currently. 
  # 
  # - {Wx::STB_ELLIPSIZE_START}: Replace the beginning of the status texts with an ellipsis when the status text widths exceed the status bar pane's widths (uses {Wx::Control.ellipsize}). 
  # 
  # - {Wx::STB_ELLIPSIZE_MIDDLE}: Replace the middle of the status texts with an ellipsis when the status text widths exceed the status bar pane's widths (uses {Wx::Control.ellipsize}). 
  # 
  # - {Wx::STB_ELLIPSIZE_END}: Replace the end of the status texts with an ellipsis when the status text widths exceed the status bar pane's widths (uses {Wx::Control.ellipsize}). 
  # 
  # - {Wx::STB_DEFAULT_STYLE}: The default style: includes <code>wxSTB_SIZEGRIP|wxSTB_SHOW_TIPS|wxSTB_ELLIPSIZE_END|wxFULL_REPAINT_ON_RESIZE</code>. 
  # 
  # It is possible to create controls and other windows on the status bar. Position these windows from an OnSize() event handler.
  # 
  # Notice that only the first 127 characters of a string will be shown in status bar fields under Windows if a proper manifest indicating that the program uses version 6 of common controls library is not used. This is a limitation of the native control on these platforms.
  # 
  # === 
  # 
  # Category:  Miscellaneous Windows
  # @see Wx::StatusBarPane
  # @see  Wx::Frame
  # @see  Status Bar Sample 
  # 
  # 
  class StatusBar < Control
  
    # @overload initialize()
    #   Default ctor.
    #   @return [Wx::StatusBar]
    # @overload initialize(parent, id=Wx::StandardID::ID_ANY, style=Wx::STB_DEFAULT_STYLE, name=Wx::StatusBarNameStr)
    #   Constructor, creating the window.
    #   
    #   @see Wx::StatusBar#create 
    #   @param parent [Wx::Window]  The window parent, usually a frame.
    #   @param id [Integer]  The window identifier. It may take a value of -1 to indicate a default value.
    #   @param style [Integer]  The window style. See {Wx::StatusBar}.
    #   @param name [String]  The name of the window. This parameter is used to associate a name with the item, allowing the application user to set Motif resource values for individual windows.
    #   @return [Wx::StatusBar]
    def initialize(*args) end
    
    # Creates the window, for two-step construction.
    # See {Wx::StatusBar#initialize} for details.
    # @param parent [Wx::Window] 
    # @param id [Integer] 
    # @param style [Integer] 
    # @param name [String] 
    # @return [Boolean]
    def create(parent, id=Wx::StandardID::ID_ANY, style=Wx::STB_DEFAULT_STYLE, name=Wx::StatusBarNameStr) end
    
    # Returns the size and position of a field's internal bounding rectangle.
    # true if the field index is valid, false otherwise.
    # @see Wx::Rect 
    # @param i [Integer]  The field in question.
    # @return [Array(Boolean,Wx::Rect)]
    def get_field_rect(i) end
    alias_method :field_rect, :get_field_rect
    
    # Returns the number of fields in the status bar.
    # @return [Integer]
    def get_fields_count; end
    alias_method :fields_count, :get_fields_count
    
    # Returns the {Wx::StatusBarPane} representing the n-th field.
    # @param n [Integer] 
    # @return [Wx::StatusBarPane]
    def get_field(n) end
    alias_method :field, :get_field
    
    # Returns the horizontal and vertical borders used when rendering the field text inside the field area.
    # Note that the rect returned by {Wx::StatusBar#get_field_rect} already accounts for the presence of horizontal and vertical border returned by this function.
    # @return [Wx::Size]
    def get_borders; end
    alias_method :borders, :get_borders
    
    # Returns the string associated with a status bar field.
    # The status field string if the field is valid, otherwise the empty string.
    # @see Wx::StatusBar#set_status_text 
    # @param i [Integer]  The number of the status field to retrieve, starting from zero.
    # @return [String]
    def get_status_text(i=0) end
    alias_method :status_text, :get_status_text
    
    # Returns the width of the n-th field.
    # See {Wx::StatusBarPane#get_width} for more info.
    # @param n [Integer] 
    # @return [Integer]
    def get_status_width(n) end
    alias_method :status_width, :get_status_width
    
    # Returns the style of the n-th field.
    # See {Wx::StatusBarPane#get_style} for more info.
    # @param n [Integer] 
    # @return [Integer]
    def get_status_style(n) end
    alias_method :status_style, :get_status_style
    
    # Restores the text to the value it had before the last call to {Wx::StatusBar#push_status_text}.
    # Notice that if {Wx::StatusBar#set_status_text} had been called in the meanwhile, {Wx::StatusBar#pop_status_text} will not change the text, i.e. it does not override explicit changes to status text but only restores the saved text if it hadn't been changed since.
    # @see Wx::StatusBar#push_status_text 
    # @param field [Integer] 
    # @return [void]
    def pop_status_text(field=0) end
    
    # Saves the current field text in a per-field stack, and sets the field text to the string passed as argument.
    # 
    # @see Wx::StatusBar#pop_status_text 
    # @param string [String] 
    # @param field [Integer] 
    # @return [void]
    def push_status_text(string, field=0) end
    
    # Sets the number of fields, and optionally the field widths.
    # @param number [Integer]  The number of fields. If this is greater than the previous number, then new fields with empty strings will be added to the status bar.
    # @param widths [Array<Integer>]  An array of n integers interpreted in the same way as in {Wx::StatusBar#set_status_widths}.
    # @return [void]
    def set_fields_count(number=1, widths=nil) end
    alias_method :fields_count=, :set_fields_count
    
    # Sets the minimal possible height for the status bar.
    # The real height may be bigger than the height specified here depending on the size of the font used by the status bar.
    # @param height [Integer] 
    # @return [void]
    def set_min_height(height) end
    alias_method :min_height=, :set_min_height
    
    # Sets the styles of the fields in the status line which can make fields appear flat or raised instead of the standard sunken 3D border.
    # @param styles [Array<Integer>]  Contains an array of n integers with the styles for each field. There are four possible styles:
    #   
    #   - {Wx::SB_NORMAL} (default): The field appears with the default native border.
    #   - {Wx::SB_FLAT}: No border is painted around the field so that it appears flat.
    #   - {Wx::SB_RAISED}: A raised 3D border is painted around the field.
    #   - {Wx::SB_SUNKEN}: A sunken 3D border is painted around the field (this style is new since wxWidgets 2.9.5).
    # @return [void]
    def set_status_styles(styles) end
    
    # Sets the status text for the i-th field.
    # The given text will replace the current text. The display of the status bar is updated immediately, so there is no need to call {Wx::Window#update} after calling this function.
    # Note that if {Wx::StatusBar#push_status_text} had been called before the new text will also replace the last saved value to make sure that the next call to {Wx::StatusBar#pop_status_text} doesn't restore the old value, which was overwritten by the call to this function.
    # @see Wx::StatusBar#get_status_text
    # @see  Wx::Frame#set_status_text 
    # @param text [String]  The text to be set. Use an empty string ("") to clear the field.
    # @param i [Integer]  The field to set, starting from zero.
    # @return [void]
    def set_status_text(text, i=0) end
    alias_method :status_text=, :set_status_text
    
    # Sets the widths of the fields in the status line.
    # There are two types of fields: <b>fixed</b> widths and <b>variable</b> width fields. For the fixed width fields you should specify their (constant) width in pixels. For the variable width fields, specify a negative number which indicates how the field should expand: the space left for all variable width fields is divided between them according to the absolute value of this number. A variable width field with width of -2 gets twice as much of it as a field with width -1 and so on.
    # For example, to create one fixed width field of width 100 in the right part of the status bar and two more fields which get 66% and 33% of the remaining space correspondingly, you should use an array containing -2, -1 and 100.
    # 
    # The widths of the variable fields are calculated from the total width of all fields, minus the sum of widths of the non-variable fields, divided by the number of variable fields.
    # @see Wx::StatusBar#set_fields_count
    # @see  Wx::Frame#set_status_widths 
    # @param widths_field [Array<Integer>]  Contains an array of n integers, each of which is either an absolute status field width in pixels if positive or indicates a variable width field if negative. The special value NULL means that all fields should get the same width.
    # @return [void]
    def set_status_widths(widths_field) end
    
  end # StatusBar
  
  # A status bar pane data container used by {Wx::StatusBar}.
  # === 
  # 
  # Category:  Data Structures
  # @see Wx::StatusBar 
  # 
  # 
  # 
  # @note This class is <b>untracked</b> and should not be derived from nor instances extended!
  class StatusBarPane < ::Object
  
    # Constructs the pane with the given style and width.
    # @param style [Integer] 
    # @param width [Integer] 
    # @return [Wx::StatusBarPane]
    def initialize(style=Wx::SB_NORMAL, width=0) end
    
    # Returns the pane width; it maybe negative, indicating a variable-width field.
    # @return [Integer]
    def get_width; end
    alias_method :width, :get_width
    
    # Returns the pane style.
    # @return [Integer]
    def get_style; end
    alias_method :style, :get_style
    
    # Returns the text currently shown in this pane.
    # @return [String]
    def get_text; end
    alias_method :text, :get_text
    
  end # StatusBarPane
  

end