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