Sha256: 80c9491d70fa6a339b1c77631417c7f744c2662a7f0e9fd8e5f2370efc0d1ce4

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

module Vedeu

  module Bindings

    # System events relating to movement of interfaces.
    #
    module Movement

      extend self

      # Setup events relating to movement. This method is called by
      # Vedeu.
      #
      # @return [TrueClass]
      def setup!
        directional!
      end

      # @return [TrueClass]
      def setup_aliases!
        %w(down left right up).each do |direction|
          Vedeu.bind_alias(:"_geometry_#{direction}_",
                           :"_view_#{direction}_")
        end
      end

      private

      # :nocov:

      # See {file:docs/events/movement.md#\_view_up_down_left_right_}
      def directional!
        %w(down left right up).each do |direction|
          Vedeu.bind(:"_view_#{direction}_") do |name|
            Vedeu.geometries.by_name(name).send("move_#{direction}")

            Vedeu.trigger(:_clear_)
            Vedeu.trigger(:_refresh_)
            Vedeu.trigger(:_clear_view_, name)
            Vedeu.trigger(:_refresh_view_, name)
          end
        end
      end

      # :nocov:

    end # Movement

  end # Bindings

end # Vedeu

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
vedeu-0.6.29 lib/vedeu/bindings/movement.rb
vedeu-0.6.28 lib/vedeu/bindings/movement.rb