プロジェクト

全般

プロフィール

提案 #1381 » 0001-「上にスクロール」「下にスクロール」コマンドを実装.patch

Yuto Tokunaga, 2019-09-15 15:53

差分を表示:

core/mui/cairo_inner_tl.rb
options[:postboxstorage] = postbox end
create_postbox(options) end
def set_cursor_to_display_top
iter = model.iter_first
set_cursor(iter.path, get_column(0), false) if iter end
def get_active_messages
get_active_iterators.map{ |iter| iter[1] } end
core/plugin/command/command.rb
condition: :itself.to_proc,
visible: false,
role: :timeline) do |opt|
opt.widget.scroll_to_top end
Plugin.call :gui_timeline_scroll, opt.widget, :top
end
command(:scroll_up,
name: _('上にスクロール'),
condition: :itself.to_proc,
visible: false,
role: :timeline) do |opt|
Plugin.call :gui_timeline_scroll, opt.widget, :up
end
command(:scroll_down,
name: _('下にスクロール'),
condition: :itself.to_proc,
visible: false,
role: :timeline) do |opt|
Plugin.call :gui_timeline_scroll, opt.widget, :down
end
# フォーカスを _widget_ から _distance_ に移動する
# ==== Args
core/plugin/gtk/gtk.rb
if timeline
timeline.clear end end
on_gui_timeline_scroll_to_top do |i_timeline|
timeline = widgetof(i_timeline)
if timeline
timeline.set_cursor_to_display_top end end
on_gui_timeline_scroll do |i_timeline, msg|
tl = widgetof(i_timeline) or next
case msg
when :top
iter = tl.model.iter_first or next
tl.set_cursor iter.path, nil, false
when :up
rect = tl.visible_rect
x, y = tl.convert_tree_to_bin_window_coords rect.x, rect.y
path, _, _, _ = tl.get_path x, y
path or next
tl.set_cursor path, nil, false
tl.scroll_to_cell path, nil, true, 1, 0
when :down
rect = tl.visible_rect
x, y = tl.convert_tree_to_bin_window_coords rect.x, rect.y + rect.height
path, _, _, _ = tl.get_path x, y
path or next
tl.set_cursor path, nil, false
tl.scroll_to_cell path, nil, true, 0, 0
end
end
on_gui_timeline_move_cursor_to do |i_timeline, message|
tl = widgetof(i_timeline)
    (1-1/1)