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


module Wx

  # This class makes it easy to tell your user that the program is temporarily busy.
  # Normally the main thread should always return to the main loop to continue dispatching events as quickly as possible,
  # hence this class shouldn't be needed. However if the main thread does need to block, this class provides a simple
  # way to at least show this to the user: just call {Wx::BusyInfo.busy} with a block and for the duration of the
  # execution of the block a message window will be shown.
  # For example:
  # ```ruby
  #   BusyInfo.busy('Working, please wait...') do
  #     100000.times { do_a_calculation }
  #   end
  # ```
  # 
  # The displayed window is rather plain by default but can be customized by passing {Wx::BusyInfo.busy} an object of
  # {Wx::BusyInfoFlags} class instead of a simple message. Here is an example:
  # 
  # ```ruby
  #   Wx::BusyInfo.busy(
  #     Wx::BusyInfoFlags.new
  #       .parent(self)
  #       .icon(Wx::ArtProvider.get_icon(Wx::ART_PRINT,Wx::ART_OTHER, [128, 128]))
  #       .title("<b>Printing your document</b>")
  #       .text("Please wait...")
  #       .foreground(Wx::WHITE)
  #       .background(Wx::BLACK)
  #       .transparency(4*Wx::ALPHA_OPAQUE/5)) do |bi|
  #   end
  # ```
  # 
  # This shows that separate title and text can be set, and that simple markup ({Wx::Control#set_label_markup}) can be used in them, and that it's also possible to add an icon and customize the colours and transparency of the window.
  # You may also want to call `Wx.get_app.yield` to refresh the window periodically (in case it had been obscured by other windows, for example) like this:
  # ```ruby
  #   Wx::WindowDisabler.disable do
  #     BusyInfo.busy('Working, please wait...') do
  #       100000.times do |i| 
  #         do_a_calculation }
  #         Wx.get_app.yield if (i % 1000) == 0
  #       end
  #     end
  #   end
  # ```
  # 
  # but take care to not cause undesirable re-entrance when doing it (see {Wx::App#yield} for more details). The simplest way to do it is to use {Wx::WindowDisabler} class as illustrated in the above example.
  # Note that a {Wx::BusyInfo} is always built with the {Wx::STAY_ON_TOP} window style (see {Wx::Frame} window styles for more info).
  # 
  # ===
  # 
  # Category:  Common Dialogs
  # 
  # 
  # @note This class is <b>untracked</b> and should not be derived from nor instances extended!
  class BusyInfo < ::Object
  
    # Update the information text.
    # The text string may contain markup as described in {Wx::Control#set_label_markup}.
    # @param str [String] 
    # @return [void]
    def update_text(str) end
    
    # Same as {Wx::BusyInfo#update_text} but doesn't interpret the string as containing markup.
    # @param str [String] 
    # @return [void]
    def update_label(str) end
    
  end # BusyInfo
  
  # Parameters for {Wx::BusyInfo}.
  # This class exists only in order to make passing attributes to {Wx::BusyInfo} constructor easier and the code doing it more readable.
  # All methods of this class return the reference to the object on which they are called, making it possible to chain them together, e.g. typically you would just create a temporary {Wx::BusyInfoFlags} object and then call the methods corresponding to the attributes you want to set, before finally passing the result to {Wx::BusyInfo} constructor, e.g.: 
  # ```ruby
  #   Wx::BusyInfo.busy(
  #     Wx::BusyInfoFlags.new
  #       .parent(self)
  #       .icon(Wx::ArtProvider.get_icon(Wx::ART_PRINT,Wx::ART_OTHER, [128, 128]))
  #       .title("<b>Printing your document</b>")
  #       .text("Please wait...")
  #       .foreground(Wx::WHITE)
  #       .background(Wx::BLACK)
  #       .transparency(4*Wx::ALPHA_OPAQUE/5)) do |bi|
  #   end
  # ```
  # 
  # 
  # @note This class is <b>untracked</b> and should not be derived from nor instances extended!
  class BusyInfoFlags < ::Object
  
    # Default constructor initializes all attributes to default values.
    # Call the other methods to really fill in the object.
    # @return [Wx::BusyInfoFlags]
    def initialize; end
    
    # Sets the parent for {Wx::BusyInfo}.
    # @param parent [Wx::Window] 
    # @return [Wx::BusyInfoFlags]
    def parent(parent) end
    
    # Sets the icon to show in {Wx::BusyInfo}.
    # @param icon [Wx::Icon] 
    # @return [Wx::BusyInfoFlags]
    def icon(icon) end
    
    # Sets the title, shown prominently in {Wx::BusyInfo} window.
    # The title string may contain markup as described in {Wx::Control#set_label_markup}.
    # @param title [String] 
    # @return [Wx::BusyInfoFlags]
    def title(title) end
    
    # Sets the more detailed text, shown under the title, if any.
    # The text string may contain markup as described in {Wx::Control#set_label_markup}.
    # @param text [String] 
    # @return [Wx::BusyInfoFlags]
    def text(text) end
    
    # Same as {Wx::BusyInfoFlags#text} but doesn't interpret the string as containing markup.
    # This method should be used if the text shown in {Wx::BusyInfo} comes from external source and so may contain characters having special meaning in simple markup, e.g. '<'.
    # @param label [String] 
    # @return [Wx::BusyInfoFlags]
    def label(label) end
    
    # Sets the foreground colour of the title and text strings.
    # @param foreground [Wx::Colour,String,Symbol] 
    # @return [Wx::BusyInfoFlags]
    def foreground(foreground) end
    
    # Sets the background colour of {Wx::BusyInfo} window.
    # @param background [Wx::Colour,String,Symbol] 
    # @return [Wx::BusyInfoFlags]
    def background(background) end
    
    # Sets the transparency of {Wx::BusyInfo} window.
    # 
    # @see Wx::TopLevelWindow#set_transparent 
    # @param alpha [Integer]  Value in {Wx::ALPHA_TRANSPARENT} (0) to {Wx::ALPHA_OPAQUE} (255) range.
    # @return [Wx::BusyInfoFlags]
    def transparency(alpha) end
    
  end # BusyInfoFlags
  

end