module Fzeet::ListBoxMethods

Public Instance Methods

[](i) click to toggle source
# File lib/fzeet/windows/user/Control/ListBox.rb, line 104
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(items) click to toggle source
# File lib/fzeet/windows/user/Control/ListBox.rb, line 120
def append(items)
        [*items].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() click to toggle source
# File lib/fzeet/windows/user/Control/ListBox.rb, line 118
def clear; sendmsg(:resetcontent); self end
each() { |self| ... } click to toggle source
# File lib/fzeet/windows/user/Control/ListBox.rb, line 144
def each; length.times { |i| yield self[i] }; self end
length() click to toggle source
# File lib/fzeet/windows/user/Control/ListBox.rb, line 143
def length; raise 'GETCOUNT failed.' if (len = sendmsg(:getcount)) == -1; len end
selected=(i) click to toggle source
# File lib/fzeet/windows/user/Control/ListBox.rb, line 130
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) click to toggle source
# File lib/fzeet/windows/user/Control/ListBox.rb, line 102
def textlen(i) raise "GETTEXTLEN failed." if (len = sendmsg(:gettextlen, i)) == -1; len end