# :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