mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2025-12-15 08:42:34 +00:00
87 lines
3.0 KiB
Ruby
87 lines
3.0 KiB
Ruby
class W3DHub
|
|
class Pages
|
|
class DownloadManager < Page
|
|
attr_reader :operation_info
|
|
|
|
def setup
|
|
@operation_info ||= {}
|
|
task = Store.application_manager.current_task
|
|
|
|
unless task
|
|
body.clear do
|
|
stack(width: 1.0, height: 1.0) do
|
|
background 0xaa_252525
|
|
|
|
tagline "No operations pending.", width: 1.0, text_align: :center, margin: 128
|
|
end
|
|
end
|
|
|
|
return
|
|
end
|
|
|
|
regenerate(task)
|
|
end
|
|
|
|
def regenerate(task)
|
|
@operation_info[:___step] = task.status.step
|
|
|
|
body.clear do
|
|
stack(width: 1.0, height: 1.0) do
|
|
background 0xaa_252525
|
|
|
|
# TODO: Show correct application details here
|
|
flow(width: 1.0, height: 0.1, padding: 8) do
|
|
app_color = Gosu::Color.new(task.application.color)
|
|
app_color.alpha = 0x88
|
|
background app_color
|
|
|
|
flow(width: 0.70, height: 1.0) do
|
|
image_path = File.exist?("#{CACHE_PATH}/#{task.app_id}.png") ? "#{CACHE_PATH}/#{task.app_id}.png" : "#{GAME_ROOT_PATH}/media/icons/default_icon.png"
|
|
@application_image = image image_path, height: 1.0
|
|
|
|
stack(margin_left: 8, width: 0.75) do
|
|
@application_name_label = tagline "#{task.application.name}"
|
|
@application_version_label = para "Version: #{task.target_version} (#{task.channel.id})"
|
|
end
|
|
end
|
|
|
|
flow(width: 0.30, height: 1.0) do
|
|
stack(width: 0.499, height: 1.0) do
|
|
para "Download Speed", width: 1.0, text_align: :center
|
|
@download_speed_label = para "- b/s", width: 1.0, text_align: :center
|
|
end
|
|
|
|
stack(width: 0.5, height: 1.0) do
|
|
para "Downloaded", width: 1.0, text_align: :center
|
|
para "---- b / ---- b", width: 1.0, text_align: :center
|
|
end
|
|
end
|
|
end
|
|
|
|
# Operations
|
|
@operations_container = stack(width: 1.0, height: 0.9, padding: 8, scroll: true) do
|
|
# TODO: Show actual list of downloads
|
|
|
|
i = -1
|
|
task.status.operations.each do |key, operation|
|
|
i += 1
|
|
|
|
stack(width: 1.0, height: 26, padding: 8) do
|
|
background 0xaa_333333 if i.odd?
|
|
|
|
flow(width: 1.0, height: 22) do
|
|
@operation_info["#{key}_name"] = para operation.label, width: 0.7, text_wrap: :none, tag: "#{key}_name"
|
|
@operation_info["#{key}_status"] = para operation.value, width: 0.3, text_align: :right, text_wrap: :none, tag: "#{key}_status"
|
|
end
|
|
|
|
@operation_info["#{key}_progress"] = progress fraction: operation.progress, height: 2, width: 1.0, margin_top: 2, tag: "#{key}_progress"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|