42 lines
1.9 KiB
C#
42 lines
1.9 KiB
C#
|
using System.Reflection;
|
||
|
using Photomator.Views;
|
||
|
|
||
|
namespace Photomator;
|
||
|
|
||
|
public partial class Program
|
||
|
{
|
||
|
public delegate void OpenCallback(nint application, nint[] files, int n_files, nint hint, nint data);
|
||
|
|
||
|
private readonly Adw.Application _application;
|
||
|
|
||
|
public static int Main() => new Program().Run();
|
||
|
|
||
|
public Program()
|
||
|
{
|
||
|
_application = Adw.Application.New("de.cantorgymnasium.Photomator", Gio.ApplicationFlags.FlagsNone);
|
||
|
Gtk.Window.SetDefaultIconName("de.cantorgymnasium.Photomator");
|
||
|
if (File.Exists(Path.GetFullPath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!) + "/de.cantorgymnasium.Photomator.gresource"))
|
||
|
{
|
||
|
Gio.Functions.ResourcesRegister(Gio.Functions.ResourceLoad(Path.GetFullPath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!) + "/de.cantorgymnasium.Photomator.gresource"));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
var prefixes = new List<string> {
|
||
|
Directory.GetParent(Directory.GetParent(Path.GetFullPath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!))!.FullName)!.FullName,
|
||
|
Directory.GetParent(Path.GetFullPath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!))!.FullName,
|
||
|
"/usr"
|
||
|
};
|
||
|
foreach (var prefix in prefixes)
|
||
|
{
|
||
|
if (File.Exists(prefix + "/share/de.cantorgymnasium.Photomator/de.cantorgymnasium.Photomator.gresource"))
|
||
|
{
|
||
|
Gio.Functions.ResourcesRegister(Gio.Functions.ResourceLoad(Path.GetFullPath(prefix + "/share/de.cantorgymnasium.Photomator/de.cantorgymnasium.Photomator.gresource")));
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
_application.OnActivate += (_, _) => new MainWindow(_application).Start();
|
||
|
}
|
||
|
|
||
|
public int Run() => _application.RunWithSynchronizationContext(null);
|
||
|
}
|