using System; using System.Drawing; using System.IO; using System.Linq; using System.Windows.Forms; using HeliosDisplayManagement.Steam; namespace HeliosDisplayManagement.UIForms { public partial class SteamGamesForm : Form { public SteamGamesForm() { InitializeComponent(); } public SteamGame SteamGame { get; private set; } private void lv_games_DoubleClick(object sender, EventArgs e) { if (btn_ok.Enabled) btn_ok.PerformClick(); } private void lv_games_SelectedIndexChanged(object sender, EventArgs e) { if (lv_games.SelectedItems.Count > 0) SteamGame = lv_games.SelectedItems[0].Tag as SteamGame; else SteamGame = null; btn_ok.Enabled = SteamGame != null; } private async void SteamGamesForm_Load(object sender, EventArgs e) { foreach ( var game in SteamGame.GetAllOwnedGames().OrderByDescending(game => game.IsInstalled).ThenBy(game => game.Name)) { var iconAddress = await game.GetIcon(); if (!string.IsNullOrWhiteSpace(iconAddress)) try { using (var fileReader = File.OpenRead(iconAddress)) { var icon = new Icon(fileReader, il_games.ImageSize); il_games.Images.Add(icon); } } catch { il_games.Images.Add(Properties.Resources.SteamIcon); } else il_games.Images.Add(Properties.Resources.SteamIcon); if (!Visible) return; lv_games.Items.Add(new ListViewItem { Text = game.Name, Tag = game, ImageIndex = il_games.Images.Count - 1 }); } } } }