plugins/application/lib/application/dialog.rb in redcar-0.9.2 vs plugins/application/lib/application/dialog.rb in redcar-0.10

- old
+ new

@@ -3,45 +3,45 @@ class Dialog # Is the application currently showing a modal dialog? def self.in_dialog? @in_dialog end - + # Do not call def self.in_dialog @in_dialog = true r = yield @in_dialog = false r end - + # Prompt the user with an open file dialog. Returns a path. def self.open_file(options) in_dialog { Redcar.gui.dialog_adapter.open_file(options) } end - + # Prompt the user with an open directory dialog. Returns a path. def self.open_directory(options) in_dialog { Redcar.gui.dialog_adapter.open_directory(options) } end # Prompt the user with an save file dialog. Returns a path. def self.save_file(options) in_dialog { Redcar.gui.dialog_adapter.save_file(options) } end - + # Show a message to the user. Requires a message and # options can be: # # :type should be one of available_message_box_types # :buttons should be one of available_message_box_button_combos # # It will return a symbol representing the button the user clicked on: # # For example: # - # >> Application::Dialog.message_box("YO!", :type => :info, + # >> Application::Dialog.message_box("YO!", :type => :info, # >> :buttons => :yes_no_cancel) # => :yes def self.message_box(text, options={}) if buttons = options[:buttons] and !available_message_box_button_combos.include?(buttons) raise "option :buttons must be in #{available_message_box_button_combos.inspect}" @@ -49,23 +49,23 @@ if type = options[:type] and !available_message_box_types.include?(type) raise "option :type must be in #{available_message_box_button_types.inspect}" end in_dialog { Redcar.gui.dialog_adapter.message_box(text, options) } end - + # Returns the list of valid button combos that can be passed # as an option to message_box. def self.available_message_box_button_combos in_dialog { Redcar.gui.dialog_adapter.available_message_box_button_combos } end - + # Returns the list of valid message box types that can be passed # as an option to message_box def self.available_message_box_types in_dialog { Redcar.gui.dialog_adapter.available_message_box_types } end - + # Show a dialog containing a text entry box to the user, and blocks # until they dismiss it. # # If a block is given, the block is considered an input validator. A return # value of nil from the block means the value is valid, a return value @@ -92,36 +92,79 @@ # # The return value is a hash containing :button and :value. def self.password_input(title, message) in_dialog { Redcar.gui.dialog_adapter.password_input(title, message) } end - + # Shows a tool tip to the user, at the cursor location. # # Allowed locations: # * :cursor - the location of the text cursor in the focussed text widget + # * :below_cursor - on the line directly below :cursor # * :pointer - the location of the mouse pointer + # * character offset - a position in the text # # If :cursor is specified with no open tab, it will default to :pointer. # # @param [String] message # @param [Symbol] location def self.tool_tip(message, location) Redcar.gui.dialog_adapter.tool_tip(message, location) end - + # Shows a popup menu to the user. # # Allowed locations: # * :cursor - the location of the text cursor in the focussed text widget + # * :below_cursor - on the line directly below :cursor # * :pointer - the location of the mouse pointer + # * character offset - a position in the text # # If :cursor is specified with no open tab, it will default to :pointer. # # @param [Redcar::Menu] menu # @param [Symbol] location def self.popup_menu(menu, location) Redcar.gui.dialog_adapter.popup_menu(menu, location) + end + + # Shows a non-modal popup text box to the user which closes + # on keyboard input or lost focus + # + # Allowed locations: + # * :cursor - the location of the text cursor in the focussed text widget + # * :below_cursor - on the line directly below :cursor + # * :pointer - the location of the mouse pointer + # * character offset - a position in the text + # + # If :cursor is specified with no open tab, it will default to :pointer. + # + # @param [String] title + # @param [String] message + # @param [Symbol] location + # @param [Array<Integer>] dimensions - The width and height of the text box + # the width is measured in pixels and the height in rows + def self.popup_text(title, message, location,dimensions=nil) + Redcar.gui.dialog_adapter.popup_text(title,message,location,dimensions) + end + + # Shows a non-modal popup html text box to the user which closes + # on keyboard input + # + # Allowed locations: + # * :cursor - the location of the text cursor in the focussed text widget + # * :below_cursor - on the line directly below :cursor + # * :pointer - the location of the mouse pointer + # * character offset - a position in the text + # + # If :cursor is specified with no open tab, it will default to :pointer. + # + # @param [String] text + # @param [Symbol] location + # @param [Array<Integer>] dimensions - The width and height of the text box + # in pixels + def self.popup_html(text, location, dimensions=nil) + Redcar.gui.dialog_adapter.popup_html(text,location,dimensions) end end end end \ No newline at end of file