1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00

Merged with development

This commit is contained in:
SpoinkyNL 2016-04-25 17:52:32 +02:00
commit 1643efcc3f
2 changed files with 97 additions and 96 deletions

View File

@ -1,92 +1,93 @@
using System.Diagnostics;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Forms;
using Artemis.ViewModels;
using Autofac;
using Caliburn.Micro;
using Caliburn.Micro.Autofac;
using Application = System.Windows.Application;
using MessageBox = System.Windows.Forms.MessageBox;
namespace Artemis
{
public class ArtemisBootstrapper : AutofacBootstrapper<SystemTrayViewModel>
{
public ArtemisBootstrapper()
{
CheckDuplicateInstances();
Initialize();
MessageBinder.SpecialValues.Add("$scaledmousex", (ctx) =>
{
var img = ctx.Source as Image;
var input = ctx.Source as IInputElement;
var e = ctx.EventArgs as System.Windows.Input.MouseEventArgs;
// If there is an image control, get the scaled position
if (img != null && e != null)
{
Point position = e.GetPosition(img);
return (int)(img.Source.Width * (position.X / img.ActualWidth));
}
// If there is another type of of IInputControl get the non-scaled position - or do some processing to get a scaled position, whatever needs to happen
if (e != null && input != null)
return e.GetPosition(input).X;
// Return 0 if no processing could be done
return 0;
});
MessageBinder.SpecialValues.Add("$scaledmousey", (ctx) =>
{
var img = ctx.Source as Image;
var input = ctx.Source as IInputElement;
var e = ctx.EventArgs as System.Windows.Input.MouseEventArgs;
// If there is an image control, get the scaled position
if (img != null && e != null)
{
Point position = e.GetPosition(img);
return (int)(img.Source.Width * (position.Y / img.ActualWidth));
}
// If there is another type of of IInputControl get the non-scaled position - or do some processing to get a scaled position, whatever needs to happen
if (e != null && input != null)
return e.GetPosition(input).Y;
// Return 0 if no processing could be done
return 0;
});
}
protected override void ConfigureContainer(ContainerBuilder builder)
{
base.ConfigureContainer(builder);
// create a window manager instance to be used by everyone asking for one (including Caliburn.Micro)
builder.RegisterInstance<IWindowManager>(new WindowManager());
builder.RegisterType<SystemTrayViewModel>();
builder.RegisterType<ShellViewModel>();
}
protected override void OnStartup(object sender, StartupEventArgs e)
{
DisplayRootViewFor<SystemTrayViewModel>();
}
private void CheckDuplicateInstances()
{
var processes = Process.GetProcesses();
if (processes.Count(p => p.ProcessName == "Artemis") < 2)
return;
MessageBox.Show("An instance of Artemis is already running (check your system tray).",
"Artemis (╯°□°)╯︵ ┻━┻", MessageBoxButtons.OK, MessageBoxIcon.Warning);
Application.Current.Shutdown();
}
}
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Forms;
using Artemis.ViewModels;
using Autofac;
using Caliburn.Micro;
using Caliburn.Micro.Autofac;
using Application = System.Windows.Application;
using MessageBox = System.Windows.Forms.MessageBox;
namespace Artemis
{
public class ArtemisBootstrapper : AutofacBootstrapper<SystemTrayViewModel>
{
public ArtemisBootstrapper()
{
CheckDuplicateInstances();
Initialize();
MessageBinder.SpecialValues.Add("$scaledmousex", (ctx) =>
{
var img = ctx.Source as Image;
var input = ctx.Source as IInputElement;
var e = ctx.EventArgs as System.Windows.Input.MouseEventArgs;
// If there is an image control, get the scaled position
if (img != null && e != null)
{
Point position = e.GetPosition(img);
return (int)(img.Source.Width * (position.X / img.ActualWidth));
}
// If there is another type of of IInputControl get the non-scaled position - or do some processing to get a scaled position, whatever needs to happen
if (e != null && input != null)
return e.GetPosition(input).X;
// Return 0 if no processing could be done
return 0;
});
MessageBinder.SpecialValues.Add("$scaledmousey", (ctx) =>
{
var img = ctx.Source as Image;
var input = ctx.Source as IInputElement;
var e = ctx.EventArgs as System.Windows.Input.MouseEventArgs;
// If there is an image control, get the scaled position
if (img != null && e != null)
{
Point position = e.GetPosition(img);
return (int)(img.Source.Width * (position.Y / img.ActualWidth));
}
// If there is another type of of IInputControl get the non-scaled position - or do some processing to get a scaled position, whatever needs to happen
if (e != null && input != null)
return e.GetPosition(input).Y;
// Return 0 if no processing could be done
return 0;
});
}
protected override void ConfigureContainer(ContainerBuilder builder)
{
base.ConfigureContainer(builder);
// create a window manager instance to be used by everyone asking for one (including Caliburn.Micro)
builder.RegisterInstance<IWindowManager>(new WindowManager());
builder.RegisterType<SystemTrayViewModel>();
builder.RegisterType<ShellViewModel>();
}
protected override void OnStartup(object sender, StartupEventArgs e)
{
DisplayRootViewFor<SystemTrayViewModel>();
}
private void CheckDuplicateInstances()
{
if (Process.GetProcesses().Count(p => p.ProcessName.Contains(Assembly.GetExecutingAssembly()
.FullName.Split(',')[0]) && !p.Modules[0].FileName.Contains("vshost")) < 2)
return;
MessageBox.Show("An instance of Artemis is already running (check your system tray).",
"Artemis (╯°□°)╯︵ ┻━┻", MessageBoxButtons.OK, MessageBoxIcon.Warning);
Application.Current.Shutdown();
}
}
}

View File

@ -2,17 +2,17 @@
[
{
"Game":"RocketLeague",
"GameVersion":"1.15",
"GameVersion":"1.16",
"GameAddresses":[
{
"Description":"Boost",
"BasePointer":{
"value":22555396
"value":22411984
},
"Offsets":[
180,
260,
800,
1632,
64,
1636,
1800,
540
]