Class: Xkbcommon::Symbol

Inherits:
Object
  • Object
show all
Defined in:
lib/xkbcommon/symbol.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(keymap, keysym) ⇒ Symbol

Returns a new instance of Symbol.



3
4
5
# File 'lib/xkbcommon/symbol.rb', line 3

def initialize(keymap, keysym)
  @keymap, @keysym = keymap, keysym
end

Instance Attribute Details

#keymapObject (readonly)

Returns the value of attribute keymap.



7
8
9
# File 'lib/xkbcommon/symbol.rb', line 7

def keymap
  @keymap
end

#keysObject

Returns the value of attribute keys.



7
8
9
# File 'lib/xkbcommon/symbol.rb', line 7

def keys
  @keys
end

#keysymObject (readonly)

Returns the value of attribute keysym.



7
8
9
# File 'lib/xkbcommon/symbol.rb', line 7

def keysym
  @keysym
end

Instance Method Details

#characterObject



23
24
25
26
27
28
29
30
# File 'lib/xkbcommon/symbol.rb', line 23

def character
  @character ||= begin
    char_size = 8
    char = FFI::MemoryPointer.new(:char, char_size)
    Libxkbcommon.xkb_keysym_to_utf8(@keysym, char, char_size)
    char.read_string.force_encoding('UTF-8')
  end
end

#inspectObject



32
33
34
# File 'lib/xkbcommon/symbol.rb', line 32

def inspect
  "#<#{self.class.name}:0x#{'%014x' % __id__} @name=#{name.inspect} @character=#{character.inspect} @keys=#{keys.map(&:code).inspect}>"
end

#nameObject



14
15
16
17
18
19
20
21
# File 'lib/xkbcommon/symbol.rb', line 14

def name
  @name ||= begin
    char_size = 64
    char = FFI::MemoryPointer.new(:char, char_size)
    Libxkbcommon.xkb_keysym_get_name(@keysym, char, char_size)
    char.read_string.to_sym
  end
end