diff options
Diffstat (limited to 'source/WindowsFormsApplication1/Dialogs/Graphic_Picker.cs')
| -rw-r--r-- | source/WindowsFormsApplication1/Dialogs/Graphic_Picker.cs | 249 |
1 files changed, 249 insertions, 0 deletions
diff --git a/source/WindowsFormsApplication1/Dialogs/Graphic_Picker.cs b/source/WindowsFormsApplication1/Dialogs/Graphic_Picker.cs new file mode 100644 index 0000000..1df302d --- /dev/null +++ b/source/WindowsFormsApplication1/Dialogs/Graphic_Picker.cs @@ -0,0 +1,249 @@ +using Svg; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace ShiftOS +{ + + public partial class Graphic_Picker : Form + { + /// <summary> + /// Graphic Picker GUI. + /// </summary> + /// <param name="elementName">Name of element.</param> + /// <param name="showMouseImages">Should mouse images be shown?</param> + public Graphic_Picker(string elementName, bool showMouseImages) + { + InitializeComponent(); + ElementName = elementName; + ShowMouseImages = showMouseImages; + } + + private string ElementName = "Close Button"; + public ImageLayout ImageLayout = ImageLayout.Stretch; + public Image IdleImage = null; + public Image MouseOverImage = null; + public Image MouseDownImage = null; + private bool ShowMouseImages = false; + + /// <summary> + /// Sets up the user interface. + /// </summary> + private void SetupGUI() + { + lblobjecttoskin.Text = ElementName; + btnstretch.BackgroundImage = Properties.Resources.stretchbutton; + btntile.BackgroundImage = Properties.Resources.tilebutton; + btncentre.BackgroundImage = Properties.Resources.centrebutton; + btnzoom.BackgroundImage = Properties.Resources.zoombutton; + switch(this.ImageLayout) + { + case ImageLayout.Stretch: + btnstretch.BackgroundImage = Properties.Resources.stretchbuttonpressed; + break; + case ImageLayout.Tile: + btntile.BackgroundImage = Properties.Resources.tilebuttonpressed; + break; + case ImageLayout.Center: + btncentre.BackgroundImage = Properties.Resources.centrebuttonpressed; + break; + default: + btnzoom.BackgroundImage = Properties.Resources.zoombuttonpressed; + break; + } + if(ShowMouseImages == true) + { + txtmousedownfile.Show(); + txtmouseoverfile.Show(); + Label3.Show(); + Label4.Show(); + picmousedown.Show(); + picmouseover.Show(); + btnmousedownbrowse.Show(); + btnmouseoverbrowse.Show(); + this.Height = MOUSE_IMAGES_WINDOW_HEIGHT; + } + else + { + txtmousedownfile.Hide(); + txtmouseoverfile.Hide(); + Label3.Hide(); + Label4.Hide(); + picmousedown.Hide(); + picmouseover.Hide(); + btnmousedownbrowse.Hide(); + btnmouseoverbrowse.Hide(); + this.Height = IDLE_ONLY_WINDOW_HEIGHT; + + } + picidle.BackgroundImage = IdleImage; + picidle.BackgroundImageLayout = this.ImageLayout; + picmousedown.BackgroundImage = MouseDownImage; + picidle.BackgroundImageLayout = this.ImageLayout; + picmouseover.BackgroundImage = MouseOverImage; + picidle.BackgroundImageLayout = this.ImageLayout; + txtidlefile.Text = idle_filename; + txtmousedownfile.Text = mousedown_filename; + txtmouseoverfile.Text = mouseover_filename; + } + + private const int MOUSE_IMAGES_WINDOW_HEIGHT = 570; + private const int IDLE_ONLY_WINDOW_HEIGHT = 382; + private void btntile_Click(object sender, EventArgs e) + { + this.ImageLayout = ImageLayout.Tile; + SetupGUI(); + } + + private void btncentre_Click(object sender, EventArgs e) + { + this.ImageLayout = ImageLayout.Center; + SetupGUI(); + } + + private void btnstretch_Click(object sender, EventArgs e) + { + this.ImageLayout = ImageLayout.Stretch; + SetupGUI(); + } + + private string idle_filename = "None"; + private string mouseover_filename = "None"; + private string mousedown_filename = "None"; + + + private void btnzoom_Click(object sender, EventArgs e) + { + this.ImageLayout = ImageLayout.Zoom; + SetupGUI(); + } + + private void btnmouseoverbrowse_Click(object sender, EventArgs e) + { + API.CreateFileSkimmerSession(".pic;.svg;.png;.bmp;.jpg", File_Skimmer.FileSkimmerMode.Open); + API.FileSkimmerSession.FormClosing += (object s, FormClosingEventArgs a) => + { + string result = API.GetFSResult(); + if(result != "fail") + { + var finf = new FileInfo(result); + if (finf.Extension == ".svg") + { + MouseOverImage = SVGtoPNG(finf.FullName); + } + else { + MouseOverImage = Image.FromFile(result); + } + + mouseover_filename = finf.Name; + MOFullName = finf.FullName; + } + SetupGUI(); + }; + } + + /// <summary> + /// Scalable Vector Graphics parser. + /// </summary> + /// <param name="svg">Path to .svg file.</param> + /// <returns>The new System.Drawing.Image.</returns> + private Image SVGtoPNG(string svg) + { + + + var svgDocument = SvgDocument.Open(svg); + return svgDocument.Draw(); + + } + + private void btnidlebrowse_Click(object sender, EventArgs e) + { + API.CreateFileSkimmerSession(".pic;.svg;.png;.bmp;.jpg", File_Skimmer.FileSkimmerMode.Open); + API.FileSkimmerSession.FormClosing += (object s, FormClosingEventArgs a) => + { + string result = API.GetFSResult(); + if (result != "fail") + { + var finf = new FileInfo(result); + if (finf.Extension == ".svg") + { + IdleImage = SVGtoPNG(finf.FullName); + } + else { + IdleImage = Image.FromFile(result); + } + idle_filename = finf.Name; + IdleFullName = finf.FullName; + } + SetupGUI(); + }; + } + + private void btnmousedownbrowse_Click(object sender, EventArgs e) + { + API.CreateFileSkimmerSession(".pic;.svg;.png;.bmp;.jpg", File_Skimmer.FileSkimmerMode.Open); + API.FileSkimmerSession.FormClosing += (object s, FormClosingEventArgs a) => + { + string result = API.GetFSResult(); + if (result != "fail") + { + var finf = new FileInfo(result); + if (finf.Extension == ".svg") + { + MouseDownImage = SVGtoPNG(finf.FullName); + } + else { + MouseDownImage = Image.FromFile(result); + } + + mousedown_filename = finf.Name; + MDFullName = finf.FullName; + } + SetupGUI(); + }; + } + + public string Result = "Cancelled"; + + private void Graphic_Picker_Load(object sender, EventArgs e) + { + + SetupGUI(); + } + + private void btnreset_Click(object sender, EventArgs e) + { + IdleImage = null; + MouseOverImage = null; + MouseDownImage = null; + idle_filename = "None"; + mouseover_filename = "None"; + mousedown_filename = "None"; + SetupGUI(); + } + + private void btncancel_Click(object sender, EventArgs e) + { + Result = "Cancelled"; + this.Close(); + } + + public string IdleFullName = null; + public string MOFullName = null; + public string MDFullName = null; + + private void btnapply_Click(object sender, EventArgs e) + { + Result = "OK"; + this.Close(); + } + } +} |
