mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-10-10 06:36:14 -04:00
69 lines
1.8 KiB
C#
69 lines
1.8 KiB
C#
// ClassicalSharp copyright 2014-2016 UnknownShadow200 | Licensed under MIT
|
|
using System;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using OpenTK;
|
|
using OpenTK.Graphics;
|
|
using Clipboard = System.Windows.Forms.Clipboard;
|
|
|
|
namespace ClassicalSharp {
|
|
|
|
/// <summary> Implementation of a native window and native input handling mechanism on Windows, OSX, and Linux. </summary>
|
|
public sealed class DesktopWindow : GameWindow, IPlatformWindow {
|
|
|
|
Game game;
|
|
public DesktopWindow(Game game, string username, bool nullContext, int width, int height) :
|
|
base(width, height, GraphicsMode.Default, Program.AppName + " (" + username + ")", nullContext, 0, DisplayDevice.Default) {
|
|
this.game = game;
|
|
}
|
|
|
|
protected override void OnLoad(EventArgs e) {
|
|
game.OnLoad();
|
|
base.OnLoad(e);
|
|
}
|
|
|
|
public override void Dispose() {
|
|
game.Dispose();
|
|
base.Dispose();
|
|
}
|
|
|
|
protected override void OnRenderFrame(FrameEventArgs e) {
|
|
game.RenderFrame(e.Time);
|
|
base.OnRenderFrame(e);
|
|
}
|
|
|
|
protected override void OnResize(object sender, EventArgs e) {
|
|
game.OnResize();
|
|
base.OnResize(sender, e);
|
|
}
|
|
|
|
public void LoadIcon() {
|
|
string launcherPath = Path.Combine(Program.AppDirectory, "Launcher2.exe");
|
|
if (File.Exists(launcherPath)) {
|
|
Icon = Icon.ExtractAssociatedIcon(launcherPath); return;
|
|
}
|
|
|
|
launcherPath = Path.Combine(Program.AppDirectory, "Launcher.exe");
|
|
if (File.Exists(launcherPath)) {
|
|
Icon = Icon.ExtractAssociatedIcon(launcherPath);
|
|
}
|
|
}
|
|
|
|
// TODO: retry when clipboard returns null.
|
|
public string ClipboardText {
|
|
get {
|
|
if (OpenTK.Configuration.RunningOnMacOS)
|
|
return GetClipboardText();
|
|
else
|
|
return Clipboard.GetText();
|
|
}
|
|
set {
|
|
if (OpenTK.Configuration.RunningOnMacOS)
|
|
SetClipboardText(value);
|
|
else
|
|
Clipboard.SetText(value);
|
|
}
|
|
}
|
|
}
|
|
}
|