Class: Xkbcommon::Context

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(flags = Libxkbcommon::XKB_CONTEXT_NO_FLAGS) ⇒ Context

Returns a new instance of Context.



9
10
11
12
13
# File 'lib/xkbcommon/context.rb', line 9

def initialize(flags = Libxkbcommon::XKB_CONTEXT_NO_FLAGS)
  @to_native = Libxkbcommon.xkb_context_new(flags)

  ObjectSpace.define_finalizer(self, self.class.finalize(to_native))
end

Instance Attribute Details

#to_nativeObject (readonly)

Returns the value of attribute to_native.



15
16
17
# File 'lib/xkbcommon/context.rb', line 15

def to_native
  @to_native
end

Class Method Details

.finalize(native) ⇒ Object



4
5
6
# File 'lib/xkbcommon/context.rb', line 4

def finalize(native)
  Proc.new { Libxkbcommon.xkb_context_unref(native) }
end

Instance Method Details

#default_keymapObject



17
18
19
# File 'lib/xkbcommon/context.rb', line 17

def default_keymap
  keymap_from_names
end

#keymap_from_buffer(buffer, length, format: Libxkbcommon::XKB_KEYMAP_FORMAT_TEXT_V1, flags: Libxkbcommon::XKB_KEYMAP_COMPILE_NO_FLAGS) ⇒ Object



45
46
47
48
49
50
# File 'lib/xkbcommon/context.rb', line 45

def keymap_from_buffer(buffer,
                       length,
                       format: Libxkbcommon::XKB_KEYMAP_FORMAT_TEXT_V1,
                       flags: Libxkbcommon::XKB_KEYMAP_COMPILE_NO_FLAGS)
  Keymap.new(self, Libxkbcommon.xkb_keymap_new_from_buffer(to_native, buffer, length, format, flags))
end

#keymap_from_file(file, format: Libxkbcommon::XKB_KEYMAP_FORMAT_TEXT_V1, flags: Libxkbcommon::XKB_KEYMAP_COMPILE_NO_FLAGS) ⇒ Object



33
34
35
36
37
# File 'lib/xkbcommon/context.rb', line 33

def keymap_from_file(file,
                     format: Libxkbcommon::XKB_KEYMAP_FORMAT_TEXT_V1,
                     flags: Libxkbcommon::XKB_KEYMAP_COMPILE_NO_FLAGS)
  Keymap.new(self, Libxkbcommon.xkb_keymap_new_from_file(to_native, file, format, flags))
end

#keymap_from_names(rules: nil, model: nil, layout: nil, variant: nil, options: nil, flags: Libxkbcommon::XKB_KEYMAP_COMPILE_NO_FLAGS) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/xkbcommon/context.rb', line 21

def keymap_from_names(rules: nil, model: nil, layout: nil, variant: nil, options: nil,
    flags: Libxkbcommon::XKB_KEYMAP_COMPILE_NO_FLAGS)
  names = Libxkbcommon::XkbRuleNames.new
  names.rules = rules if rules
  names.model = model if model
  names.layout = layout if layout
  names.variant = variant if variant
  names.options = options if options

  Keymap.new(self, Libxkbcommon.xkb_keymap_new_from_names(to_native, names, flags))
end

#keymap_from_string(string, format: Libxkbcommon::XKB_KEYMAP_FORMAT_TEXT_V1, flags: Libxkbcommon::XKB_KEYMAP_COMPILE_NO_FLAGS) ⇒ Object



39
40
41
42
43
# File 'lib/xkbcommon/context.rb', line 39

def keymap_from_string(string,
                       format: Libxkbcommon::XKB_KEYMAP_FORMAT_TEXT_V1,
                       flags: Libxkbcommon::XKB_KEYMAP_COMPILE_NO_FLAGS)
  Keymap.new(self, Libxkbcommon.xkb_keymap_new_from_string(to_native, string, format, flags))
end