Feladat2 done

This commit is contained in:
2025-09-28 00:53:10 +02:00
parent 7a2100f535
commit 37cd7dc30c
3 changed files with 396 additions and 113 deletions

View File

@@ -1,10 +1,11 @@
using Adw;
using Gtk;
using Logic;
using Models;
namespace Feladat1.UI.MainWindow;
public class MainWindow
public partial class MainWindow
{
private ToastOverlay toastOverlay;
private const string toastOverlayId = "toast_overlay";
@@ -12,7 +13,7 @@ public class MainWindow
private IUserService userService;
private const string windowId = "main_window";
public Window Window;
public Adw.Window Window;
private Gtk.Button saveBtn;
private const string saveBtnId = "save_btn";
@@ -35,12 +36,36 @@ public class MainWindow
private PasswordEntryRow passwordLabel;
private const string passwordLabelId = "passwordLabel";
private Button leftUpArrow;
private const string leftUpArrowId = "leftUpArrow";
private Button rightUpArrow;
private const string rightUpArrowId = "rightUpArrow";
private Button leftDownArrow;
private const string leftDownArrowId = "leftDownArrow";
private Button rightDownArrow;
private const string rightDownArrowId = "rightDownArrow";
private Button leftLeftArrow;
private const string leftLeftArrowId = "leftLeftArrow";
private Button rightLeftArrow;
private const string rightLeftArrowId = "rightLeftArrow";
private Button leftRightArrow;
private const string leftRightArrowId = "leftRightArrow";
private Button rightRightArrow;
private const string rightRightArrowId = "rightRightArrow";
public MainWindow(IUserService userService)
{
this.userService = userService;
var builder = new Gtk.Builder("Feladat1.UI.MainWindow.MainWindow.ui.xml");
Window = builder.GetObject(windowId) as Window;
Window = builder.GetObject(windowId) as Adw.Window;
if (Window == null)
{
throw new Exception("Failed to load embedded resource MainWindow.ui.xml");
@@ -96,6 +121,112 @@ public class MainWindow
{
throw new NullReferenceException(toastOverlayId);
}
canvas = builder.GetObject(canvasId) as DrawingArea;
if (canvas == null)
{
throw new NullReferenceException(canvasId);
}
canvas.SetDrawFunc(Draw);
lineWidthAdjustment = builder.GetObject(lineWidthAdjustmentId) as Adjustment;
if (lineWidthAdjustment == null)
{
throw new NullReferenceException(lineWidthAdjustmentId);
}
lineWidthAdjustment.OnValueChanged += (sender, args) =>
{
lineWidth = lineWidthAdjustment.Value;
canvas.QueueDraw();
};
leftUpArrow = builder.GetObject(leftUpArrowId) as Button;
if (leftUpArrow == null)
{
throw new NullReferenceException(leftUpArrowId);
}
leftUpArrow.OnClicked += (sender, args) =>
{
pointX[1] -= 5;
canvas.QueueDraw();
};
rightUpArrow = builder.GetObject(rightUpArrowId) as Button;
if (rightUpArrow == null)
{
throw new NullReferenceException(rightUpArrowId);
}
rightUpArrow.OnClicked += (sender, args) =>
{
pointY[1] -= 5;
canvas.QueueDraw();
};
leftDownArrow = builder.GetObject(leftDownArrowId) as Button;
if (leftDownArrow == null)
{
throw new NullReferenceException(leftDownArrowId);
}
leftDownArrow.OnClicked += (sender, args) =>
{
pointX[1] += 5;
canvas.QueueDraw();
};
rightDownArrow = builder.GetObject(rightDownArrowId) as Button;
if (rightDownArrow == null)
{
throw new NullReferenceException(rightDownArrowId);
}
rightDownArrow.OnClicked += (sender, args) =>
{
pointY[1] += 5;
canvas.QueueDraw();
};
leftLeftArrow = builder.GetObject(leftLeftArrowId) as Button;
if (leftLeftArrow == null)
{
throw new NullReferenceException(leftLeftArrowId);
}
leftLeftArrow.OnClicked += (sender, args) =>
{
pointX[0] -= 5;
canvas.QueueDraw();
};
rightLeftArrow = builder.GetObject(rightLeftArrowId) as Button;
if (rightLeftArrow == null)
{
throw new NullReferenceException(rightLeftArrowId);
}
rightLeftArrow.OnClicked += (sender, args) =>
{
pointY[0] -= 5;
canvas.QueueDraw();
};
leftRightArrow = builder.GetObject(leftRightArrowId) as Button;
if (leftRightArrow == null)
{
throw new NullReferenceException(leftRightArrowId);
}
leftRightArrow.OnClicked += (sender, args) =>
{
pointX[0] += 5;
canvas.QueueDraw();
};
rightRightArrow = builder.GetObject(rightRightArrowId) as Button;
if (rightRightArrow == null)
{
throw new NullReferenceException(rightRightArrowId);
}
rightRightArrow.OnClicked += (sender, args) =>
{
pointY[0] += 5;
canvas.QueueDraw();
};
}
catch (NullReferenceException e)
{