mirror of
https://github.com/ShiftOS-Rewind/ShiftOS.git
synced 2025-01-22 11:21:45 -05:00
9c31cf53be
Almost fixed the contect button glitch and i'm using Newtonsoft.JSON to save skins!
88 lines
2.5 KiB
C#
88 lines
2.5 KiB
C#
using System;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Windows.Forms;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace ShiftOS.Engine.WindowManager
|
|
{
|
|
public partial class ShiftWindow : Form
|
|
{
|
|
public uint Id { get; private set; }
|
|
|
|
public UserControl ChildControl { get; set; }
|
|
|
|
public ShiftWindow()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
public uint SetId()
|
|
{
|
|
do
|
|
{
|
|
Id = (uint)Tools.Rnd.Next(100000, 999999);
|
|
}
|
|
while (ShiftWM.Windows.FirstOrDefault(w => w.Id == Id) != null);
|
|
|
|
return Id;
|
|
}
|
|
|
|
private const int WM_NCLBUTTONDOWN = 0xA1;
|
|
private const int HT_CAPTION = 0x2;
|
|
|
|
[DllImportAttribute("user32.dll")]
|
|
private static extern int SendMessage(IntPtr hWnd,
|
|
int Msg, int wParam, int lParam);
|
|
|
|
[DllImportAttribute("user32.dll")]
|
|
private static extern bool ReleaseCapture();
|
|
|
|
private void Programtopbar_drag(object sender, MouseEventArgs e)
|
|
{
|
|
if (e.Button != MouseButtons.Left) return;
|
|
|
|
ReleaseCapture();
|
|
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
|
|
}
|
|
|
|
private void closebutton_Click(object sender, EventArgs e)
|
|
=> this.Close();
|
|
|
|
private void closebutton_MouseEnter(object sender, EventArgs e)
|
|
=> btnClose.BackColor = ShiftSkinData.btnCloseHoverColor;
|
|
|
|
private void closebutton_MouseLeave(object sender, EventArgs e)
|
|
=> btnClose.BackColor = ShiftSkinData.btnCloseColor;
|
|
|
|
private void maximizebutton_MouseEnter(object sender, EventArgs e)
|
|
=> btnMax.BackColor = ShiftSkinData.btnMaxHoverColor;
|
|
|
|
private void maximizebutton_MouseLeave(object sender, EventArgs e)
|
|
=> btnMax.BackColor = ShiftSkinData.btnMaxColor;
|
|
|
|
private void minimizebutton_MouseEnter(object sender, EventArgs e)
|
|
=> btnMin.BackColor = ShiftSkinData.btnMinHoverColor;
|
|
|
|
|
|
private void minimizebutton_MouseLeave(object sender, EventArgs e)
|
|
=> btnMin.BackColor = ShiftSkinData.btnMinColor;
|
|
|
|
/*
|
|
private void closebutton_MouseDown(object sender, MouseEventArgs e)
|
|
=> btnClose.BackColor = Color.Black;
|
|
|
|
private void maximizebutton_MouseDown(object sender, MouseEventArgs e)
|
|
=> btnMax.BackColor = Color.Black;
|
|
|
|
private void minimizebutton_MouseDown(object sender, MouseEventArgs e)
|
|
=> btnMin.BackColor = Color.Black;
|
|
*/
|
|
|
|
}
|
|
|
|
public interface IShiftWindowExtensions
|
|
{
|
|
void OnLoaded(ShiftWindow window);
|
|
}
|
|
}
|