Module: Fzeet::ListBoxMethods
- Included in:
- ComboBoxMethods, ListBox
- Defined in:
- lib/fzeet/windows/user/Control/ListBox.rb
Instance Method Summary collapse
- #[](i) ⇒ Object
- #append(item) ⇒ Object
- #clear ⇒ Object
- #each ⇒ Object
- #length ⇒ Object
- #selected=(i) ⇒ Object
- #textlen(i) ⇒ Object
Instance Method Details
#[](i) ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/fzeet/windows/user/Control/ListBox.rb', line 82 def [](i) i = sendmsg(:getcursel) if i == :selected return '' if i == -1 || (len = textlen(i) + 1) == 1 ''.tap { |item| FFI::MemoryPointer.new(:char, len) { |buf| raise "GETTEXT failed." if sendmsg(:gettext, i, buf) == -1 item << buf.read_string } } end |
#append(item) ⇒ Object
98 99 100 101 102 103 104 105 106 |
# File 'lib/fzeet/windows/user/Control/ListBox.rb', line 98 def append(item) [*item].each { |item| p = FFI::MemoryPointer.from_string(item.to_s) raise 'ADDSTRING failed.' if [-1, -2].include?(sendmsg(:addstring, 0, p).tap { p.free }) } self end |
#clear ⇒ Object
96 |
# File 'lib/fzeet/windows/user/Control/ListBox.rb', line 96 def clear; sendmsg(:resetcontent); self end |
#each ⇒ Object
122 |
# File 'lib/fzeet/windows/user/Control/ListBox.rb', line 122 def each; length.times { |i| yield self[i] }; self end |
#length ⇒ Object
121 |
# File 'lib/fzeet/windows/user/Control/ListBox.rb', line 121 def length; raise 'GETCOUNT failed.' if (len = sendmsg(:getcount)) == -1; len end |
#selected=(i) ⇒ Object
108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/fzeet/windows/user/Control/ListBox.rb', line 108 def selected=(i) i = case i when -1; 0xffffffff when :first; 0 when :last; length - 1 else i end raise 'SETCURSEL failed.' if sendmsg(:setcursel, i) == -1 && i != 0xffffffff self end |
#textlen(i) ⇒ Object
80 |
# File 'lib/fzeet/windows/user/Control/ListBox.rb', line 80 def textlen(i) raise "GETTEXTLEN failed." if (len = sendmsg(:gettextlen, i)) == -1; len end |