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