# frozen_string_literal: true

module Cryptum
  module UI
    # This Class is Used to Detect Key Press Events
    class KeyPressEvent
      attr_accessor :key_c,
                    :key_g,
                    :key_r,
                    :key_u,
                    :key_w,
                    :key_x,
                    :key_ansi,
                    :key_down_arrow,
                    :key_end,
                    :key_enter,
                    :key_esc,
                    :key_home,
                    :key_page_down,
                    :key_page_up,
                    :key_tab,
                    :key_up_arrow

    rescue Interrupt, StandardError => e
      # Produce a Stacktrace for anything else
      Cryptum::Log.append(level: :error, msg: e, which_self: self)
    end

    # Display a List of Every UI Module

    public_class_method def self.help
      puts constants.sort
    end
  end
end