Sha256: 5e1b6422506119c00399481b6eca3ec5f0cb709c0d53e04335618e2f858cd0e2

Contents?: true

Size: 1.89 KB

Versions: 23

Compression:

Stored size: 1.89 KB

Contents

# frozen_string_literal: true

module Vedeu

  module EscapeSequences

    # Provides mouse related escape sequences.
    #
    # The X10 compatibility mode sends an escape sequence on button
    # press encoding the location and the mouse button pressed. It is
    # enabled by sending `\e[?9h` and disabled with `\e[?9l`.
    #
    # On button press, xterm(1) sends `\e[Mbxy` (6 characters).
    # Here b is button-1, and x and y are the x and y coordinates of
    # the mouse when the button was pressed. This is the same code the
    # kernel also produces.
    #
    # Normal tracking mode (not implemented in Linux 2.0.24) sends an
    # escape sequence on both button press and release. Modifier
    # information is also sent. It is enabled by sending `\e[?1000h`
    # and disabled with `\e[?1000l`. On button press or release,
    # xterm(1) sends `\e[Mbxy`. The low two bits of b encode button
    # information: 0=MB1 pressed, 1=MB2 pressed, 2=MB3 pressed,
    # 3=release. The upper bits encode what modifiers were down when
    # the button was pressed and are added together: 4=Shift, 8=Meta,
    # 16=Control. Again x and y are the x and y coordinates of the
    # mouse event. The upper left corner is (1,1).
    #
    # - From CONSOLE_CODES(4) (`man console_codes`)
    #
    module Mouse

      extend self

      # @return [String]
      def disable_mouse
        return mouse_x10_off if Vedeu.config.mouse?

        ''
      end

      # @return [String]
      def enable_mouse
        return mouse_x10_on if Vedeu.config.mouse?

        ''
      end

      # @return [String]
      def mouse_x10_on
        "\e[?9h"
      end

      # @return [String]
      def mouse_x10_off
        "\e[?9l"
      end

      # @return [String]
      def mouse_on
        "\e[?1000h"
      end

      # @return [String]
      def mouse_off
        "\e[?1000l"
      end

    end # Mouse

  end # EscapeSequences

end # Vedeu

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
vedeu-0.8.25 lib/vedeu/esc/mouse.rb
vedeu-0.8.24 lib/vedeu/esc/mouse.rb
vedeu-0.8.23 lib/vedeu/esc/mouse.rb
vedeu-0.8.22 lib/vedeu/esc/mouse.rb
vedeu-0.8.21 lib/vedeu/esc/mouse.rb
vedeu-0.8.20 lib/vedeu/esc/mouse.rb
vedeu-0.8.19 lib/vedeu/esc/mouse.rb
vedeu-0.8.18 lib/vedeu/esc/mouse.rb
vedeu-0.8.17 lib/vedeu/esc/mouse.rb
vedeu-0.8.16 lib/vedeu/esc/mouse.rb
vedeu-0.8.15 lib/vedeu/esc/mouse.rb
vedeu-0.8.14 lib/vedeu/esc/mouse.rb
vedeu-0.8.13 lib/vedeu/esc/mouse.rb
vedeu-0.8.12 lib/vedeu/esc/mouse.rb
vedeu-0.8.10 lib/vedeu/esc/mouse.rb
vedeu-0.8.9 lib/vedeu/esc/mouse.rb
vedeu-0.8.8 lib/vedeu/esc/mouse.rb
vedeu-0.8.7 lib/vedeu/esc/mouse.rb
vedeu-0.8.6 lib/vedeu/esc/mouse.rb
vedeu-0.8.5 lib/vedeu/esc/mouse.rb