lib/vedeu/bindings/visibility.rb in vedeu-0.4.52 vs lib/vedeu/bindings/visibility.rb in vedeu-0.4.53

- old
+ new

@@ -3,28 +3,132 @@ module Bindings # System events relating to the visibility of cursors or interfaces. # # @api public - # {include:file:docs/events/visibility.md} # :nocov: module Visibility - Vedeu.bind(:_hide_cursor_) { |name| Vedeu::Visibility.hide_cursor(name) } - Vedeu.bind(:_cursor_hide_) { |name| Vedeu.trigger(:_hide_cursor_, name) } - Vedeu.bind(:_show_cursor_) { |name| Vedeu::Visibility.show_cursor(name) } - Vedeu.bind(:_cursor_show_) { |name| Vedeu.trigger(:_show_cursor_, name) } + extend self - Vedeu.bind(:_hide_group_) { |name| Vedeu.trigger(:_clear_group_, name) } - Vedeu.bind(:_show_group_) do |name| - Vedeu.trigger(:_clear_) - Vedeu.trigger(:_refresh_group_, name) + # Setup events relating to visibility. This method is called by Vedeu. + # + # @return [void] + def setup! + hide_cursor! + hide_group! + hide_interface! + show_cursor! + show_group! + show_interface! + toggle_interface! end - Vedeu.bind(:_hide_interface_) { |name| Vedeu.buffers.by_name(name).hide } - Vedeu.bind(:_show_interface_) { |name| Vedeu.buffers.by_name(name).show } - Vedeu.bind(:_toggle_interface_) do |name| - Vedeu.buffers.by_name(name).toggle + private + + # Hide the cursor of the named interface or if a name is not given, the + # interface currently in focus. + # + # @example + # Vedeu.trigger(:_hide_cursor_, name) + # Vedeu.trigger(:_cursor_hide_, name) + # Vedeu.hide_cursor(name) + # + # @return [void] + def hide_cursor! + Vedeu.bind(:_hide_cursor_) do |name| + Vedeu::Visibility.hide_cursor(name) + end + Vedeu.bind(:_cursor_hide_) do |name| + Vedeu.trigger(:_hide_cursor_, name) + end + end + + # Will hide all of the interfaces belonging to the named group. Useful for + # hiding part of that which is currently displaying in the terminal. + + # This may be rarely used, since the action of showing a group will + # effectively clear the terminal and show the new group. + # + # @example + # Vedeu.trigger(:_hide_group_, group_name) + # + # @return [void] + def hide_group! + Vedeu.bind(:_hide_group_) do |name| + Vedeu.trigger(:_clear_group_, name) + end + end + + # Hiding an interface. + # + # @example + # Vedeu.trigger(:_hide_interface_, name) + # + # @return [void] + # @see Vedeu::Buffer#hide + def hide_interface! + Vedeu.bind(:_hide_interface_) do |name| + Vedeu.buffers.by_name(name).hide + end + end + + # Show the cursor of the named interface or if a name is not given, the + # interface currently in focus. + # + # @example + # Vedeu.trigger(:_show_cursor_, name) + # Vedeu.trigger(:_cursor_show_, name) + # Vedeu.show_cursor(name) + # + # @return [void] + def show_cursor! + Vedeu.bind(:_show_cursor_) do |name| + Vedeu::Visibility.show_cursor(name) + end + Vedeu.bind(:_cursor_show_) do |name| + Vedeu.trigger(:_show_cursor_, name) + end + end + + # Will clear the terminal and then show all of the interfaces belonging to + # the named group. + # + # @example + # Vedeu.trigger(:_show_group_, group_name) + # + # @return [void] + def show_group! + Vedeu.bind(:_show_group_) do |name| + Vedeu.trigger(:_clear_) + Vedeu.trigger(:_refresh_group_, name) + end + end + + # Showing an interface. + # + # @example + # Vedeu.trigger(:_show_interface_, name) + # + # @return [void] + # @see Vedeu::Buffer#show + def show_interface! + Vedeu.bind(:_show_interface_) do |name| + Vedeu.buffers.by_name(name).show + end + end + + # Toggling an interface. + # + # @example + # Vedeu.trigger(:_toggle_interface_, name) + # + # @return [void] + # @see Vedeu::Buffer#toggle + def toggle_interface! + Vedeu.bind(:_toggle_interface_) do |name| + Vedeu.buffers.by_name(name).toggle + end end end # Visibility # :nocov: