[WIP] Initial shortcutlibrary form

Created the initial form for the shortcut library
and will now start working on getting the
shortcuts saving to a similar json format as
the display profiles.
This commit is contained in:
temacdonald 2020-05-16 17:07:52 +12:00
parent 423b3fb656
commit d7c4c1f53d
9 changed files with 2442 additions and 85 deletions

View File

@ -82,6 +82,12 @@
<Compile Include="UIForms\MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="UIForms\ShortcutLibraryForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="UIForms\ShortcutLibraryForm.Designer.cs">
<DependentUpon>ShortcutLibraryForm.cs</DependentUpon>
</Compile>
<Compile Include="Validators.cs" />
<Compile Include="DisplayRepresentation.cs" />
<Compile Include="InterProcess\IPCClient.cs" />
@ -143,6 +149,9 @@
<EmbeddedResource Include="UIForms\ApplyingChangesForm.resx">
<DependentUpon>ApplyingChangesForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UIForms\ShortcutLibraryForm.resx">
<DependentUpon>ShortcutLibraryForm.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />

View File

@ -27,10 +27,8 @@ namespace HeliosPlus.UIForms
_profileAdaptor = new ProfileAdaptor();
}
public DisplayProfileForm(Profile profileToLoad)
public DisplayProfileForm(Profile profileToLoad) : this()
{
InitializeComponent();
this.AcceptButton = this.btn_save_or_rename;
_profileToLoad = profileToLoad;
}

View File

@ -49,8 +49,8 @@ namespace HeliosPlus.UIForms
private void btn_setup_game_shortcuts_Click(object sender, EventArgs e)
{
var shortcutForm = new ShortcutForm();
shortcutForm.ShowDialog(this);
var shortcutLibraryForm = new ShortcutLibraryForm();
shortcutLibraryForm.ShowDialog(this);
}
private void MainForm_Load(object sender, EventArgs e)

View File

@ -74,8 +74,9 @@ namespace HeliosPlus.UIForms
this.rb_switch_perm = new System.Windows.Forms.RadioButton();
this.rb_switch_temp = new System.Windows.Forms.RadioButton();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.lbl_profile = new System.Windows.Forms.Label();
this.cb_selected_profile = new System.Windows.Forms.ComboBox();
this.ilv_saved_profiles = new Manina.Windows.Forms.ImageListView();
this.lbl_profile_shown_subtitle = new System.Windows.Forms.Label();
this.lbl_profile_shown = new System.Windows.Forms.Label();
this.g_temporary.SuspendLayout();
this.p_game.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.nud_timeout_game)).BeginInit();
@ -86,9 +87,11 @@ namespace HeliosPlus.UIForms
// btn_save
//
this.btn_save.Enabled = false;
this.btn_save.Location = new System.Drawing.Point(602, 859);
this.btn_save.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_save.ForeColor = System.Drawing.Color.White;
this.btn_save.Location = new System.Drawing.Point(602, 985);
this.btn_save.Name = "btn_save";
this.btn_save.Size = new System.Drawing.Size(94, 23);
this.btn_save.Size = new System.Drawing.Size(94, 25);
this.btn_save.TabIndex = 6;
this.btn_save.Text = "&Create Shortcut";
this.btn_save.UseVisualStyleBackColor = true;
@ -97,12 +100,15 @@ namespace HeliosPlus.UIForms
// btn_cancel
//
this.btn_cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btn_cancel.Location = new System.Drawing.Point(704, 859);
this.btn_cancel.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_cancel.ForeColor = System.Drawing.Color.White;
this.btn_cancel.Location = new System.Drawing.Point(704, 985);
this.btn_cancel.Name = "btn_cancel";
this.btn_cancel.Size = new System.Drawing.Size(94, 23);
this.btn_cancel.Size = new System.Drawing.Size(94, 25);
this.btn_cancel.TabIndex = 5;
this.btn_cancel.Text = "&Back";
this.btn_cancel.UseVisualStyleBackColor = true;
this.btn_cancel.Click += new System.EventHandler(this.btn_back_Click);
//
// g_temporary
//
@ -110,9 +116,9 @@ namespace HeliosPlus.UIForms
this.g_temporary.Controls.Add(this.p_standalone);
this.g_temporary.Controls.Add(this.rb_launcher);
this.g_temporary.Controls.Add(this.rb_standalone);
this.g_temporary.Location = new System.Drawing.Point(12, 388);
this.g_temporary.Location = new System.Drawing.Point(12, 514);
this.g_temporary.Name = "g_temporary";
this.g_temporary.Size = new System.Drawing.Size(786, 465);
this.g_temporary.Size = new System.Drawing.Size(1161, 467);
this.g_temporary.TabIndex = 4;
this.g_temporary.TabStop = false;
this.g_temporary.Text = "Application or Game Information";
@ -164,6 +170,7 @@ namespace HeliosPlus.UIForms
// label6
//
this.label6.AutoSize = true;
this.label6.ForeColor = System.Drawing.Color.White;
this.label6.Location = new System.Drawing.Point(323, 81);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(86, 13);
@ -173,6 +180,7 @@ namespace HeliosPlus.UIForms
// label4
//
this.label4.AutoSize = true;
this.label4.ForeColor = System.Drawing.Color.White;
this.label4.Location = new System.Drawing.Point(340, 136);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(69, 13);
@ -194,6 +202,7 @@ namespace HeliosPlus.UIForms
//
this.label1.AutoSize = true;
this.label1.BackColor = System.Drawing.Color.Transparent;
this.label1.ForeColor = System.Drawing.Color.White;
this.label1.Location = new System.Drawing.Point(70, 7);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(88, 13);
@ -212,6 +221,7 @@ namespace HeliosPlus.UIForms
// cb_args_game
//
this.cb_args_game.AutoSize = true;
this.cb_args_game.ForeColor = System.Drawing.Color.White;
this.cb_args_game.Location = new System.Drawing.Point(265, 162);
this.cb_args_game.Name = "cb_args_game";
this.cb_args_game.Size = new System.Drawing.Size(147, 17);
@ -224,6 +234,7 @@ namespace HeliosPlus.UIForms
// label5
//
this.label5.AutoSize = true;
this.label5.ForeColor = System.Drawing.Color.White;
this.label5.Location = new System.Drawing.Point(589, 80);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(48, 13);
@ -255,6 +266,7 @@ namespace HeliosPlus.UIForms
// label3
//
this.label3.AutoSize = true;
this.label3.ForeColor = System.Drawing.Color.White;
this.label3.Location = new System.Drawing.Point(357, 107);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(52, 13);
@ -305,6 +317,7 @@ namespace HeliosPlus.UIForms
// lbl_process_name
//
this.lbl_process_name.AutoSize = true;
this.lbl_process_name.ForeColor = System.Drawing.Color.White;
this.lbl_process_name.Location = new System.Drawing.Point(357, 57);
this.lbl_process_name.Name = "lbl_process_name";
this.lbl_process_name.Size = new System.Drawing.Size(97, 13);
@ -322,6 +335,7 @@ namespace HeliosPlus.UIForms
// cb_args_executable
//
this.cb_args_executable.AutoSize = true;
this.cb_args_executable.ForeColor = System.Drawing.Color.White;
this.cb_args_executable.Location = new System.Drawing.Point(23, 85);
this.cb_args_executable.Name = "cb_args_executable";
this.cb_args_executable.Size = new System.Drawing.Size(172, 17);
@ -352,6 +366,7 @@ namespace HeliosPlus.UIForms
// rb_wait_process
//
this.rb_wait_process.AutoSize = true;
this.rb_wait_process.ForeColor = System.Drawing.Color.White;
this.rb_wait_process.Location = new System.Drawing.Point(6, 55);
this.rb_wait_process.Name = "rb_wait_process";
this.rb_wait_process.Size = new System.Drawing.Size(327, 17);
@ -364,6 +379,7 @@ namespace HeliosPlus.UIForms
//
this.rb_wait_executable.AutoSize = true;
this.rb_wait_executable.Checked = true;
this.rb_wait_executable.ForeColor = System.Drawing.Color.White;
this.rb_wait_executable.Location = new System.Drawing.Point(6, 32);
this.rb_wait_executable.Name = "rb_wait_executable";
this.rb_wait_executable.Size = new System.Drawing.Size(337, 17);
@ -394,6 +410,7 @@ namespace HeliosPlus.UIForms
// lbl_app_executable
//
this.lbl_app_executable.AutoSize = true;
this.lbl_app_executable.ForeColor = System.Drawing.Color.White;
this.lbl_app_executable.Location = new System.Drawing.Point(3, 10);
this.lbl_app_executable.Name = "lbl_app_executable";
this.lbl_app_executable.Size = new System.Drawing.Size(98, 13);
@ -436,6 +453,7 @@ namespace HeliosPlus.UIForms
//
this.rb_launcher.AutoSize = true;
this.rb_launcher.Checked = true;
this.rb_launcher.ForeColor = System.Drawing.Color.White;
this.rb_launcher.Location = new System.Drawing.Point(9, 178);
this.rb_launcher.Name = "rb_launcher";
this.rb_launcher.Size = new System.Drawing.Size(259, 17);
@ -448,6 +466,7 @@ namespace HeliosPlus.UIForms
// rb_standalone
//
this.rb_standalone.AutoSize = true;
this.rb_standalone.ForeColor = System.Drawing.Color.White;
this.rb_standalone.Location = new System.Drawing.Point(9, 19);
this.rb_standalone.Name = "rb_standalone";
this.rb_standalone.Size = new System.Drawing.Size(177, 17);
@ -460,17 +479,17 @@ namespace HeliosPlus.UIForms
//
this.dv_profile.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.dv_profile.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(174)))), ((int)(((byte)(184)))), ((int)(((byte)(196)))));
this.dv_profile.BackColor = System.Drawing.Color.DimGray;
this.dv_profile.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.dv_profile.Font = new System.Drawing.Font("Consolas", 50F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.dv_profile.ForeColor = System.Drawing.Color.MidnightBlue;
this.dv_profile.Location = new System.Drawing.Point(0, 0);
this.dv_profile.Location = new System.Drawing.Point(0, -1);
this.dv_profile.Margin = new System.Windows.Forms.Padding(18);
this.dv_profile.Name = "dv_profile";
this.dv_profile.PaddingX = 100;
this.dv_profile.PaddingY = 100;
this.dv_profile.Profile = null;
this.dv_profile.Size = new System.Drawing.Size(810, 309);
this.dv_profile.Size = new System.Drawing.Size(975, 311);
this.dv_profile.TabIndex = 2;
//
// dialog_open
@ -491,7 +510,8 @@ namespace HeliosPlus.UIForms
// rb_switch_perm
//
this.rb_switch_perm.AutoSize = true;
this.rb_switch_perm.Location = new System.Drawing.Point(16, 330);
this.rb_switch_perm.ForeColor = System.Drawing.Color.White;
this.rb_switch_perm.Location = new System.Drawing.Point(16, 456);
this.rb_switch_perm.Name = "rb_switch_perm";
this.rb_switch_perm.Size = new System.Drawing.Size(216, 17);
this.rb_switch_perm.TabIndex = 7;
@ -503,7 +523,8 @@ namespace HeliosPlus.UIForms
//
this.rb_switch_temp.AutoSize = true;
this.rb_switch_temp.Checked = true;
this.rb_switch_temp.Location = new System.Drawing.Point(16, 353);
this.rb_switch_temp.ForeColor = System.Drawing.Color.White;
this.rb_switch_temp.Location = new System.Drawing.Point(16, 479);
this.rb_switch_temp.Name = "rb_switch_temp";
this.rb_switch_temp.Size = new System.Drawing.Size(381, 17);
this.rb_switch_temp.TabIndex = 8;
@ -517,43 +538,66 @@ namespace HeliosPlus.UIForms
this.openFileDialog1.FileName = "openFileDialog1";
this.openFileDialog1.Title = "Title";
//
// lbl_profile
// ilv_saved_profiles
//
this.lbl_profile.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(174)))), ((int)(((byte)(184)))), ((int)(((byte)(196)))));
this.lbl_profile.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(178)));
this.lbl_profile.Location = new System.Drawing.Point(12, 9);
this.lbl_profile.Name = "lbl_profile";
this.lbl_profile.Size = new System.Drawing.Size(382, 13);
this.lbl_profile.TabIndex = 10;
this.lbl_profile.Text = "[None]";
this.lbl_profile.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.ilv_saved_profiles.AllowCheckBoxClick = false;
this.ilv_saved_profiles.AllowColumnClick = false;
this.ilv_saved_profiles.AllowColumnResize = false;
this.ilv_saved_profiles.AllowItemReorder = false;
this.ilv_saved_profiles.AllowPaneResize = false;
this.ilv_saved_profiles.Location = new System.Drawing.Point(1, 322);
this.ilv_saved_profiles.MultiSelect = false;
this.ilv_saved_profiles.Name = "ilv_saved_profiles";
this.ilv_saved_profiles.PersistentCacheDirectory = "";
this.ilv_saved_profiles.PersistentCacheSize = ((long)(100));
this.ilv_saved_profiles.Size = new System.Drawing.Size(974, 128);
this.ilv_saved_profiles.TabIndex = 22;
this.ilv_saved_profiles.UseWIC = true;
this.ilv_saved_profiles.View = Manina.Windows.Forms.View.HorizontalStrip;
this.ilv_saved_profiles.ItemClick += new Manina.Windows.Forms.ItemClickEventHandler(this.ilv_saved_profiles_ItemClick);
//
// cb_selected_profile
// lbl_profile_shown_subtitle
//
this.cb_selected_profile.FormattingEnabled = true;
this.cb_selected_profile.Location = new System.Drawing.Point(168, 277);
this.cb_selected_profile.Name = "cb_selected_profile";
this.cb_selected_profile.Size = new System.Drawing.Size(203, 21);
this.cb_selected_profile.TabIndex = 11;
this.cb_selected_profile.SelectedIndexChanged += new System.EventHandler(this.cb_selected_profile_SelectedIndexChanged);
this.lbl_profile_shown_subtitle.AutoSize = true;
this.lbl_profile_shown_subtitle.BackColor = System.Drawing.Color.DimGray;
this.lbl_profile_shown_subtitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lbl_profile_shown_subtitle.ForeColor = System.Drawing.Color.White;
this.lbl_profile_shown_subtitle.Location = new System.Drawing.Point(12, 42);
this.lbl_profile_shown_subtitle.Name = "lbl_profile_shown_subtitle";
this.lbl_profile_shown_subtitle.Size = new System.Drawing.Size(132, 20);
this.lbl_profile_shown_subtitle.TabIndex = 24;
this.lbl_profile_shown_subtitle.Text = "My Display Profile";
//
// lbl_profile_shown
//
this.lbl_profile_shown.AutoSize = true;
this.lbl_profile_shown.BackColor = System.Drawing.Color.DimGray;
this.lbl_profile_shown.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lbl_profile_shown.ForeColor = System.Drawing.Color.White;
this.lbl_profile_shown.Location = new System.Drawing.Point(12, 13);
this.lbl_profile_shown.Name = "lbl_profile_shown";
this.lbl_profile_shown.Size = new System.Drawing.Size(205, 29);
this.lbl_profile_shown.TabIndex = 23;
this.lbl_profile_shown.Text = "My Display Profile";
//
// ShortcutForm
//
this.AcceptButton = this.btn_save;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(248)))), ((int)(((byte)(248)))));
this.BackColor = System.Drawing.Color.Black;
this.CancelButton = this.btn_cancel;
this.ClientSize = new System.Drawing.Size(810, 890);
this.Controls.Add(this.cb_selected_profile);
this.Controls.Add(this.lbl_profile);
this.ClientSize = new System.Drawing.Size(975, 1021);
this.Controls.Add(this.lbl_profile_shown_subtitle);
this.Controls.Add(this.lbl_profile_shown);
this.Controls.Add(this.ilv_saved_profiles);
this.Controls.Add(this.rb_switch_temp);
this.Controls.Add(this.rb_switch_perm);
this.Controls.Add(this.g_temporary);
this.Controls.Add(this.btn_cancel);
this.Controls.Add(this.btn_save);
this.Controls.Add(this.dv_profile);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MinimizeBox = false;
@ -613,12 +657,13 @@ namespace HeliosPlus.UIForms
private System.Windows.Forms.OpenFileDialog openFileDialog1;
private System.Windows.Forms.ListView lv_games;
private System.Windows.Forms.Label lbl_process_name;
private System.Windows.Forms.Label lbl_profile;
private System.Windows.Forms.ImageList il_games;
private System.Windows.Forms.ColumnHeader clm_images;
private System.Windows.Forms.ColumnHeader clm_name;
private System.Windows.Forms.TextBox txt_game_id;
private System.Windows.Forms.TextBox txt_game_launcher;
private System.Windows.Forms.ComboBox cb_selected_profile;
private Manina.Windows.Forms.ImageListView ilv_saved_profiles;
private System.Windows.Forms.Label lbl_profile_shown_subtitle;
private System.Windows.Forms.Label lbl_profile_shown;
}
}

View File

@ -11,6 +11,7 @@ using HeliosPlus.Resources;
using HeliosPlus.Shared;
using HeliosPlus.GameLibraries;
using System.Globalization;
using Manina.Windows.Forms;
namespace HeliosPlus.UIForms
{
@ -19,16 +20,21 @@ namespace HeliosPlus.UIForms
List<SteamGame> _allSteamGames;
internal Profile[] _allProfiles;
private Profile _selectedProfile;
private ProfileAdaptor _profileAdaptor;
private static bool _inDialog = false;
private List<Profile> _loadedProfiles = new List<Profile>();
private static Profile _profileToLoad = null;
public ShortcutForm()
{
InitializeComponent();
_profileAdaptor = new ProfileAdaptor();
}
public ShortcutForm(Profile profile) : this()
{
SelectedProfile = profile;
_profileToLoad = profile;
}
public string ProcessNameToMonitor
@ -724,20 +730,46 @@ namespace HeliosPlus.UIForms
}
private void RefreshImageListView(Profile profile)
{
ilv_saved_profiles.ClearSelection();
IEnumerable<ImageListViewItem> matchingImageListViewItems = (from item in ilv_saved_profiles.Items where item.Text == profile.Name select item);
if (matchingImageListViewItems.Any())
{
matchingImageListViewItems.First().Selected = true;
matchingImageListViewItems.First().Focused = true;
}
}
private async void ShortcutForm_Load(object sender, EventArgs e)
{
// Set the Profile name
lbl_profile.Text = $"Selected Profile: {dv_profile.Profile?.Name ?? Language.None}";
// Load all the profiles to prepare things
_loadedProfiles = (List<Profile>)Profile.LoadAllProfiles();
/*// Reload the profiles in case we swapped to another program to change it
ReloadProfiles();
// If nothing is selected then select the currently used profile
if (lv_profiles.SelectedItems.Count == 0)
bool foundCurrentProfileInLoadedProfiles = false;
foreach (Profile loadedProfile in _loadedProfiles)
{
lv_profiles.Items[0].Selected = true;
if (Profile.CurrentProfile.Equals(loadedProfile))
{
// We have already saved the selected profile!
// so we need to show the selected profile
ChangeSelectedProfile(loadedProfile);
foundCurrentProfileInLoadedProfiles = true;
}
*/
}
// If we get to the end of the loaded profiles and haven't
// found a matching profile, then we need to show the current
// Profile
if (!foundCurrentProfileInLoadedProfiles)
ChangeSelectedProfile(Profile.CurrentProfile);
// Refresh the Profile UI
RefreshDisplayProfileUI();
// Start finding the games and loading the Games ListView
List<SteamGame> allSteamGames = SteamGame.GetAllInstalledGames();
_allSteamGames = allSteamGames;
@ -867,43 +899,114 @@ namespace HeliosPlus.UIForms
}
/*private void RefreshProfilesStatus()
private void ilv_saved_profiles_ItemClick(object sender, ItemClickEventArgs e)
{
Profile.RefreshActiveStatus();
lv_profiles.Invalidate();
}
private void ReloadProfiles()
foreach (Profile loadedProfile in _loadedProfiles)
{
Profile.RefreshActiveStatus();
var profiles = Profile.GetAllProfiles().ToArray();
lv_profiles.Items.Clear();
il_profiles.Images.Clear();
if (!profiles.Any(profile => profile.IsActive))
if (loadedProfile.Name == e.Item.Text)
{
AddProfile().Selected = true;
}
foreach (var profile in profiles)
{
AddProfile(profile);
}
lv_profiles.SelectedIndices.Clear();
lv_profiles.Invalidate();
}
*/
private void cb_selected_profile_SelectedIndexChanged(object sender, EventArgs e)
{
foreach (Profile profile in _allProfiles)
{
if (SelectedProfile.Name == cb_selected_profile.SelectedItem.ToString())
{
SelectedProfile = profile;
ChangeSelectedProfile(loadedProfile);
}
}
}
private void ChangeSelectedProfile(Profile profile)
{
// And we need to update the actual selected profile too!
_selectedProfile = profile;
// We also need to load the saved profile name to show the user
lbl_profile_shown.Text = _selectedProfile.Name;
if (_selectedProfile.Equals(Profile.CurrentProfile))
{
lbl_profile_shown_subtitle.Text = "(Current Display Profile in use)";
btn_save.Visible = false;
}
else
{
if (!_selectedProfile.IsPossible)
{
lbl_profile_shown_subtitle.Text = "(Display Profile is not valid so cannot be used)";
btn_save.Visible = false;
}
else
{
lbl_profile_shown_subtitle.Text = "";
btn_save.Visible = true;
}
}
// Refresh the image list view
RefreshImageListView(profile);
// And finally show the profile in the display view
dv_profile.Profile = profile;
dv_profile.Refresh();
}
private void RefreshDisplayProfileUI()
{
if (!_inDialog)
{
if (_loadedProfiles.Count > 0)
{
// Temporarily stop updating the saved_profiles listview
ilv_saved_profiles.SuspendLayout();
ImageListViewItem newItem = null;
bool foundCurrentProfileInLoadedProfiles = false;
foreach (Profile loadedProfile in _loadedProfiles)
{
bool thisLoadedProfileIsAlreadyHere = (from item in ilv_saved_profiles.Items where item.Text == loadedProfile.Name select item.Text).Any();
if (!thisLoadedProfileIsAlreadyHere)
{
//loadedProfile.SaveProfileImageToCache();
//newItem = new ImageListViewItem(loadedProfile.SavedProfileCacheFilename, loadedProfile.Name);
//newItem = new ImageListViewItem(loadedProfile, loadedProfile.Name);
newItem = new ImageListViewItem(loadedProfile, loadedProfile.Name);
//ilv_saved_profiles.Items.Add(newItem);
ilv_saved_profiles.Items.Add(newItem, _profileAdaptor);
}
if (Profile.CurrentProfile.Equals(loadedProfile))
{
// We have already saved the selected profile!
// so we need to show the selected profile
ChangeSelectedProfile(loadedProfile);
foundCurrentProfileInLoadedProfiles = true;
}
}
// If we get to the end of the loaded profiles and haven't
// found a matching profile, then we need to show the current
// Profile
if (!foundCurrentProfileInLoadedProfiles)
ChangeSelectedProfile(Profile.CurrentProfile);
// Check if we were loading a profile to edit
// If so, select that instead of all that other stuff above!
if (_profileToLoad != null)
ChangeSelectedProfile(_profileToLoad);
// Restart updating the saved_profiles listview
ilv_saved_profiles.ResumeLayout();
}
}
else
// Otherwise turn off the dialog mode we were just in
_inDialog = false;
}
private void btn_back_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

View File

@ -130,7 +130,7 @@
<value>373, 24</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>72</value>
<value>36</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

View File

@ -0,0 +1,193 @@
namespace HeliosPlus.UIForms
{
partial class ShortcutLibraryForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ShortcutLibraryForm));
this.ilv_saved_profiles = new Manina.Windows.Forms.ImageListView();
this.btn_delete = new System.Windows.Forms.Button();
this.btn_back = new System.Windows.Forms.Button();
this.btn_run = new System.Windows.Forms.Button();
this.btn_edit = new System.Windows.Forms.Button();
this.btn_new = new System.Windows.Forms.Button();
this.btn_save = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// ilv_saved_profiles
//
this.ilv_saved_profiles.AllowCheckBoxClick = false;
this.ilv_saved_profiles.AllowColumnClick = false;
this.ilv_saved_profiles.AllowColumnResize = false;
this.ilv_saved_profiles.AllowItemReorder = false;
this.ilv_saved_profiles.AllowPaneResize = false;
this.ilv_saved_profiles.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ilv_saved_profiles.Location = new System.Drawing.Point(0, 0);
this.ilv_saved_profiles.MultiSelect = false;
this.ilv_saved_profiles.Name = "ilv_saved_profiles";
this.ilv_saved_profiles.PersistentCacheDirectory = "";
this.ilv_saved_profiles.PersistentCacheSize = ((long)(100));
this.ilv_saved_profiles.Size = new System.Drawing.Size(1122, 743);
this.ilv_saved_profiles.TabIndex = 22;
this.ilv_saved_profiles.UseWIC = true;
this.ilv_saved_profiles.View = Manina.Windows.Forms.View.HorizontalStrip;
//
// btn_delete
//
this.btn_delete.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btn_delete.FlatAppearance.MouseDownBackColor = System.Drawing.Color.IndianRed;
this.btn_delete.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Brown;
this.btn_delete.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_delete.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btn_delete.ForeColor = System.Drawing.Color.White;
this.btn_delete.Location = new System.Drawing.Point(455, 771);
this.btn_delete.Name = "btn_delete";
this.btn_delete.Size = new System.Drawing.Size(120, 40);
this.btn_delete.TabIndex = 26;
this.btn_delete.Text = "&Delete";
this.btn_delete.UseVisualStyleBackColor = true;
this.btn_delete.Visible = false;
//
// btn_back
//
this.btn_back.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btn_back.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btn_back.FlatAppearance.MouseDownBackColor = System.Drawing.Color.IndianRed;
this.btn_back.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Brown;
this.btn_back.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_back.ForeColor = System.Drawing.Color.White;
this.btn_back.Location = new System.Drawing.Point(1036, 804);
this.btn_back.Name = "btn_back";
this.btn_back.Size = new System.Drawing.Size(75, 23);
this.btn_back.TabIndex = 27;
this.btn_back.Text = "&Back";
this.btn_back.UseVisualStyleBackColor = true;
this.btn_back.Click += new System.EventHandler(this.btn_back_Click);
//
// btn_run
//
this.btn_run.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btn_run.BackColor = System.Drawing.Color.Black;
this.btn_run.FlatAppearance.MouseDownBackColor = System.Drawing.Color.IndianRed;
this.btn_run.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Brown;
this.btn_run.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_run.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btn_run.ForeColor = System.Drawing.Color.White;
this.btn_run.Location = new System.Drawing.Point(582, 771);
this.btn_run.Name = "btn_run";
this.btn_run.Size = new System.Drawing.Size(120, 40);
this.btn_run.TabIndex = 25;
this.btn_run.Text = "&Run";
this.btn_run.UseVisualStyleBackColor = false;
this.btn_run.Visible = false;
//
// btn_edit
//
this.btn_edit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btn_edit.BackColor = System.Drawing.Color.Black;
this.btn_edit.FlatAppearance.MouseDownBackColor = System.Drawing.Color.IndianRed;
this.btn_edit.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Brown;
this.btn_edit.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_edit.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btn_edit.ForeColor = System.Drawing.Color.White;
this.btn_edit.Location = new System.Drawing.Point(329, 771);
this.btn_edit.Name = "btn_edit";
this.btn_edit.Size = new System.Drawing.Size(120, 40);
this.btn_edit.TabIndex = 28;
this.btn_edit.Text = "&Edit";
this.btn_edit.UseVisualStyleBackColor = false;
this.btn_edit.Visible = false;
//
// btn_new
//
this.btn_new.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btn_new.BackColor = System.Drawing.Color.Black;
this.btn_new.FlatAppearance.MouseDownBackColor = System.Drawing.Color.IndianRed;
this.btn_new.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Brown;
this.btn_new.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_new.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btn_new.ForeColor = System.Drawing.Color.White;
this.btn_new.Location = new System.Drawing.Point(203, 771);
this.btn_new.Name = "btn_new";
this.btn_new.Size = new System.Drawing.Size(120, 40);
this.btn_new.TabIndex = 29;
this.btn_new.Text = "&New";
this.btn_new.UseVisualStyleBackColor = false;
this.btn_new.Click += new System.EventHandler(this.btn_new_Click);
//
// btn_save
//
this.btn_save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btn_save.BackColor = System.Drawing.Color.Black;
this.btn_save.FlatAppearance.MouseDownBackColor = System.Drawing.Color.IndianRed;
this.btn_save.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Brown;
this.btn_save.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_save.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btn_save.ForeColor = System.Drawing.Color.White;
this.btn_save.Location = new System.Drawing.Point(708, 771);
this.btn_save.Name = "btn_save";
this.btn_save.Size = new System.Drawing.Size(211, 40);
this.btn_save.TabIndex = 30;
this.btn_save.Text = "&Save to Desktop";
this.btn_save.UseVisualStyleBackColor = false;
this.btn_save.Visible = false;
//
// ShortcutLibraryForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.Black;
this.ClientSize = new System.Drawing.Size(1123, 839);
this.Controls.Add(this.btn_save);
this.Controls.Add(this.btn_new);
this.Controls.Add(this.btn_edit);
this.Controls.Add(this.btn_delete);
this.Controls.Add(this.btn_back);
this.Controls.Add(this.btn_run);
this.Controls.Add(this.ilv_saved_profiles);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "ShortcutLibraryForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "HeliosPlus - Setup Game Shortcuts";
this.ResumeLayout(false);
}
#endregion
private Manina.Windows.Forms.ImageListView ilv_saved_profiles;
private System.Windows.Forms.Button btn_delete;
private System.Windows.Forms.Button btn_back;
private System.Windows.Forms.Button btn_run;
private System.Windows.Forms.Button btn_edit;
private System.Windows.Forms.Button btn_new;
private System.Windows.Forms.Button btn_save;
}
}

View File

@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HeliosPlus.UIForms
{
public partial class ShortcutLibraryForm : Form
{
public ShortcutLibraryForm()
{
InitializeComponent();
}
private void btn_new_Click(object sender, EventArgs e)
{
var shortcutForm = new ShortcutForm();
shortcutForm.ShowDialog(this);
}
private void btn_back_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

File diff suppressed because it is too large Load Diff