kopia lustrzana https://github.com/dl2alf/AirScout
127 wiersze
3.7 KiB
C#
127 wiersze
3.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using System.Threading;
|
|
using ScoutBase.Core;
|
|
|
|
namespace AirScout
|
|
{
|
|
public partial class Splash : Form
|
|
{
|
|
Label version;
|
|
Label status;
|
|
|
|
// Define the CS_DROPSHADOW constant
|
|
private const int CS_DROPSHADOW = 0x00020000;
|
|
|
|
// Override the CreateParams property
|
|
protected override CreateParams CreateParams
|
|
{
|
|
get
|
|
{
|
|
CreateParams cp = base.CreateParams;
|
|
// change window style to dropshadow
|
|
// does not work under Linux/Mono
|
|
/*
|
|
if (!SupportFunctions.IsMono)
|
|
cp.ClassStyle |= CS_DROPSHADOW;
|
|
*/
|
|
return cp;
|
|
}
|
|
}
|
|
|
|
public Splash()
|
|
{
|
|
InitializeComponent();
|
|
// set border fram to NONE
|
|
// does not work under Linux/Mono
|
|
if (!SupportFunctions.IsMono)
|
|
FormBorderStyle = FormBorderStyle.None;
|
|
else
|
|
FormBorderStyle = FormBorderStyle.FixedSingle;
|
|
// initialize status label
|
|
status = new Label();
|
|
status.Parent = pb_Main;
|
|
status.BackColor = Color.Transparent;
|
|
status.ForeColor = Color.White;
|
|
status.Location = new Point(84, this.Height - 20);
|
|
status.Height = 14;
|
|
status.Width = 350;
|
|
status.Font = new System.Drawing.Font(this.Font, FontStyle.Italic);
|
|
status.TextAlign = ContentAlignment.MiddleCenter;
|
|
// set to full transparent view at first;
|
|
Opacity = 0;
|
|
}
|
|
|
|
public void Status(string s)
|
|
{
|
|
Status(s, Color.White);
|
|
}
|
|
|
|
public void Status(string s, Color color)
|
|
{
|
|
status.ForeColor = color;
|
|
status.Text = s;
|
|
this.Refresh();
|
|
Application.DoEvents();
|
|
}
|
|
|
|
private void Splash_Load(object sender, EventArgs e)
|
|
{
|
|
// start close timer
|
|
ti_Close.Start();
|
|
// start animation timer
|
|
ti_Animation.Start();
|
|
}
|
|
|
|
private void Splash_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
// stop timers
|
|
ti_Animation.Stop();
|
|
ti_Close.Stop();
|
|
}
|
|
|
|
private void ti_Close_Tick(object sender, EventArgs e)
|
|
{
|
|
// close form immediately if not closed by main form
|
|
this.Close();
|
|
}
|
|
|
|
private void ti_Animation_Tick(object sender, EventArgs e)
|
|
{
|
|
if (this.Opacity < 1)
|
|
{
|
|
this.Opacity += 0.01;
|
|
ti_Animation.Start();
|
|
}
|
|
else
|
|
{
|
|
// rest topmost style
|
|
this.TopMost = false;
|
|
}
|
|
}
|
|
|
|
private void pb_Main_Paint(object sender, PaintEventArgs e)
|
|
{
|
|
// show Version
|
|
string text = "Version " + Application.ProductVersion;
|
|
using (Font myFont = new System.Drawing.Font(this.Font.FontFamily, 24, FontStyle.Bold | FontStyle.Italic))
|
|
{
|
|
e.Graphics.DrawString(text, myFont, Brushes.DimGray, new Point(140, 10));
|
|
e.Graphics.DrawString(text, myFont, Brushes.White, new Point(140-2, 10-2));
|
|
}
|
|
}
|
|
|
|
private void pb_Main_Click(object sender, EventArgs e)
|
|
{
|
|
// hide the splash window when clicking on it
|
|
this.Visible = false;
|
|
}
|
|
}
|
|
}
|