Merge remote-tracking branch 'refs/remotes/ShiftOS-Rewind/master'

This commit is contained in:
AShifter 2017-10-01 08:23:50 -06:00
commit 46fe7eb709
26 changed files with 1073 additions and 479 deletions

162
.gitignore vendored
View file

@ -1,14 +1,17 @@
# https://www.gitignore.io/api/visualstudio,windows,linux
### VisualStudio ###
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
@ -16,19 +19,21 @@
[Rr]eleases/
x64/
x86/
build/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Roslyn cache directories
*.ide/
# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
#NUNIT
# NUNIT
*.VisualState.xml
TestResult.xml
@ -37,6 +42,15 @@ TestResult.xml
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
**/Properties/launchSettings.json
*_i.c
*_p.c
*_i.h
@ -69,14 +83,21 @@ _Chutzpah*
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
@ -89,7 +110,7 @@ _ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding addin-in
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
@ -98,9 +119,18 @@ _TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
@ -128,39 +158,63 @@ publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# If using the old MSBuild-Integrated Package Restore, uncomment this:
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Windows Azure Build Output
# Microsoft Azure Build Output
csx/
*.build.csdef
# Windows Store app package directory
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
node_modules/
orleans.codegen.cs
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
@ -176,6 +230,7 @@ UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
@ -185,33 +240,66 @@ UpgradeLog*.htm
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
### Windows ###
# Windows image file caches
Thumbs.db
ehthumbs.db
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Folder config file
Desktop.ini
# Typescript v1 declaration files
typings/
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Visual Studio 6 build log
*.plg
# Windows Installer files
*.cab
*.msi
*.msm
*.msp
# Visual Studio 6 workspace options file
*.opt
# Windows shortcuts
*.lnk
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
### Linux ###
*~
# Paket dependency manager
.paket/paket.exe
paket-files/
# KDE directory preferences
.directory
# FAKE - F# Make
.fake/
# Vim swp files
*.swp
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush
.cr/
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -20,6 +20,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@ -30,6 +31,9 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Magick.NET-Q16-AnyCPU, Version=7.0.0.0, Culture=neutral, PublicKeyToken=2004825badfa91ec, processorArchitecture=MSIL">
<HintPath>..\packages\Magick.NET-Q16-AnyCPU.7.0.7.300\lib\net40\Magick.NET-Q16-AnyCPU.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
@ -48,6 +52,7 @@
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Tools.cs" />
<Compile Include="WindowManager\InfoboxTemplate.cs">
<SubType>UserControl</SubType>
</Compile>
@ -75,6 +80,7 @@
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
<None Include="Resources\nullIcon.png" />
</ItemGroup>
<ItemGroup>

31
ShiftOS.Engine/Tools.cs Normal file
View file

@ -0,0 +1,31 @@
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Runtime.InteropServices;
namespace ShiftOS.Engine
{
/// <summary>
/// Random class full of unassorted [but also uncategorizable] tools.
/// </summary>
public static class Tools
{
public static Random Rnd = new Random();
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public extern static bool DestroyIcon(IntPtr handle);
public static Icon ToIcon(this Bitmap bm)
{
Icon tempicon = Icon.FromHandle(bm.GetHicon());
Icon newIcon = tempicon.Clone() as Icon;
//for some reason this exists
DestroyIcon(tempicon.Handle);
return newIcon;
}
}
}

View file

@ -28,9 +28,11 @@
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.btnOpt1 = new System.Windows.Forms.Button();
this.btnOpt2 = new System.Windows.Forms.Button();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.changeSize = new System.Windows.Forms.Timer(this.components);
this.label1 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
@ -75,18 +77,20 @@
this.pictureBox1.TabIndex = 2;
this.pictureBox1.TabStop = false;
//
// changeSize
//
this.changeSize.Interval = 1;
this.changeSize.Tick += new System.EventHandler(this.changeSize_Tick);
//
// label1
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Lucida Console", 9.25F);
this.label1.Location = new System.Drawing.Point(106, 57);
this.label1.Location = new System.Drawing.Point(105, 55);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(103, 13);
this.label1.Size = new System.Drawing.Size(55, 13);
this.label1.TabIndex = 3;
this.label1.Text = "Generic Body";
this.label1.Text = "label1";
//
// InfoboxTemplate
//
@ -110,6 +114,7 @@
public System.Windows.Forms.Button btnOpt1;
public System.Windows.Forms.Button btnOpt2;
public System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Timer changeSize;
public System.Windows.Forms.Label label1;
}
}

View file

@ -1,11 +1,5 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Media;
using System.IO;
@ -14,37 +8,39 @@ namespace ShiftOS.Engine.WindowManager
{
public partial class InfoboxTemplate : UserControl
{
Stream str;
public int buttonChoice;
public int buttonSelected;
public InfoboxTemplate(buttonType type)
Stream _str;
private int _buttonChoice;
private int _buttonSelected;
public InfoboxTemplate(ButtonType type)
{
InitializeComponent();
switch (type)
{
case buttonType.OK:
case ButtonType.Ok:
btnOpt1.Text = "OK";
btnOpt2.Hide();
btnOpt1.Location = new Point(122, 134);
buttonChoice = 1;
btnOpt1.Location = new Point(109, 134);
_buttonChoice = 1;
break;
case buttonType.OKCancel:
case ButtonType.OkCancel:
btnOpt1.Text = "OK";
btnOpt2.Text = "Cancel";
buttonChoice = 2;
_buttonChoice = 2;
break;
case buttonType.YesNo:
case ButtonType.YesNo:
btnOpt1.Text = "Yes";
btnOpt2.Text = "No";
buttonChoice = 3;
_buttonChoice = 3;
break;
}
}
public enum buttonType
public enum ButtonType
{
YesNo,
OKCancel,
OK
OkCancel,
Ok
}
private void btnOpt1_Click(object sender, EventArgs e)
@ -52,12 +48,12 @@ namespace ShiftOS.Engine.WindowManager
switch (btnOpt1.Text)
{
case "OK":
buttonSelected = 1;
ParentForm.Close();
_buttonSelected = 1;
ParentForm?.Close();
break;
case "Yes":
buttonSelected = 2;
ParentForm.Close();
_buttonSelected = 2;
ParentForm?.Close();
break;
}
}
@ -67,24 +63,29 @@ namespace ShiftOS.Engine.WindowManager
switch (btnOpt2.Text)
{
case "No":
buttonSelected = 3;
_buttonSelected = 3;
break;
case "Cancel":
buttonSelected = 4;
_buttonSelected = 4;
break;
}
}
public void Play()
{
str = Properties.Resources.infobox;
SoundPlayer sp = new SoundPlayer(str);
_str = Properties.Resources.infobox;
SoundPlayer sp = new SoundPlayer(_str);
sp.Play();
sp.Stream.Position = 0;
}
private void InfoboxTemplate_Load(object sender, EventArgs e)
private void InfoboxTemplate_Load(object sender, EventArgs e)
=> Play();
private void changeSize_Tick(object sender, EventArgs e)
{
Play();
this.Height += label1.Height;
this.Width += label1.Width;
}
}
}

View file

@ -117,4 +117,7 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="changeSize.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View file

@ -1,41 +1,96 @@
using System.Drawing;
using System;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using static ShiftOS.Engine.WindowManager.InfoboxTemplate;
namespace ShiftOS.Engine.WindowManager
{
public class ShiftWM
public static class ShiftWM
{
public ShiftWindow Init(UserControl content, string title, Image icon, bool ShowAsInfobox = false, bool resize = true)
public static ObservableCollection<ShiftWindow> Windows { get; } = new ObservableCollection<ShiftWindow>();
public static ShiftWindow GetShiftWindow(this UserControl control)
{
return Windows.First(p => (uint) control.Tag == p.Id);
}
/// <summary>
/// Shows a new Window based on a UserControl.
/// </summary>
/// <param name="content">The UserControl to use</param>
/// <param name="title">The program's title</param>
/// <param name="icon">The icon to show</param>
/// <param name="showAsInfobox">Checks if this is an infobox</param>
/// <param name="resize">Enables or disables resizing</param>
/// <returns></returns>
public static ShiftWindow Init(UserControl content, string title, Icon icon, bool showAsInfobox = false, bool resize = true)
{
// Setup Window
ShiftWindow app = new ShiftWindow();
app.Text = title;
app.Title.Text = title;
app.Width = content.Width + app.left.Width + app.right.Width;
ShiftWindow app = new ShiftWindow
{
Text = title,
Title = {Text = title}
};
app.Width = content.Width + app.left.Width + app.right.Width;
app.Height = content.Height + app.bottom.Height + app.top.Height;
// Icon Setup
if (icon == null)
{
app.programIcon.Hide();
app.programIcon.Image = Properties.Resources.nullIcon;
app.Title.Location = new Point(2, 7);
}
else app.programIcon.Image = icon;
if (icon == null)
{
app.programIcon.Hide();
app.programIcon.Image = Properties.Resources.nullIcon;
app.Title.Location = new Point(2, 7);
}
// Setup UC
content.Parent = app.programContent;
else
{
app.programIcon.Image = icon.ToBitmap();
app.Icon = icon;
}
// Setup UC
content.Parent = app.programContent;
content.BringToFront();
content.Dock = DockStyle.Fill;
app.Show();
content.Tag = app.SetId();
Debug.WriteLine($"usercontrol: {content.Tag} window: {app.Id}");
app.Closed += (sender, args) =>
{
Windows.Remove((ShiftWindow) sender);
};
Windows.Add(app);
if (content is IShiftWindowExtensions extensions)
{
extensions.OnLoaded(app);
}
return app;
}
public InfoboxTemplate StartInfoboxSession(string title, string body, buttonType type)
/// <summary>
/// Shows a new infobox.
/// </summary>
/// <param name="title">The title of the infobox.</param>
/// <param name="body">The infobox's content.</param>
/// <param name="type">The ButtonType used for the infobox.</param>
/// <returns></returns>
public static InfoboxTemplate StartInfoboxSession(string title, string body, ButtonType type)
{
InfoboxTemplate info = new InfoboxTemplate(type);
info.label1.Text = body;
Init(info, title, Properties.Resources.iconInfoBox_fw, true, false);
InfoboxTemplate info = new InfoboxTemplate(type)
{
label1 = { Text = body }
};
Init(info, title, Properties.Resources.iconInfoBox_fw.ToIcon(), true, false);
return info;
}
}

View file

@ -28,214 +28,238 @@
/// </summary>
private void InitializeComponent()
{
this.program = new System.Windows.Forms.Panel();
this.programContent = new System.Windows.Forms.Panel();
this.bottomleftcorner = new System.Windows.Forms.Panel();
this.toprightcorner = new System.Windows.Forms.Panel();
this.bottomrightcorner = new System.Windows.Forms.Panel();
this.topleftcorner = new System.Windows.Forms.Panel();
this.bottom = new System.Windows.Forms.Panel();
this.top = new System.Windows.Forms.Panel();
this.programIcon = new System.Windows.Forms.PictureBox();
this.maximizebutton = new System.Windows.Forms.PictureBox();
this.minimizebutton = new System.Windows.Forms.PictureBox();
this.Title = new System.Windows.Forms.Label();
this.closebutton = new System.Windows.Forms.PictureBox();
this.right = new System.Windows.Forms.Panel();
this.left = new System.Windows.Forms.Panel();
this.program.SuspendLayout();
this.top.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.programIcon)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.maximizebutton)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.minimizebutton)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.closebutton)).BeginInit();
this.SuspendLayout();
//
// program
//
this.program.BackColor = System.Drawing.Color.White;
this.program.Controls.Add(this.programContent);
this.program.Controls.Add(this.bottomleftcorner);
this.program.Controls.Add(this.toprightcorner);
this.program.Controls.Add(this.bottomrightcorner);
this.program.Controls.Add(this.topleftcorner);
this.program.Controls.Add(this.bottom);
this.program.Controls.Add(this.top);
this.program.Controls.Add(this.right);
this.program.Controls.Add(this.left);
this.program.Dock = System.Windows.Forms.DockStyle.Fill;
this.program.Location = new System.Drawing.Point(0, 0);
this.program.Name = "program";
this.program.Size = new System.Drawing.Size(284, 261);
this.program.TabIndex = 11;
//
// programContent
//
this.programContent.Dock = System.Windows.Forms.DockStyle.Fill;
this.programContent.Location = new System.Drawing.Point(4, 30);
this.programContent.Name = "programContent";
this.programContent.Size = new System.Drawing.Size(276, 227);
this.programContent.TabIndex = 11;
//
// bottomleftcorner
//
this.bottomleftcorner.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.bottomleftcorner.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.bottomleftcorner.Location = new System.Drawing.Point(0, 257);
this.bottomleftcorner.Name = "bottomleftcorner";
this.bottomleftcorner.Size = new System.Drawing.Size(5, 4);
this.bottomleftcorner.TabIndex = 10;
//
// toprightcorner
//
this.toprightcorner.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.toprightcorner.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.toprightcorner.Location = new System.Drawing.Point(278, 0);
this.toprightcorner.Name = "toprightcorner";
this.toprightcorner.Size = new System.Drawing.Size(6, 30);
this.toprightcorner.TabIndex = 9;
//
// bottomrightcorner
//
this.bottomrightcorner.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.bottomrightcorner.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.bottomrightcorner.Cursor = System.Windows.Forms.Cursors.SizeNWSE;
this.bottomrightcorner.Location = new System.Drawing.Point(280, 257);
this.bottomrightcorner.Name = "bottomrightcorner";
this.bottomrightcorner.Size = new System.Drawing.Size(4, 4);
this.bottomrightcorner.TabIndex = 4;
//
// topleftcorner
//
this.topleftcorner.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.topleftcorner.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
this.topleftcorner.Location = new System.Drawing.Point(0, 0);
this.topleftcorner.Name = "topleftcorner";
this.topleftcorner.Size = new System.Drawing.Size(7, 30);
this.topleftcorner.TabIndex = 8;
//
// bottom
//
this.bottom.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.bottom.Cursor = System.Windows.Forms.Cursors.SizeNS;
this.bottom.Dock = System.Windows.Forms.DockStyle.Bottom;
this.bottom.Location = new System.Drawing.Point(4, 257);
this.bottom.Name = "bottom";
this.bottom.Size = new System.Drawing.Size(276, 4);
this.bottom.TabIndex = 3;
//
// top
//
this.top.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.top.Controls.Add(this.programIcon);
this.top.Controls.Add(this.maximizebutton);
this.top.Controls.Add(this.minimizebutton);
this.top.Controls.Add(this.Title);
this.top.Controls.Add(this.closebutton);
this.top.Dock = System.Windows.Forms.DockStyle.Top;
this.top.ForeColor = System.Drawing.SystemColors.ControlText;
this.top.Location = new System.Drawing.Point(4, 0);
this.top.Name = "top";
this.top.Size = new System.Drawing.Size(276, 30);
this.top.TabIndex = 0;
this.top.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Programtopbar_drag);
//
// programIcon
//
this.programIcon.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.programIcon.ErrorImage = null;
this.programIcon.InitialImage = null;
this.programIcon.Location = new System.Drawing.Point(6, 7);
this.programIcon.Name = "programIcon";
this.programIcon.Size = new System.Drawing.Size(16, 16);
this.programIcon.TabIndex = 7;
this.programIcon.TabStop = false;
//
// maximizebutton
//
this.maximizebutton.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.maximizebutton.BackColor = System.Drawing.Color.Black;
this.maximizebutton.Location = new System.Drawing.Point(231, 4);
this.maximizebutton.Name = "maximizebutton";
this.maximizebutton.Size = new System.Drawing.Size(21, 21);
this.maximizebutton.TabIndex = 6;
this.maximizebutton.TabStop = false;
this.maximizebutton.MouseEnter += new System.EventHandler(this.maximizebutton_MouseEnter);
this.maximizebutton.MouseLeave += new System.EventHandler(this.maximizebutton_MouseLeave);
//
// minimizebutton
//
this.minimizebutton.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.minimizebutton.BackColor = System.Drawing.Color.Black;
this.minimizebutton.Location = new System.Drawing.Point(208, 4);
this.minimizebutton.Name = "minimizebutton";
this.minimizebutton.Size = new System.Drawing.Size(21, 21);
this.minimizebutton.TabIndex = 5;
this.minimizebutton.TabStop = false;
this.minimizebutton.MouseEnter += new System.EventHandler(this.minimizebutton_MouseEnter);
this.minimizebutton.MouseLeave += new System.EventHandler(this.minimizebutton_MouseLeave);
//
// Title
//
this.Title.AutoSize = true;
this.Title.BackColor = System.Drawing.Color.Transparent;
this.Title.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Title.ForeColor = System.Drawing.Color.White;
this.Title.Location = new System.Drawing.Point(25, 8);
this.Title.Name = "Title";
this.Title.Size = new System.Drawing.Size(98, 13);
this.Title.TabIndex = 3;
this.Title.Text = "Application Title";
this.Title.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Programtopbar_drag);
//
// closebutton
//
this.closebutton.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.closebutton.BackColor = System.Drawing.Color.Black;
this.closebutton.Location = new System.Drawing.Point(254, 4);
this.closebutton.Name = "closebutton";
this.closebutton.Size = new System.Drawing.Size(21, 21);
this.closebutton.TabIndex = 4;
this.closebutton.TabStop = false;
this.closebutton.Click += new System.EventHandler(this.closebutton_Click);
this.closebutton.MouseEnter += new System.EventHandler(this.closebutton_MouseEnter);
this.closebutton.MouseLeave += new System.EventHandler(this.closebutton_MouseLeave);
//
// right
//
this.right.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.right.Cursor = System.Windows.Forms.Cursors.SizeWE;
this.right.Dock = System.Windows.Forms.DockStyle.Right;
this.right.Location = new System.Drawing.Point(280, 0);
this.right.Name = "right";
this.right.Size = new System.Drawing.Size(4, 261);
this.right.TabIndex = 2;
//
// left
//
this.left.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.left.Dock = System.Windows.Forms.DockStyle.Left;
this.left.Location = new System.Drawing.Point(0, 0);
this.left.Name = "left";
this.left.Size = new System.Drawing.Size(4, 261);
this.left.TabIndex = 1;
//
// ShiftWindow
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 261);
this.Controls.Add(this.program);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "ShiftWindow";
this.program.ResumeLayout(false);
this.top.ResumeLayout(false);
this.top.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.programIcon)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.maximizebutton)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.minimizebutton)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.closebutton)).EndInit();
this.ResumeLayout(false);
this.program = new System.Windows.Forms.Panel();
this.programContent = new System.Windows.Forms.Panel();
this.bottomleftcorner = new System.Windows.Forms.Panel();
this.toprightcorner = new System.Windows.Forms.Panel();
this.bottomrightcorner = new System.Windows.Forms.Panel();
this.topleftcorner = new System.Windows.Forms.Panel();
this.bottom = new System.Windows.Forms.Panel();
this.top = new System.Windows.Forms.Panel();
this.programIcon = new System.Windows.Forms.PictureBox();
this.maximizebutton = new System.Windows.Forms.PictureBox();
this.minimizebutton = new System.Windows.Forms.PictureBox();
this.Title = new System.Windows.Forms.Label();
this.closebutton = new System.Windows.Forms.PictureBox();
this.right = new System.Windows.Forms.Panel();
this.left = new System.Windows.Forms.Panel();
this.program.SuspendLayout();
this.top.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.programIcon)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.maximizebutton)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.minimizebutton)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.closebutton)).BeginInit();
this.SuspendLayout();
//
// program
//
this.program.BackColor = System.Drawing.Color.White;
this.program.Controls.Add(this.programContent);
this.program.Controls.Add(this.bottomleftcorner);
this.program.Controls.Add(this.toprightcorner);
this.program.Controls.Add(this.bottomrightcorner);
this.program.Controls.Add(this.topleftcorner);
this.program.Controls.Add(this.bottom);
this.program.Controls.Add(this.top);
this.program.Controls.Add(this.right);
this.program.Controls.Add(this.left);
this.program.Dock = System.Windows.Forms.DockStyle.Fill;
this.program.Location = new System.Drawing.Point(0, 0);
this.program.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.program.Name = "program";
this.program.Size = new System.Drawing.Size(426, 402);
this.program.TabIndex = 11;
//
// programContent
//
this.programContent.Dock = System.Windows.Forms.DockStyle.Fill;
this.programContent.Location = new System.Drawing.Point(6, 46);
this.programContent.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.programContent.Name = "programContent";
this.programContent.Size = new System.Drawing.Size(414, 350);
this.programContent.TabIndex = 11;
//
// bottomleftcorner
//
this.bottomleftcorner.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.bottomleftcorner.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.bottomleftcorner.Location = new System.Drawing.Point(0, 395);
this.bottomleftcorner.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.bottomleftcorner.Name = "bottomleftcorner";
this.bottomleftcorner.Size = new System.Drawing.Size(8, 6);
this.bottomleftcorner.TabIndex = 10;
//
// toprightcorner
//
this.toprightcorner.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.toprightcorner.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.toprightcorner.Location = new System.Drawing.Point(417, 0);
this.toprightcorner.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.toprightcorner.Name = "toprightcorner";
this.toprightcorner.Size = new System.Drawing.Size(9, 46);
this.toprightcorner.TabIndex = 9;
//
// bottomrightcorner
//
this.bottomrightcorner.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.bottomrightcorner.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.bottomrightcorner.Cursor = System.Windows.Forms.Cursors.SizeNWSE;
this.bottomrightcorner.Location = new System.Drawing.Point(420, 395);
this.bottomrightcorner.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.bottomrightcorner.Name = "bottomrightcorner";
this.bottomrightcorner.Size = new System.Drawing.Size(6, 6);
this.bottomrightcorner.TabIndex = 4;
//
// topleftcorner
//
this.topleftcorner.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.topleftcorner.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
this.topleftcorner.Location = new System.Drawing.Point(0, 0);
this.topleftcorner.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.topleftcorner.Name = "topleftcorner";
this.topleftcorner.Size = new System.Drawing.Size(10, 46);
this.topleftcorner.TabIndex = 8;
//
// bottom
//
this.bottom.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.bottom.Cursor = System.Windows.Forms.Cursors.SizeNS;
this.bottom.Dock = System.Windows.Forms.DockStyle.Bottom;
this.bottom.Location = new System.Drawing.Point(6, 396);
this.bottom.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.bottom.Name = "bottom";
this.bottom.Size = new System.Drawing.Size(414, 6);
this.bottom.TabIndex = 3;
//
// top
//
this.top.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.top.Controls.Add(this.programIcon);
this.top.Controls.Add(this.maximizebutton);
this.top.Controls.Add(this.minimizebutton);
this.top.Controls.Add(this.Title);
this.top.Controls.Add(this.closebutton);
this.top.Dock = System.Windows.Forms.DockStyle.Top;
this.top.ForeColor = System.Drawing.SystemColors.ControlText;
this.top.Location = new System.Drawing.Point(6, 0);
this.top.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.top.Name = "top";
this.top.Size = new System.Drawing.Size(414, 46);
this.top.TabIndex = 0;
this.top.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Programtopbar_drag);
//
// programIcon
//
this.programIcon.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.programIcon.ErrorImage = null;
this.programIcon.InitialImage = null;
this.programIcon.Location = new System.Drawing.Point(9, 11);
this.programIcon.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.programIcon.Name = "programIcon";
this.programIcon.Size = new System.Drawing.Size(24, 25);
this.programIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.programIcon.TabIndex = 7;
this.programIcon.TabStop = false;
//
// maximizebutton
//
this.maximizebutton.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.maximizebutton.BackColor = System.Drawing.Color.Black;
this.maximizebutton.Location = new System.Drawing.Point(345, 6);
this.maximizebutton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.maximizebutton.Name = "maximizebutton";
this.maximizebutton.Size = new System.Drawing.Size(32, 32);
this.maximizebutton.TabIndex = 6;
this.maximizebutton.TabStop = false;
this.maximizebutton.MouseDown += new System.Windows.Forms.MouseEventHandler(this.maximizebutton_MouseDown);
this.maximizebutton.MouseEnter += new System.EventHandler(this.maximizebutton_MouseEnter);
this.maximizebutton.MouseLeave += new System.EventHandler(this.maximizebutton_MouseLeave);
this.maximizebutton.MouseUp += new System.Windows.Forms.MouseEventHandler(this.maximizebutton_MouseUp);
//
// minimizebutton
//
this.minimizebutton.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.minimizebutton.BackColor = System.Drawing.Color.Black;
this.minimizebutton.Location = new System.Drawing.Point(310, 6);
this.minimizebutton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.minimizebutton.Name = "minimizebutton";
this.minimizebutton.Size = new System.Drawing.Size(32, 32);
this.minimizebutton.TabIndex = 5;
this.minimizebutton.TabStop = false;
this.minimizebutton.MouseDown += new System.Windows.Forms.MouseEventHandler(this.minimizebutton_MouseDown);
this.minimizebutton.MouseEnter += new System.EventHandler(this.minimizebutton_MouseEnter);
this.minimizebutton.MouseLeave += new System.EventHandler(this.minimizebutton_MouseLeave);
this.minimizebutton.MouseUp += new System.Windows.Forms.MouseEventHandler(this.minimizebutton_MouseUp);
//
// Title
//
this.Title.AutoSize = true;
this.Title.BackColor = System.Drawing.Color.Transparent;
this.Title.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Title.ForeColor = System.Drawing.Color.White;
this.Title.Location = new System.Drawing.Point(38, 12);
this.Title.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.Title.Name = "Title";
this.Title.Size = new System.Drawing.Size(149, 21);
this.Title.TabIndex = 3;
this.Title.Text = "Application Title";
this.Title.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Programtopbar_drag);
//
// closebutton
//
this.closebutton.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.closebutton.BackColor = System.Drawing.Color.Black;
this.closebutton.Location = new System.Drawing.Point(380, 6);
this.closebutton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.closebutton.Name = "closebutton";
this.closebutton.Size = new System.Drawing.Size(32, 32);
this.closebutton.TabIndex = 4;
this.closebutton.TabStop = false;
this.closebutton.Click += new System.EventHandler(this.closebutton_Click);
this.closebutton.MouseDown += new System.Windows.Forms.MouseEventHandler(this.closebutton_MouseDown);
this.closebutton.MouseEnter += new System.EventHandler(this.closebutton_MouseEnter);
this.closebutton.MouseLeave += new System.EventHandler(this.closebutton_MouseLeave);
this.closebutton.MouseUp += new System.Windows.Forms.MouseEventHandler(this.closebutton_MouseUp);
//
// right
//
this.right.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.right.Cursor = System.Windows.Forms.Cursors.SizeWE;
this.right.Dock = System.Windows.Forms.DockStyle.Right;
this.right.Location = new System.Drawing.Point(420, 0);
this.right.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.right.Name = "right";
this.right.Size = new System.Drawing.Size(6, 402);
this.right.TabIndex = 2;
//
// left
//
this.left.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.left.Dock = System.Windows.Forms.DockStyle.Left;
this.left.Location = new System.Drawing.Point(0, 0);
this.left.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.left.Name = "left";
this.left.Size = new System.Drawing.Size(6, 402);
this.left.TabIndex = 1;
//
// ShiftWindow
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(426, 402);
this.Controls.Add(this.program);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.Name = "ShiftWindow";
this.Text = "c";
this.program.ResumeLayout(false);
this.top.ResumeLayout(false);
this.top.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.programIcon)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.maximizebutton)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.minimizebutton)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.closebutton)).EndInit();
this.ResumeLayout(false);
}

View file

@ -1,11 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
@ -13,61 +8,86 @@ namespace ShiftOS.Engine.WindowManager
{
public partial class ShiftWindow : Form
{
public ShiftWindow()
public uint Id { get; private set; }
public UserControl ChildControl { get; set; }
public ShiftWindow()
{
InitializeComponent();
}
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
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")]
public static extern int SendMessage(IntPtr hWnd,
private static extern int SendMessage(IntPtr hWnd,
int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();
private static extern bool ReleaseCapture();
private void Programtopbar_drag(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
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_Click(object sender, EventArgs e)
=> this.Close();
private void closebutton_MouseEnter(object sender, EventArgs e)
{
closebutton.BackColor = Color.Gray;
}
private void closebutton_MouseEnter(object sender, EventArgs e)
=> closebutton.BackColor = Color.Gray;
private void closebutton_MouseLeave(object sender, EventArgs e)
{
closebutton.BackColor = Color.Black;
}
private void closebutton_MouseLeave(object sender, EventArgs e)
=> closebutton.BackColor = Color.Black;
private void maximizebutton_MouseEnter(object sender, EventArgs e)
{
maximizebutton.BackColor = Color.Gray;
}
private void maximizebutton_MouseEnter(object sender, EventArgs e)
=> maximizebutton.BackColor = Color.Gray;
private void maximizebutton_MouseLeave(object sender, EventArgs e)
{
maximizebutton.BackColor = Color.Black;
}
private void maximizebutton_MouseLeave(object sender, EventArgs e)
=> maximizebutton.BackColor = Color.Black;
private void minimizebutton_MouseEnter(object sender, EventArgs e)
{
minimizebutton.BackColor = Color.Gray;
}
private void minimizebutton_MouseEnter(object sender, EventArgs e)
=> minimizebutton.BackColor = Color.Gray;
private void minimizebutton_MouseLeave(object sender, EventArgs e)
{
minimizebutton.BackColor = Color.Black;
}
}
private void minimizebutton_MouseLeave(object sender, EventArgs e)
=> minimizebutton.BackColor = Color.Black;
private void closebutton_MouseDown(object sender, MouseEventArgs e)
=> closebutton.BackColor = Color.Black;
private void maximizebutton_MouseDown(object sender, MouseEventArgs e)
=> maximizebutton.BackColor = Color.Black;
private void minimizebutton_MouseDown(object sender, MouseEventArgs e)
=> minimizebutton.BackColor = Color.Black;
private void minimizebutton_MouseUp(object sender, MouseEventArgs e)
=> minimizebutton.BackColor = Color.Gray;
private void maximizebutton_MouseUp(object sender, MouseEventArgs e)
=> maximizebutton.BackColor = Color.Gray;
private void closebutton_MouseUp(object sender, MouseEventArgs e)
=> closebutton.BackColor = Color.Gray;
}
public interface IShiftWindowExtensions
{
void OnLoaded(ShiftWindow window);
}
}

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Magick.NET-Q16-AnyCPU" version="7.0.7.300" targetFramework="net45" />
</packages>

View file

@ -167,19 +167,19 @@ namespace ShiftOS.Main
textgeninput = lblhackwords;
textgen.Interval = 10;
rtext = "";
TextType("Congratulations, you have been involuntarily selected to be an Alpha Tester for ShiftOS." + Environment.NewLine + Environment.NewLine);
TextType("Congratulations, " + Environment.UserName + "you have been involuntarily selected to be an Alpha Tester for ShiftOS!" + Environment.NewLine + Environment.NewLine);
break;
case 4:
TextType("At this current point in time I do not wish to reveal my identity or future intentions." + Environment.NewLine + Environment.NewLine);
TextType("At this time, I do not wish to reveal any of my intentions and idenity." + Environment.NewLine + Environment.NewLine);
break;
case 5:
TextType("I just need to use you and your computer as an external test bed to evolve my experimental operating system." + Environment.NewLine + Environment.NewLine);
break;
case 6:
TextType("Right now ShiftOS is practically non-existent but Ill work on coding it remotely as you use it." + Environment.NewLine + Environment.NewLine);
TextType("I need to expand the name of ShiftOS, so I'll work on it, and you'll have the chance to use ShiftOS!" + Environment.NewLine + Environment.NewLine);
break;
case 7:
TextType("Your hard drive will now be formatted in preparation for the installation of ShiftOS" + Environment.NewLine + Environment.NewLine);
TextType("Your hard drive will now be formatted in preparation for the installation of ShiftOS." + Environment.NewLine + Environment.NewLine);
break;
case 8:
TextType("Starting Format.");
@ -201,23 +201,23 @@ namespace ShiftOS.Main
rtext = "";
break;
case 20:
TextType("Scanning Drive C:/");
TextType("Scanning Drive C:\\...");
break;
case 21:
TextType(Environment.NewLine + Environment.NewLine + "Drive Label: " + cdrive.VolumeLabel);
break;
case 22:
TextType(Environment.NewLine + "Total Drive Size: " + String.Format((cdrive.TotalSize / 1024 / 1024 / 1024).ToString(), "0.00") + " GigaBytes ");
TextType(Environment.NewLine + "Total Drive Size: " + String.Format((cdrive.TotalSize / 1024 / 1024 / 1024).ToString(), "0.00") + "GB. ");
break;
case 23:
TextType(Environment.NewLine + "Old File System: " + cdrive.DriveFormat + " ");
TextType(Environment.NewLine + "Old File System: " + cdrive.DriveFormat + ". ");
break;
case 24:
TextType(Environment.NewLine + "New File System: ShiftFS ");
TextType(Environment.NewLine + "New File System: ShiftFS. ");
break;
case 25:
TextType(Environment.NewLine + Environment.NewLine + "Formatting C:/ - ");
TextType(Environment.NewLine + Environment.NewLine + "Formatting C:\\... - ");
conversationtimer.Interval = 100;
break;
case 26: // TODO: to 126

View file

@ -1,8 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using ShiftOS.Main.ShiftOS;
namespace ShiftOS.Main
{
@ -16,7 +15,10 @@ namespace ShiftOS.Main
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new TestForm());
Parallel.Invoke(
() => Application.Run(new TestForm()),
() => Application.Run(new Desktop()));
}
}
}

View file

@ -76,6 +76,12 @@
<Compile Include="ShiftOS\Apps\TestForm.Designer.cs">
<DependentUpon>TestForm.cs</DependentUpon>
</Compile>
<Compile Include="ShiftOS\Desktop.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ShiftOS\Desktop.Designer.cs">
<DependentUpon>Desktop.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="HijackScreen.resx">
<DependentUpon>HijackScreen.cs</DependentUpon>
</EmbeddedResource>
@ -101,6 +107,9 @@
<EmbeddedResource Include="ShiftOS\Apps\TestForm.resx">
<DependentUpon>TestForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ShiftOS\Desktop.resx">
<DependentUpon>Desktop.cs</DependentUpon>
</EmbeddedResource>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>

View file

@ -28,32 +28,47 @@
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(18, 16);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(35, 13);
this.label1.TabIndex = 0;
this.label1.Text = "label1";
//
// ShiftDemo
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.label1);
this.Name = "ShiftDemo";
this.Size = new System.Drawing.Size(300, 300);
this.ResumeLayout(false);
this.PerformLayout();
this.label1 = new System.Windows.Forms.Label();
this.icon = new System.Windows.Forms.PictureBox();
((System.ComponentModel.ISupportInitialize)(this.icon)).BeginInit();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(27, 25);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(51, 20);
this.label1.TabIndex = 0;
this.label1.Text = "label1";
//
// icon
//
this.icon.Location = new System.Drawing.Point(31, 61);
this.icon.Name = "icon";
this.icon.Size = new System.Drawing.Size(300, 300);
this.icon.TabIndex = 1;
this.icon.TabStop = false;
//
// ShiftDemo
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.icon);
this.Controls.Add(this.label1);
this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.Name = "ShiftDemo";
this.Size = new System.Drawing.Size(450, 462);
((System.ComponentModel.ISupportInitialize)(this.icon)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
public System.Windows.Forms.Label label1;
}
private System.Windows.Forms.PictureBox icon;
}
}

View file

@ -7,14 +7,20 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ShiftOS.Engine.WindowManager;
namespace ShiftOS.Main
{
public partial class ShiftDemo : UserControl
public partial class ShiftDemo : UserControl, IShiftWindowExtensions
{
public ShiftDemo()
{
InitializeComponent();
}
}
public void OnLoaded(ShiftWindow window)
{
icon.Image = this.GetShiftWindow().Icon.ToBitmap();
}
}
}

View file

@ -1,11 +1,5 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ShiftOS.Engine.WindowManager;
@ -13,11 +7,10 @@ namespace ShiftOS.Main.ShiftOS.Apps
{
public partial class SelectColor : UserControl
{
ShiftWM shiftWM = new ShiftWM();
Color finalColor;
int colorType1;
int colorType2;
int colorType3;
Color _finalColor;
int _colorType1;
int _colorType2;
int _colorType3;
public SelectColor()
{
InitializeComponent();
@ -28,31 +21,31 @@ namespace ShiftOS.Main.ShiftOS.Apps
{
try
{
colorType1 = Convert.ToInt32(textBox1.Text);
colorType2 = Convert.ToInt32(textBox2.Text);
colorType3 = Convert.ToInt32(textBox3.Text);
_colorType1 = Convert.ToInt32(textBox1.Text);
_colorType2 = Convert.ToInt32(textBox2.Text);
_colorType3 = Convert.ToInt32(textBox3.Text);
}
catch
catch(FormatException ex)
{
shiftWM.StartInfoboxSession("Error!", "Cannot parse a string.", InfoboxTemplate.buttonType.OK);
ShiftWM.StartInfoboxSession("Error!", "Failed to parse integer. Error:\n" + ex, InfoboxTemplate.ButtonType.Ok);
}
if (colorType1 > 255 || colorType2 > 255 || colorType3 > 255)
if (_colorType1 > 255 || _colorType2 > 255 || _colorType3 > 255)
{
shiftWM.StartInfoboxSession("Error!", "A value cannot be greater than 255!", InfoboxTemplate.buttonType.OK);
ShiftWM.StartInfoboxSession("Error!", "A value cannot be greater than 255!", InfoboxTemplate.ButtonType.Ok);
}
else
{
try
{
ShiftWindow sw = new ShiftWindow();
finalColor = Color.FromArgb(colorType1, colorType2, colorType3);
this.BackColor = finalColor;
shiftWM.StartInfoboxSession("Success!", "Changed color to:\n" + colorType1.ToString() + ", " + colorType2.ToString() + ", " + colorType3.ToString() + ".", InfoboxTemplate.buttonType.OK);
_finalColor = Color.FromArgb(_colorType1, _colorType2, _colorType3);
BackColor = _finalColor;
ShiftWM.StartInfoboxSession("Success!", "Changed color to:\n" + _colorType1.ToString() + ", " + _colorType2.ToString() + ", " + _colorType3.ToString() + ".", InfoboxTemplate.ButtonType.Ok);
}
catch (Exception ex)
catch (Exception)
{
shiftWM.StartInfoboxSession("Error!", "An exception occured while setting the color! Exception: \n" + ex, InfoboxTemplate.buttonType.OK);
ShiftWM.StartInfoboxSession("Error!", "An error occured while setting the color.", InfoboxTemplate.ButtonType.Ok);
}
}
}

View file

@ -1,12 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ShiftOS.Engine;
using ShiftOS.Engine.WindowManager;
namespace ShiftOS.Main.ShiftOS.Apps
@ -14,7 +8,6 @@ namespace ShiftOS.Main.ShiftOS.Apps
public partial class Shifter : UserControl
{
public int colorType; //This is a check to see what option was chosen.
ShiftWM wm = new ShiftWM();
public Shifter()
{
InitializeComponent();
@ -23,7 +16,7 @@ namespace ShiftOS.Main.ShiftOS.Apps
private void button1_Click(object sender, EventArgs e)
{
colorType = 1;
wm.Init(new SelectColor(), "Select a color", Properties.Resources.iconColourPicker_fw);
ShiftWM.Init(new SelectColor(), "Select a color", Properties.Resources.iconColourPicker_fw.ToIcon());
}
}
}

View file

@ -28,61 +28,95 @@
/// </summary>
private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(12, 13);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(260, 20);
this.textBox1.TabIndex = 0;
this.textBox1.Text = "Title";
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(12, 39);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(260, 20);
this.textBox2.TabIndex = 1;
this.textBox2.Text = "Contents";
//
// button1
//
this.button1.Location = new System.Drawing.Point(12, 65);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(128, 23);
this.button1.TabIndex = 2;
this.button1.Text = "Create Window";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.Button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(146, 65);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(126, 23);
this.button2.TabIndex = 4;
this.button2.Text = "Test Shifter";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// TestForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 100);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.textBox1);
this.Name = "TestForm";
this.Text = "TestForm";
this.ResumeLayout(false);
this.PerformLayout();
this.components = new System.ComponentModel.Container();
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.comboBox1 = new System.Windows.Forms.ComboBox();
this.systemIconsBindingSource = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.systemIconsBindingSource)).BeginInit();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(18, 20);
this.textBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(388, 26);
this.textBox1.TabIndex = 0;
this.textBox1.Text = "Title";
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(18, 60);
this.textBox2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(388, 26);
this.textBox2.TabIndex = 1;
this.textBox2.Text = "Contents";
//
// button1
//
this.button1.Location = new System.Drawing.Point(13, 149);
this.button1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(192, 35);
this.button1.TabIndex = 2;
this.button1.Text = "Create Window";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.Button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(217, 149);
this.button2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(189, 35);
this.button2.TabIndex = 4;
this.button2.Text = "Test Shifter";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// comboBox1
//
this.comboBox1.FormattingEnabled = true;
this.comboBox1.Items.AddRange(new object[] {
"Application",
"Asterisk",
"Error",
"Exclamation",
"Hand",
"Information",
"Question",
"Shield",
"Warning",
"WinLogo"});
this.comboBox1.Location = new System.Drawing.Point(18, 104);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(388, 28);
this.comboBox1.TabIndex = 5;
//
// systemIconsBindingSource
//
this.systemIconsBindingSource.DataSource = typeof(System.Drawing.SystemIcons);
//
// TestForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(426, 198);
this.Controls.Add(this.comboBox1);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.textBox1);
this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.Name = "TestForm";
this.Text = "TestForm";
((System.ComponentModel.ISupportInitialize)(this.systemIconsBindingSource)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
@ -92,5 +126,7 @@
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
}
private System.Windows.Forms.ComboBox comboBox1;
private System.Windows.Forms.BindingSource systemIconsBindingSource;
}
}

View file

@ -1,5 +1,8 @@
using System;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using ShiftOS.Engine;
using ShiftOS.Engine.WindowManager;
using ShiftOS.Main.ShiftOS.Apps;
@ -7,8 +10,6 @@ namespace ShiftOS.Main
{
public partial class TestForm : Form
{
public ShiftWM shiftWM = new ShiftWM();
public TestForm()
{
InitializeComponent();
@ -16,15 +17,16 @@ namespace ShiftOS.Main
private void Button1_Click(object sender, EventArgs e)
{
ShiftDemo demo = new ShiftDemo();
demo.label1.Text = textBox2.Text;
shiftWM.Init(demo, textBox1.Text, null);
shiftWM.StartInfoboxSession(textBox1.Text, textBox2.Text, InfoboxTemplate.buttonType.OK);
ShiftDemo demo = new ShiftDemo {label1 = {Text = textBox2.Text}};
var item = typeof(SystemIcons).GetProperties()
.First(p => p.Name == comboBox1.SelectedItem as string);
ShiftWM.Init(demo, textBox1.Text, (item.GetMethod.Invoke(null, new object[0]) as Icon));
ShiftWM.StartInfoboxSession(textBox1.Text, textBox2.Text, InfoboxTemplate.ButtonType.Ok);
}
private void button2_Click(object sender, EventArgs e)
{
shiftWM.Init(new Shifter(), "Shifter", Properties.Resources.iconShifter);
}
private void button2_Click(object sender, EventArgs e)
=> ShiftWM.Init(new Shifter(), "Shifter", Properties.Resources.iconShifter.ToIcon());
}
}

View file

@ -117,4 +117,7 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="systemIconsBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

111
ShiftOS.Main/ShiftOS/Desktop.Designer.cs generated Normal file
View file

@ -0,0 +1,111 @@
namespace ShiftOS.Main.ShiftOS
{
partial class Desktop
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.listView1 = new System.Windows.Forms.ListView();
this.taskbar = new System.Windows.Forms.ToolStrip();
this.toolStripDropDownButton1 = new System.Windows.Forms.ToolStripDropDownButton();
this.taskbarClock = new System.Windows.Forms.ToolStripLabel();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.taskbar.SuspendLayout();
this.SuspendLayout();
//
// listView1
//
this.listView1.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.listView1.Dock = System.Windows.Forms.DockStyle.Fill;
this.listView1.Location = new System.Drawing.Point(0, 0);
this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(1962, 1236);
this.listView1.TabIndex = 0;
this.listView1.UseCompatibleStateImageBehavior = false;
//
// taskbar
//
this.taskbar.Dock = System.Windows.Forms.DockStyle.Bottom;
this.taskbar.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
this.taskbar.ImageScalingSize = new System.Drawing.Size(24, 24);
this.taskbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripDropDownButton1,
this.taskbarClock});
this.taskbar.Location = new System.Drawing.Point(0, 1204);
this.taskbar.Name = "taskbar";
this.taskbar.Size = new System.Drawing.Size(1962, 32);
this.taskbar.TabIndex = 1;
this.taskbar.Text = "toolStrip1";
//
// toolStripDropDownButton1
//
this.toolStripDropDownButton1.Image = global::ShiftOS.Main.Properties.Resources.iconWebBrowser;
this.toolStripDropDownButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripDropDownButton1.Name = "toolStripDropDownButton1";
this.toolStripDropDownButton1.Size = new System.Drawing.Size(131, 29);
this.toolStripDropDownButton1.Tag = ((uint)(0u));
this.toolStripDropDownButton1.Text = "Programs";
//
// taskbarClock
//
this.taskbarClock.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.taskbarClock.Image = global::ShiftOS.Main.Properties.Resources.iconClock;
this.taskbarClock.Name = "taskbarClock";
this.taskbarClock.Size = new System.Drawing.Size(70, 29);
this.taskbarClock.Tag = ((uint)(0u));
this.taskbarClock.Text = "0:00";
//
// timer1
//
this.timer1.Interval = 1000;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// Desktop
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1962, 1236);
this.Controls.Add(this.taskbar);
this.Controls.Add(this.listView1);
this.Name = "Desktop";
this.Text = "Desktop";
this.taskbar.ResumeLayout(false);
this.taskbar.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ListView listView1;
private System.Windows.Forms.ToolStrip taskbar;
private System.Windows.Forms.ToolStripDropDownButton toolStripDropDownButton1;
private System.Windows.Forms.ToolStripLabel taskbarClock;
private System.Windows.Forms.Timer timer1;
}
}

View file

@ -0,0 +1,61 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ShiftOS.Engine.WindowManager;
namespace ShiftOS.Main.ShiftOS
{
public partial class Desktop : Form
{
public Desktop()
{
InitializeComponent();
timer1.Start();
this.Closed += (sender, args) =>
{
Application.Exit();
};
#region Disgusting taskbar code
ShiftWM.Windows.CollectionChanged += (sender, args) =>
{
args.NewItems?.OfType<ShiftWindow>().ToList().ForEach(window =>
{
taskbar.Invoke(new Action(() =>
{
taskbar.Items.Add(new ToolStripButton
{
Text = window.Title.Text,
Image = window.Icon.ToBitmap(),
Tag = window.Id
});
}));
});
args.OldItems?.OfType<ShiftWindow>().ToList().ForEach(window =>
{
taskbar.Invoke(new Action(() =>
{
var tbRemovalList = taskbar.Items.OfType<ToolStripItem>().Where(i => (uint) i.Tag == window.Id);
tbRemovalList.ToList().ForEach(p => taskbar.Items.Remove(p));
}));
});
};
#endregion
}
private void timer1_Tick(object sender, EventArgs e) =>
taskbarClock.Text = $"{DateTime.Now:t}";
}
}

View file

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="taskbar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>159, 17</value>
</metadata>
</root>