提案 #1258 » 1258-2.patch
core/plugin/extract/extract_tab_list.rb | ||
---|---|---|
GdkPixbuf::Pixbuf, # icon
|
||
String, # name
|
||
Numeric, # id
|
||
GdkPixbuf::Pixbuf, # sound
|
||
GdkPixbuf::Pixbuf # popup
|
||
String, # sound
|
||
String # popup
|
||
))
|
||
append_column Gtk::TreeViewColumn.new(
|
||
... | ... | |
append_column Gtk::TreeViewColumn.new(
|
||
'',
|
||
Gtk::CellRendererPixbuf.new,
|
||
pixbuf: COL_SOUND
|
||
icon_name: COL_SOUND
|
||
)
|
||
append_column Gtk::TreeViewColumn.new(
|
||
'',
|
||
Gtk::CellRendererPixbuf.new,
|
||
pixbuf: COL_POPUP
|
||
icon_name: COL_POPUP
|
||
)
|
||
extract_tabs.each(&method(:add_record))
|
||
... | ... | |
# [record] 参照するレコード (Hash)
|
||
def setup_iter(iter, record)
|
||
size = { width: ICON_SIZE, height: ICON_SIZE }
|
||
set_icon = lambda { |col, photo|
|
||
iter[col] = photo.load_pixbuf(**size) do |pb|
|
||
iter[col] = pb unless destroyed?
|
||
end
|
||
}
|
||
iter[COL_NAME] = record[:name]
|
||
iter[COL_ID] = record[:id]
|
||
... | ... | |
photo = Enumerator.new do |y|
|
||
Plugin.filtering :photo_filter, record[:icon], y
|
||
end.first
|
||
set_icon.call COL_ICON, photo
|
||
end
|
||
if record[:sound].to_s.empty?
|
||
# FIXME: 適当なアイコンを標準スキンに入れる
|
||
set_icon.call COL_SOUND, Skin['speaker-x.png']
|
||
else
|
||
set_icon.call COL_SOUND, Skin['speaker-l.png']
|
||
end
|
||
if record[:popup]
|
||
# FIXME: 適当なアイコンを標準スキンに入れる
|
||
set_icon.call COL_POPUP, Skin['popup.png']
|
||
else
|
||
set_icon.call COL_POPUP, Skin['no-popup.png']
|
||
iter[COL_ICON] = photo.load_pixbuf(**size) do |pb|
|
||
iter[COL_ICON] = pb unless destroyed?
|
||
end
|
||
end
|
||
iter[COL_SOUND] = if record[:sound].to_s.empty?
|
||
'audio-volume-muted-symbolic'
|
||
else
|
||
'audio-volume-high-symbolic'
|
||
end
|
||
iter[COL_POPUP] = if record[:popup]
|
||
'dialog-information-symbolic'
|
||
else
|
||
''
|
||
end
|
||
end
|
||
def gen_uniq_id(uniq_id = Time.now.to_i)
|