dtlauncher/.old 4/dtlauncher-client-win/ProgramLabel.xaml.cs

116 lines
5.0 KiB
C#

using DTLib;
using System;
using System.Diagnostics;
using System.IO;
using System.Windows;
using System.Windows.Controls;
namespace dtlauncher_client_win
{
/// <summary>
/// Логика взаимодействия для ProgramLabel.xaml
/// </summary>
public partial class ProgramLabel : UserControl
{
public static DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(ProgramLabel));
public string Text
{
get { return (string)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
public static DependencyProperty IconProperty = DependencyProperty.Register("Icon", typeof(System.Windows.Media.Imaging.BitmapImage), typeof(ProgramLabel));
public System.Windows.Media.Imaging.BitmapImage Icon
{
get { return (System.Windows.Media.Imaging.BitmapImage)GetValue(IconProperty); }
set { SetValue(IconProperty, value); }
}
public static DependencyProperty CornerRadiusProperty = DependencyProperty.Register("CornerRadius", typeof(CornerRadius), typeof(ProgramLabel));
public CornerRadius CornerRadius
{
get { return (CornerRadius)GetValue(CornerRadiusProperty); }
set { SetValue(CornerRadiusProperty, value); }
}
public string BackgroundImage;
public string Script;
public string InstallDir;
public string LaunchFile;
public string Arguments;
public string Description;
public int Number;
LauncherWindow Window;
public ProgramLabel()
{
InitializeComponent();
}
public ProgramLabel(string descriptorPath, int number, LauncherWindow window)
{
try
{
InitializeComponent();
Window = window;
Number = number;
FontSize = 14;
Foreground = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Color.FromRgb(240, 240, 240));
Text = FileWork.ReadFromConfig(descriptorPath, "name");
NameLabel.Content = FileWork.ReadFromConfig(descriptorPath, "name");
IconImage.Source = new System.Windows.Media.Imaging.BitmapImage(new Uri(Directory.GetCurrentDirectory() + "\\descroptors\\" + FileWork.ReadFromConfig(descriptorPath, "icon"), UriKind.Absolute));
BackgroundImage = Directory.GetCurrentDirectory() + "\\descroptors\\" + FileWork.ReadFromConfig(descriptorPath, "background");
Script = FileWork.ReadFromConfig(descriptorPath, "script");
InstallDir = FileWork.ReadFromConfig(descriptorPath, "installdir");
LaunchFile = FileWork.ReadFromConfig(descriptorPath, "launchfile");
Arguments = FileWork.ReadFromConfig(descriptorPath, "arguments");
Description = FileWork.ReadFromConfig(descriptorPath, "description").Replace("\\n", "\n");
//Window.Log(Text + " " + Icon + " " + Number);
}
catch (Exception e)
{
Window.Log("error:\n" + e.Message + "\n" + e.StackTrace + '\n');
}
}
void ProgramShow(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
try
{
Window.programsArray[Window.PreviousProgramNum].Foreground = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Color.FromRgb(240, 240, 240));
Window.programsArray[Window.PreviousProgramNum].FontWeight = FontWeights.Normal;
Window.programsArray[Window.PreviousProgramNum].FontSize = 14;
Window.PreviousProgramNum = Number;
Foreground = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Color.FromRgb(170, 170, 240));
FontWeight = FontWeights.Bold;
FontSize = 13;
Window.NameLabel.Content = Text;
Window.DescriptionBox.Text = Description;
Window.BackgroundImage.Source = new System.Windows.Media.Imaging.BitmapImage(new Uri(BackgroundImage, UriKind.Absolute));
Window.Launch = () =>
{
var startInfo = new ProcessStartInfo()
{
FileName = LaunchFile,
Arguments = Arguments,
};
Process.Start(startInfo);
};
Window.Install = () =>
{
var scriptrunner = new DTScript.ScriptRunner
{
debug = false,
mainSocket = Window.mainSocket
};
scriptrunner.RunScriptFile(Directory.GetCurrentDirectory() + "\\scripts\\" + Script);
};
}
catch (Exception ex)
{
Window.Log("error:\n" + ex.Message + "\n" + ex.StackTrace + '\n');
}
}
}
}