module Fzeet::ListViewMethods

Public Instance Methods

clear() click to toggle source
# File lib/fzeet/windows/comctl/ListView.rb, line 427
def clear; sendmsg(:deleteallitems); self end
insertColumn(i, text, width) click to toggle source
# File lib/fzeet/windows/comctl/ListView.rb, line 363
def insertColumn(i, text, width)
        lvc = Windows::LVCOLUMN.new

        lvc[:mask] = Fzeet.flags([:fmt, :width, :text, :subitem], :lvcf_)
        lvc[:fmt] = Fzeet.flags(:left, :lvcfmt_)
        lvc[:cx] = width
        lvc[:pszText] = ptext = FFI::MemoryPointer.from_string(text)
        lvc[:iSubItem] = i

        sendmsg(:insertcolumn, 0, lvc.pointer)

        self
ensure
        ptext.free if ptext
end
insertItem(i, j, text) click to toggle source
# File lib/fzeet/windows/comctl/ListView.rb, line 385
def insertItem(i, j, text)
        lvi = Windows::LVITEM.new

        lvi[:mask] = Fzeet.flags(:text, :lvif_)
        lvi[:iItem] = i
        lvi[:iSubItem] = j
        lvi[:pszText] = ptext = FFI::MemoryPointer.from_string(text)

        if j == 0
                @items << Item.new(lvi)

                lvi[:mask] |= Windows::LVIF_PARAM
                lvi[:lParam] = @items[i].object_id

                sendmsg(:insertitem, 0, lvi.pointer)
        else
                @items[i].subitems << lvi

                sendmsg(:setitem, 0, lvi.pointer)
        end

        @items[i].subitems[j].instance_variable_set(:@text, text)

        class << @items[i].subitems[j]
                attr_reader :text
        end

        self
ensure
        ptext.free if ptext
end
sort(j = 0) { |_id2ref(lParam1).subitems, _id2ref(lParam2).subitems, j| ... } click to toggle source
# File lib/fzeet/windows/comctl/ListView.rb, line 417
def sort(j = 0)
        sendmsg(:sortitems, j,
                FFI::Function.new(:int, [:long, :long, :long], convention: :stdcall) { |lParam1, lParam2, lParamSort|
                        yield ObjectSpace._id2ref(lParam1).subitems[lParamSort], ObjectSpace._id2ref(lParam2).subitems[lParamSort], j
                }
        )

        self
end
xstyle() click to toggle source
# File lib/fzeet/windows/comctl/ListView.rb, line 361
def xstyle; ExStyle.new(self) end
xstyle?(xstyle) click to toggle source
# File lib/fzeet/windows/comctl/ListView.rb, line 360
def xstyle?(xstyle) (sendmsg(:getextendedlistviewstyle) & (xstyle = Fzeet.constant(xstyle, *self.class::Prefix[:xstyle]))) == xstyle end