aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.WinForms/Applications/Artpad.cs
diff options
context:
space:
mode:
authorMichael <[email protected]>2017-01-08 09:57:10 -0500
committerMichael <[email protected]>2017-01-08 09:57:10 -0500
commitf30dcf5ef41d54c588d7b42c48be8d941abba72e (patch)
tree7705f99b965673b1c034ac2b1c56e65072c827df /ShiftOS.WinForms/Applications/Artpad.cs
parent69dfad54724d4176dfce238a8d7e73970e6eef24 (diff)
downloadshiftos_thereturn-f30dcf5ef41d54c588d7b42c48be8d941abba72e.tar.gz
shiftos_thereturn-f30dcf5ef41d54c588d7b42c48be8d941abba72e.tar.bz2
shiftos_thereturn-f30dcf5ef41d54c588d7b42c48be8d941abba72e.zip
Initial upload
Diffstat (limited to 'ShiftOS.WinForms/Applications/Artpad.cs')
-rw-r--r--ShiftOS.WinForms/Applications/Artpad.cs1853
1 files changed, 1853 insertions, 0 deletions
diff --git a/ShiftOS.WinForms/Applications/Artpad.cs b/ShiftOS.WinForms/Applications/Artpad.cs
new file mode 100644
index 0000000..0d80094
--- /dev/null
+++ b/ShiftOS.WinForms/Applications/Artpad.cs
@@ -0,0 +1,1853 @@
+using ShiftOS.Objects.ShiftFS;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Drawing.Drawing2D;
+using System.Drawing.Imaging;
+using System.Drawing.Text;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using ShiftOS.WinForms.Tools;
+using ShiftOS.Engine;
+
+namespace ShiftOS.WinForms.Applications
+{
+ [Launcher("Artpad", true, "al_artpad")]
+ [RequiresUpgrade("artpad")]
+ [WinOpen("artpad")]
+ public partial class Artpad : UserControl, IShiftOSWindow
+ {
+ /// <summary>
+ /// artpad_'s GUI.
+ /// </summary>
+ public Artpad()
+ {
+ try
+ {
+ InitializeComponent();
+ }
+ catch (Exception ex)
+ {
+ CrashHandler.Start(ex);
+ this.Close();
+ }
+ }
+
+ public void LoadPicture(string pic)
+ {
+ savelocation = pic;
+ this.openpic();
+ }
+
+ #region Variables
+
+ public int rolldownsize;
+ public int oldbordersize;
+ public int oldtitlebarheight;
+ public bool justopened = false;
+ public bool needtorollback = false;
+ public int minimumsizewidth = 502;
+
+ public int minimumsizeheight = 398;
+ public int codepointsearned;
+ public bool codepointscooldown = false;
+
+ public bool needtosave = false;
+ int canvaswidth = 150;
+ int canvasheight = 100;
+ public Bitmap canvasbitmap;
+
+ Color canvascolor = Color.White;
+
+ Bitmap previewcanvasbitmap;
+ int magnificationlevel = 1;
+ Rectangle magnifyRect;
+ Graphics graphicsbitmap;
+ public Color drawingcolour = Color.Black;
+ string selectedtool = "Pixel Setter";
+ bool pixalplacermovable = false;
+ public string savelocation;
+ System.Drawing.Drawing2D.GraphicsPath mousePath = new System.Drawing.Drawing2D.GraphicsPath();
+ int pencilwidth = 1;
+ undo undo = new undo();
+ Point thisPoint;
+ int eracerwidth = 15;
+
+ string eracertype = "square";
+ int paintbrushwidth = 15;
+
+ string paintbrushtype = "circle";
+ float rectanglestartpointx;
+ float rectanglestartpointy;
+ bool currentlydrawingsquare;
+ int squarewidth = 1;
+ bool squarefillon = false;
+
+ Color fillsquarecolor = Color.Black;
+ float ovalstartpointx;
+ float ovalstartpointy;
+ bool currentlydrawingoval;
+ int ovalwidth = 2;
+ bool ovalfillon = false;
+
+ Color fillovalcolor = Color.Black;
+ float linestartpointx;
+ float linestartpointy;
+ bool currentlydrawingline;
+
+ int linewidth = 2;
+ bool currentlydrawingtext;
+ System.Drawing.Font drawtextfont = new System.Drawing.Font("Microsoft Sans Serif", 16);
+ int drawtextsize;
+ string drawtextfontname;
+
+ FontStyle drawtextfontstyle;
+
+ #endregion
+
+ #region Setup
+
+ private void Template_Load(object sender, EventArgs e)
+ {
+ justopened = true;
+ this.Left = (Screen.PrimaryScreen.Bounds.Width - this.Width) / 2;
+ this.Top = (Screen.PrimaryScreen.Bounds.Height - this.Height) / 2;
+
+ setuppreview();
+ settoolcolours();
+ loadcolors();
+ AddFonts();
+ setuptoolbox();
+ determinevisiblepalettes();
+ tmrsetupui.Start();
+ }
+
+
+
+ public void setupcanvas()
+ {
+ canvasbitmap = new Bitmap(canvaswidth, canvasheight);
+ previewcanvasbitmap = new Bitmap(canvaswidth, canvasheight);
+ picdrawingdisplay.Size = new Size(canvaswidth, canvasheight);
+ picdrawingdisplay.Location = new Point((pnldrawingbackground.Width - canvaswidth) / 2, (pnldrawingbackground.Height - canvasheight) / 2);
+ graphicsbitmap = Graphics.FromImage(canvasbitmap);
+ SolidBrush canvasbrush = new SolidBrush(canvascolor);
+ graphicsbitmap.FillRectangle(canvasbrush, 0, 0, canvaswidth, canvasheight);
+ magnificationlevel = 1;
+ lblzoomlevel.Text = magnificationlevel + "X";
+ setuppreview();
+ needtosave = false;
+ }
+
+ public void setuptoolbox()
+ {
+ btnpixelplacer.Hide();
+ btnpencil.Hide();
+ btnfloodfill.Hide();
+ btnoval.Hide();
+ btnsquare.Hide();
+ btnlinetool.Hide();
+ btnpaintbrush.Hide();
+ btntexttool.Hide();
+ btneracer.Hide();
+ btnnew.Hide();
+ btnopen.Hide();
+ btnsave.Hide();
+ btnundo.Hide();
+ btnredo.Hide();
+ btnpixelplacermovementmode.Hide();
+
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_pixel_placer") == true)
+ btnpixelplacer.Show();
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_pencil") == true)
+ btnpencil.Show();
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_fill_tool") == true)
+ btnfloodfill.Show();
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_oval_tool") == true)
+ btnoval.Show();
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_rectangle_tool") == true)
+ btnsquare.Show();
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_line_tool") == true)
+ btnlinetool.Show();
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_paintbrush") == true)
+ btnpaintbrush.Show();
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_text_tool") == true)
+ btntexttool.Show();
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_eraser") == true)
+ btneracer.Show();
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_new") == true)
+ btnnew.Show();
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_load") == true)
+ btnopen.Show();
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_save") == true)
+ btnsave.Show();
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_undo") == true)
+ btnundo.Show();
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_redo") == true)
+ btnredo.Show();
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_pp_movement_mode") == true)
+ btnpixelplacermovementmode.Show();
+
+ }
+
+ private void AddFonts()
+ {
+ // Get the installed fonts collection.
+ InstalledFontCollection allFonts = new InstalledFontCollection();
+
+ // Get an array of the system's font familiies.
+ FontFamily[] fontFamilies = allFonts.Families;
+
+ // Display the font families.
+ foreach (FontFamily myFont in fontFamilies)
+ {
+ combodrawtextfont.Items.Add(myFont.Name);
+ }
+ //font_family
+
+ combodrawtextfont.SelectedItem = combodrawtextfont.Items[1];
+ combofontstyle.Text = "Regular";
+ txtdrawtextsize.Text = "16";
+ }
+
+ #endregion
+
+ #region General
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnpixelsetter_Click(object sender, EventArgs e)
+ {
+ selectedtool = "Pixel Setter";
+ gettoolsettings(pnlpixelsettersettings);
+ }
+
+ private void gettoolsettings(Panel toolpanel)
+ {
+ //hide all properties panels
+ pnlpixelsettersettings.Hide();
+ pnlmagnifiersettings.Hide();
+
+ //show chosen panel
+ toolpanel.Dock = DockStyle.Fill;
+ toolpanel.BringToFront();
+ toolpanel.Show();
+
+ setuppreview();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnpixelsettersetpixel_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ undo.undoStack.Push((Image)canvasbitmap.Clone());
+ undo.redoStack.Clear();
+ canvasbitmap.SetPixel(Convert.ToInt32(txtpixelsetterxcoordinate.Text), Convert.ToInt32(txtpixelsetterycoordinate.Text), drawingcolour);
+ picdrawingdisplay.Invalidate();
+ }
+ catch
+ {
+ Infobox.Show("{ARTPAD_PLACEMENT_ERROR}", "{ARTPAD_PLACEMENT_ERROR_EXP}");
+ }
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnmagnify_Click(object sender, EventArgs e)
+ {
+ selectedtool = "Magnifier";
+ gettoolsettings(pnlmagnifiersettings);
+ }
+
+ #endregion
+
+ #region Drawing Display
+
+ // ERROR: Handles clauses are not supported in C#
+ private void picdrawingdisplay_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
+ {
+ e.Graphics.FillRectangle(Brushes.White, 0, 0, canvaswidth * magnificationlevel, canvasheight * magnificationlevel);
+ e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor;
+ e.Graphics.PixelOffsetMode = PixelOffsetMode.Half;
+ e.Graphics.ScaleTransform(magnificationlevel, magnificationlevel);
+
+ if (currentlydrawingsquare == true)
+ {
+ GC.Collect();
+ Graphics g = Graphics.FromImage(previewcanvasbitmap);
+ previewcanvasbitmap = new Bitmap(canvasbitmap.Width, canvasbitmap.Height);
+ g = Graphics.FromImage(previewcanvasbitmap);
+ var CurrentPen = new Pen(Color.FromArgb(255, drawingcolour), squarewidth);
+ var CurrentBrush = new SolidBrush(Color.FromArgb(255, fillsquarecolor));
+ RectangleF rectdraw = new RectangleF(rectanglestartpointx, rectanglestartpointy, thisPoint.X - rectanglestartpointx, thisPoint.Y - rectanglestartpointy);
+ int heightamount;
+ int widthamount;
+ if (rectdraw.Height < 0)
+ heightamount = (int)Math.Abs(rectdraw.Height);
+ else
+ heightamount = 0;
+ if (rectdraw.Width < 0)
+ widthamount = (int)Math.Abs(rectdraw.Width);
+ else
+ widthamount = 0;
+ if (squarewidth > 0)
+ {
+ g.DrawRectangle(CurrentPen, rectdraw.X - widthamount, rectdraw.Y - heightamount, Math.Abs(rectdraw.Width), Math.Abs(rectdraw.Height));
+ }
+ if (squarefillon == true)
+ {
+ float correctionamount = squarewidth / 2;
+ int addfillamount;
+ if (squarewidth > 0)
+ addfillamount = squarewidth;
+ else
+ addfillamount = -1;
+ g.FillRectangle(CurrentBrush, (rectdraw.X - widthamount) + correctionamount, (rectdraw.Y - heightamount) + correctionamount, Math.Abs(rectdraw.Width) - addfillamount, Math.Abs(rectdraw.Height) - addfillamount);
+ }
+ }
+
+ if (currentlydrawingoval == true)
+ {
+ GC.Collect();
+ Graphics g = Graphics.FromImage(previewcanvasbitmap);
+ previewcanvasbitmap = new Bitmap(canvasbitmap.Width, canvasbitmap.Height);
+ g = Graphics.FromImage(previewcanvasbitmap);
+ var CurrentPen = new Pen(Color.FromArgb(255, drawingcolour), ovalwidth);
+ var CurrentBrush = new SolidBrush(Color.FromArgb(255, fillovalcolor));
+ RectangleF ovaldraw = new RectangleF(ovalstartpointx, ovalstartpointy, thisPoint.X - ovalstartpointx, thisPoint.Y - ovalstartpointy);
+ int heightamount;
+ int widthamount;
+ if (ovaldraw.Height < 0)
+ heightamount = (int)Math.Abs(ovaldraw.Height);
+ else
+ heightamount = 0;
+ if (ovaldraw.Width < 0)
+ widthamount = (int)Math.Abs(ovaldraw.Width);
+ else
+ widthamount = 0;
+ if (ovalwidth > 0)
+ {
+ g.DrawEllipse(CurrentPen, ovaldraw.X - widthamount, ovaldraw.Y - heightamount, Math.Abs(ovaldraw.Width), Math.Abs(ovaldraw.Height));
+ }
+ if (ovalfillon == true)
+ {
+ g.FillEllipse(CurrentBrush, (ovaldraw.X - widthamount), (ovaldraw.Y - heightamount), Math.Abs(ovaldraw.Width), Math.Abs(ovaldraw.Height));
+ }
+ }
+
+ if (currentlydrawingline == true)
+ {
+ GC.Collect();
+ Graphics g = Graphics.FromImage(previewcanvasbitmap);
+ previewcanvasbitmap = new Bitmap(canvasbitmap.Width, canvasbitmap.Height);
+ g = Graphics.FromImage(previewcanvasbitmap);
+ var CurrentPen = new Pen(Color.FromArgb(255, drawingcolour), linewidth);
+ g.DrawLine(CurrentPen, linestartpointx, linestartpointy, thisPoint.X, thisPoint.Y);
+ }
+
+ if (currentlydrawingtext == true)
+ {
+ GC.Collect();
+ Graphics g = Graphics.FromImage(previewcanvasbitmap);
+ previewcanvasbitmap = new Bitmap(canvasbitmap.Width, canvasbitmap.Height);
+ g = Graphics.FromImage(previewcanvasbitmap);
+ var CurrentBrush = new SolidBrush(Color.FromArgb(255, drawingcolour));
+ g.TextRenderingHint = TextRenderingHint.SingleBitPerPixelGridFit;
+ drawtextfont = new System.Drawing.Font(drawtextfontname, drawtextsize, drawtextfontstyle);
+ g.DrawString(txtdrawstringtext.Text, drawtextfont, CurrentBrush, thisPoint.X, thisPoint.Y);
+ }
+ try
+ {
+ e.Graphics.DrawImage(canvasbitmap, 0, 0);
+ e.Graphics.DrawImage(previewcanvasbitmap, 0, 0);
+ }
+ catch
+ {
+
+ }
+ }
+
+
+
+ // ERROR: Handles clauses are not supported in C#
+ private void picdrawingdisplay_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
+ {
+ undo.undoStack.Push((Image)canvasbitmap.Clone());
+ undo.redoStack.Clear();
+
+
+ thisPoint.X = (int)(e.Location.X - (magnificationlevel / 2)) / magnificationlevel;
+ thisPoint.Y = (int)(e.Location.Y - (magnificationlevel / 2)) / magnificationlevel;
+
+ if (selectedtool == "Pixel Placer")
+ {
+ if (e.Button == MouseButtons.Left)
+ {
+ if (thisPoint.X < canvasbitmap.Width && thisPoint.X > -1)
+ {
+ if (thisPoint.Y < canvasbitmap.Height && thisPoint.Y > -1)
+ {
+ canvasbitmap.SetPixel(thisPoint.X, thisPoint.Y, drawingcolour);
+ //set the pixel on the canvas
+ picdrawingdisplay.Invalidate();
+ //refresh the picture from the canvas
+ }
+ }
+ }
+ }
+
+ if (selectedtool == "Pencil")
+ {
+ if (e.Button == MouseButtons.Left)
+ {
+ mousePath.StartFigure();
+ picdrawingdisplay.Invalidate();
+ }
+ }
+
+ if (selectedtool == "Flood Fill")
+ {
+ if (e.Button == MouseButtons.Left)
+ {
+ if (thisPoint.X < canvasbitmap.Width && thisPoint.X > -1)
+ {
+ if (thisPoint.Y < canvasbitmap.Height && thisPoint.Y > -1)
+ {
+ SafeFloodFill(canvasbitmap, thisPoint.X, thisPoint.Y, drawingcolour);
+ graphicsbitmap = Graphics.FromImage(canvasbitmap);
+ picdrawingdisplay.Invalidate();
+ }
+ }
+ }
+ }
+
+ if (selectedtool == "Square _tool")
+ {
+ if (e.Button == MouseButtons.Left)
+ {
+ rectanglestartpointx = thisPoint.X;
+ rectanglestartpointy = thisPoint.Y;
+ currentlydrawingsquare = true;
+ picdrawingdisplay.Invalidate();
+ }
+ }
+
+ if (selectedtool == "Oval _tool")
+ {
+ if (e.Button == MouseButtons.Left)
+ {
+ ovalstartpointx = thisPoint.X;
+ ovalstartpointy = thisPoint.Y;
+ currentlydrawingoval = true;
+ picdrawingdisplay.Invalidate();
+ }
+ }
+
+ if (selectedtool == "Line _tool")
+ {
+ if (e.Button == MouseButtons.Left)
+ {
+ linestartpointx = thisPoint.X;
+ linestartpointy = thisPoint.Y;
+ currentlydrawingline = true;
+ picdrawingdisplay.Invalidate();
+ }
+ }
+
+ if (selectedtool == "Text _tool")
+ {
+ if (e.Button == MouseButtons.Left)
+ {
+ currentlydrawingtext = true;
+ picdrawingdisplay.Invalidate();
+ }
+ }
+
+ if (selectedtool == "Eracer")
+ {
+ var CurrentPen = new Pen(Color.FromArgb(255, canvascolor), eracerwidth);
+ float halfsize = eracerwidth / 2;
+ if (eracertype == "circle")
+ {
+ graphicsbitmap.DrawEllipse(CurrentPen, thisPoint.X - halfsize, thisPoint.Y - halfsize, eracerwidth, eracerwidth);
+ }
+ else
+ {
+ graphicsbitmap.DrawRectangle(CurrentPen, thisPoint.X - halfsize, thisPoint.Y - halfsize, eracerwidth, eracerwidth);
+ }
+ picdrawingdisplay.Invalidate();
+ }
+
+ if (selectedtool == "Paint Brush")
+ {
+ var CurrentBrush = new SolidBrush(Color.FromArgb(255, drawingcolour));
+ float halfsize = paintbrushwidth / 2;
+ if (paintbrushtype == "circle")
+ {
+ graphicsbitmap.FillEllipse(CurrentBrush, thisPoint.X - halfsize, thisPoint.Y - halfsize, paintbrushwidth, paintbrushwidth);
+ }
+ else
+ {
+ graphicsbitmap.FillRectangle(CurrentBrush, thisPoint.X - halfsize, thisPoint.Y - halfsize, paintbrushwidth, paintbrushwidth);
+ }
+ picdrawingdisplay.Invalidate();
+ CurrentBrush.Dispose();
+ }
+ preparecooldown();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void picdrawingdisplay_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
+ {
+ Point lastpoint;
+
+ thisPoint.X = (int)(e.Location.X - (magnificationlevel / 2)) / magnificationlevel;
+ thisPoint.Y = (int)(e.Location.Y - (magnificationlevel / 2)) / magnificationlevel;
+
+
+ if (e.Button == MouseButtons.Left)
+ {
+ undo.redoStack.Clear();
+ lastpoint = thisPoint;
+ preparecooldown();
+
+ if (selectedtool == "Pixel Placer" && pixalplacermovable == true)
+ {
+ if (thisPoint.X < canvasbitmap.Width && thisPoint.X > -1)
+ {
+ if (thisPoint.Y < canvasbitmap.Height && thisPoint.Y > -1)
+ {
+ canvasbitmap.SetPixel(thisPoint.X, thisPoint.Y, drawingcolour);
+ //set the pixel on the canvas
+ picdrawingdisplay.Invalidate();
+ //refresh the picture from the canvas
+ }
+ }
+ }
+
+ if (selectedtool == "Pencil")
+ {
+ mousePath.AddLine(thisPoint.X, thisPoint.Y, thisPoint.X, thisPoint.Y);
+ var CurrentPen = new Pen(Color.FromArgb(255, drawingcolour), pencilwidth);
+ graphicsbitmap.DrawPath(CurrentPen, mousePath);
+ picdrawingdisplay.Invalidate();
+ }
+
+ if (selectedtool == "Square _tool")
+ {
+ picdrawingdisplay.Invalidate();
+ }
+
+ if (selectedtool == "Oval _tool")
+ {
+ picdrawingdisplay.Invalidate();
+ }
+
+ if (selectedtool == "Line _tool")
+ {
+ picdrawingdisplay.Invalidate();
+ }
+
+ if (selectedtool == "Text _tool")
+ {
+ picdrawingdisplay.Invalidate();
+ }
+
+ if (selectedtool == "Eracer")
+ {
+ var CurrentPen = new Pen(Color.FromArgb(255, canvascolor), eracerwidth);
+ float halfsize = eracerwidth / 2;
+ if (eracertype == "circle")
+ {
+ graphicsbitmap.DrawEllipse(CurrentPen, thisPoint.X - halfsize, thisPoint.Y - halfsize, eracerwidth, eracerwidth);
+ }
+ else
+ {
+ graphicsbitmap.DrawRectangle(CurrentPen, thisPoint.X - halfsize, thisPoint.Y - halfsize, eracerwidth, eracerwidth);
+ }
+ picdrawingdisplay.Invalidate();
+ }
+
+ if (selectedtool == "Paint Brush")
+ {
+ var CurrentBrush = new SolidBrush(Color.FromArgb(255, drawingcolour));
+ float halfsize = paintbrushwidth / 2;
+ if (paintbrushtype == "circle")
+ {
+ graphicsbitmap.FillEllipse(CurrentBrush, thisPoint.X - halfsize, thisPoint.Y - halfsize, paintbrushwidth, paintbrushwidth);
+ }
+ else
+ {
+ graphicsbitmap.FillRectangle(CurrentBrush, thisPoint.X - halfsize, thisPoint.Y - halfsize, paintbrushwidth, paintbrushwidth);
+ }
+ picdrawingdisplay.Invalidate();
+ }
+ }
+
+ }
+
+
+ // ERROR: Handles clauses are not supported in C#
+ private void picdrawingdisplay_MouseUp(object sender, MouseEventArgs e)
+ {
+ thisPoint.X = (int)(e.Location.X - (magnificationlevel / 2)) / magnificationlevel;
+ thisPoint.Y = (int)(e.Location.Y - (magnificationlevel / 2)) / magnificationlevel;
+
+ if (selectedtool == "Pencil")
+ {
+ if (e.Button == MouseButtons.Left)
+ {
+ mousePath.Reset();
+ }
+ }
+
+ if (selectedtool == "Square _tool")
+ {
+ picdrawingdisplay.Invalidate();
+ currentlydrawingsquare = false;
+ }
+
+ if (selectedtool == "Oval _tool")
+ {
+ picdrawingdisplay.Invalidate();
+ currentlydrawingoval = false;
+ }
+
+
+ if (selectedtool == "Line _tool")
+ {
+ picdrawingdisplay.Invalidate();
+ currentlydrawingline = false;
+ }
+
+ if (selectedtool == "Text _tool")
+ {
+ picdrawingdisplay.Invalidate();
+ currentlydrawingtext = false;
+ }
+
+ using (Graphics g = Graphics.FromImage(canvasbitmap))
+ {
+ g.DrawImage(previewcanvasbitmap, 0, 0);
+ }
+ previewcanvasbitmap = new Bitmap(canvasbitmap.Width, canvasbitmap.Height);
+ picdrawingdisplay.Invalidate();
+ preparecooldown();
+
+ }
+
+ #endregion
+
+ #region Color Palettes
+ // ERROR: Handles clauses are not supported in C#
+ private void colourpalette1_MouseClick(object sender, MouseEventArgs e)
+ {
+ var s = (Control)sender;
+ if (e.Button == MouseButtons.Left)
+ {
+ drawingcolour = s.BackColor;
+ setuppreview();
+ settoolcolours();
+ }
+ else
+ {
+ AppearanceManager.SetupDialog(new ColorPicker(s.BackColor, "artpad_ Color", new Action<Color>((color) => {
+ s.BackColor = color;
+ })));
+ }
+ }
+
+ //<unused>
+ public void loadcolors()
+ {
+ /*bool allwhite = true;
+ for (int i = 0; i <= 127; i++)
+ {
+ if (ShiftOSDesktop.artpad_colour_palettes(i) == null)
+ {
+ }
+ else {
+ allwhite = false;
+ }
+ }
+ if (allwhite == true)
+ {
+ for (i = 0; i <= 127; i++)
+ {
+ ShiftOSDesktop.artpad_colour_palettes(i) = Color.Black;
+ }
+ }
+ colourpalette1.BackColor = ShiftOSDesktop.artpad_colour_palettes(0);
+ colourpalette2.BackColor = ShiftOSDesktop.artpad_colour_palettes(1);
+ colourpalette3.BackColor = ShiftOSDesktop.artpad_colour_palettes(2);
+ colourpalette4.BackColor = ShiftOSDesktop.artpad_colour_palettes(3);
+ colourpalette5.BackColor = ShiftOSDesktop.artpad_colour_palettes(4);
+ colourpalette6.BackColor = ShiftOSDesktop.artpad_colour_palettes(5);
+ colourpalette7.BackColor = ShiftOSDesktop.artpad_colour_palettes(6);
+ colourpalette8.BackColor = ShiftOSDesktop.artpad_colour_palettes(7);
+ colourpalette9.BackColor = ShiftOSDesktop.artpad_colour_palettes(8);
+ colourpalette10.BackColor = ShiftOSDesktop.artpad_colour_palettes(9);
+ colourpalette11.BackColor = ShiftOSDesktop.artpad_colour_palettes(10);
+ colourpalette12.BackColor = ShiftOSDesktop.artpad_colour_palettes(11);
+ colourpalette13.BackColor = ShiftOSDesktop.artpad_colour_palettes(12);
+ colourpalette14.BackColor = ShiftOSDesktop.artpad_colour_palettes(13);
+ colourpalette15.BackColor = ShiftOSDesktop.artpad_colour_palettes(14);
+ colourpalette16.BackColor = ShiftOSDesktop.artpad_colour_palettes(15);
+ colourpalette17.BackColor = ShiftOSDesktop.artpad_colour_palettes(16);
+ colourpalette18.BackColor = ShiftOSDesktop.artpad_colour_palettes(17);
+ colourpalette19.BackColor = ShiftOSDesktop.artpad_colour_palettes(18);
+ colourpalette20.BackColor = ShiftOSDesktop.artpad_colour_palettes(19);
+ colourpalette21.BackColor = ShiftOSDesktop.artpad_colour_palettes(20);
+ colourpalette22.BackColor = ShiftOSDesktop.artpad_colour_palettes(21);
+ colourpalette23.BackColor = ShiftOSDesktop.artpad_colour_palettes(22);
+ colourpalette24.BackColor = ShiftOSDesktop.artpad_colour_palettes(23);
+ colourpalette25.BackColor = ShiftOSDesktop.artpad_colour_palettes(24);
+ colourpalette26.BackColor = ShiftOSDesktop.artpad_colour_palettes(25);
+ colourpalette27.BackColor = ShiftOSDesktop.artpad_colour_palettes(26);
+ colourpalette28.BackColor = ShiftOSDesktop.artpad_colour_palettes(27);
+ colourpalette29.BackColor = ShiftOSDesktop.artpad_colour_palettes(28);
+ colourpalette30.BackColor = ShiftOSDesktop.artpad_colour_palettes(29);
+ colourpalette31.BackColor = ShiftOSDesktop.artpad_colour_palettes(30);
+ colourpalette32.BackColor = ShiftOSDesktop.artpad_colour_palettes(31);
+ colourpalette33.BackColor = ShiftOSDesktop.artpad_colour_palettes(32);
+ colourpalette34.BackColor = ShiftOSDesktop.artpad_colour_palettes(33);
+ colourpalette35.BackColor = ShiftOSDesktop.artpad_colour_palettes(34);
+ colourpalette36.BackColor = ShiftOSDesktop.artpad_colour_palettes(35);
+ colourpalette37.BackColor = ShiftOSDesktop.artpad_colour_palettes(36);
+ colourpalette38.BackColor = ShiftOSDesktop.artpad_colour_palettes(37);
+ colourpalette39.BackColor = ShiftOSDesktop.artpad_colour_palettes(38);
+ colourpalette40.BackColor = ShiftOSDesktop.artpad_colour_palettes(39);
+ colourpalette41.BackColor = ShiftOSDesktop.artpad_colour_palettes(40);
+ colourpalette42.BackColor = ShiftOSDesktop.artpad_colour_palettes(41);
+ colourpalette43.BackColor = ShiftOSDesktop.artpad_colour_palettes(42);
+ colourpalette44.BackColor = ShiftOSDesktop.artpad_colour_palettes(43);
+ colourpalette45.BackColor = ShiftOSDesktop.artpad_colour_palettes(44);
+ colourpalette46.BackColor = ShiftOSDesktop.artpad_colour_palettes(45);
+ colourpalette47.BackColor = ShiftOSDesktop.artpad_colour_palettes(46);
+ colourpalette48.BackColor = ShiftOSDesktop.artpad_colour_palettes(47);
+ colourpalette49.BackColor = ShiftOSDesktop.artpad_colour_palettes(48);
+ colourpalette50.BackColor = ShiftOSDesktop.artpad_colour_palettes(49);
+ colourpalette51.BackColor = ShiftOSDesktop.artpad_colour_palettes(50);
+ colourpalette52.BackColor = ShiftOSDesktop.artpad_colour_palettes(51);
+ colourpalette53.BackColor = ShiftOSDesktop.artpad_colour_palettes(52);
+ colourpalette54.BackColor = ShiftOSDesktop.artpad_colour_palettes(53);
+ colourpalette55.BackColor = ShiftOSDesktop.artpad_colour_palettes(54);
+ colourpalette56.BackColor = ShiftOSDesktop.artpad_colour_palettes(55);
+ colourpalette57.BackColor = ShiftOSDesktop.artpad_colour_palettes(56);
+ colourpalette58.BackColor = ShiftOSDesktop.artpad_colour_palettes(57);
+ colourpalette59.BackColor = ShiftOSDesktop.artpad_colour_palettes(58);
+ colourpalette60.BackColor = ShiftOSDesktop.artpad_colour_palettes(59);
+ colourpalette61.BackColor = ShiftOSDesktop.artpad_colour_palettes(60);
+ colourpalette62.BackColor = ShiftOSDesktop.artpad_colour_palettes(61);
+ colourpalette63.BackColor = ShiftOSDesktop.artpad_colour_palettes(62);
+ colourpalette64.BackColor = ShiftOSDesktop.artpad_colour_palettes(63);
+ colourpalette65.BackColor = ShiftOSDesktop.artpad_colour_palettes(64);
+ colourpalette66.BackColor = ShiftOSDesktop.artpad_colour_palettes(65);
+ colourpalette67.BackColor = ShiftOSDesktop.artpad_colour_palettes(66);
+ colourpalette68.BackColor = ShiftOSDesktop.artpad_colour_palettes(67);
+ colourpalette69.BackColor = ShiftOSDesktop.artpad_colour_palettes(68);
+ colourpalette70.BackColor = ShiftOSDesktop.artpad_colour_palettes(69);
+ colourpalette71.BackColor = ShiftOSDesktop.artpad_colour_palettes(70);
+ colourpalette72.BackColor = ShiftOSDesktop.artpad_colour_palettes(71);
+ colourpalette73.BackColor = ShiftOSDesktop.artpad_colour_palettes(72);
+ colourpalette74.BackColor = ShiftOSDesktop.artpad_colour_palettes(73);
+ colourpalette75.BackColor = ShiftOSDesktop.artpad_colour_palettes(74);
+ colourpalette76.BackColor = ShiftOSDesktop.artpad_colour_palettes(75);
+ colourpalette77.BackColor = ShiftOSDesktop.artpad_colour_palettes(76);
+ colourpalette78.BackColor = ShiftOSDesktop.artpad_colour_palettes(77);
+ colourpalette79.BackColor = ShiftOSDesktop.artpad_colour_palettes(78);
+ colourpalette80.BackColor = ShiftOSDesktop.artpad_colour_palettes(79);
+ colourpalette81.BackColor = ShiftOSDesktop.artpad_colour_palettes(80);
+ colourpalette82.BackColor = ShiftOSDesktop.artpad_colour_palettes(81);
+ colourpalette83.BackColor = ShiftOSDesktop.artpad_colour_palettes(82);
+ colourpalette84.BackColor = ShiftOSDesktop.artpad_colour_palettes(83);
+ colourpalette85.BackColor = ShiftOSDesktop.artpad_colour_palettes(84);
+ colourpalette86.BackColor = ShiftOSDesktop.artpad_colour_palettes(85);
+ colourpalette87.BackColor = ShiftOSDesktop.artpad_colour_palettes(86);
+ colourpalette88.BackColor = ShiftOSDesktop.artpad_colour_palettes(87);
+ colourpalette89.BackColor = ShiftOSDesktop.artpad_colour_palettes(88);
+ colourpalette90.BackColor = ShiftOSDesktop.artpad_colour_palettes(89);
+ colourpalette91.BackColor = ShiftOSDesktop.artpad_colour_palettes(90);
+ colourpalette92.BackColor = ShiftOSDesktop.artpad_colour_palettes(91);
+ colourpalette93.BackColor = ShiftOSDesktop.artpad_colour_palettes(92);
+ colourpalette94.BackColor = ShiftOSDesktop.artpad_colour_palettes(93);
+ colourpalette95.BackColor = ShiftOSDesktop.artpad_colour_palettes(94);
+ colourpalette96.BackColor = ShiftOSDesktop.artpad_colour_palettes(95);
+ colourpalette97.BackColor = ShiftOSDesktop.artpad_colour_palettes(96);
+ colourpalette98.BackColor = ShiftOSDesktop.artpad_colour_palettes(97);
+ colourpalette99.BackColor = ShiftOSDesktop.artpad_colour_palettes(98);
+ colourpalette100.BackColor = ShiftOSDesktop.artpad_colour_palettes(99);
+ colourpalette101.BackColor = ShiftOSDesktop.artpad_colour_palettes(100);
+ colourpalette102.BackColor = ShiftOSDesktop.artpad_colour_palettes(101);
+ colourpalette103.BackColor = ShiftOSDesktop.artpad_colour_palettes(102);
+ colourpalette104.BackColor = ShiftOSDesktop.artpad_colour_palettes(103);
+ colourpalette105.BackColor = ShiftOSDesktop.artpad_colour_palettes(104);
+ colourpalette106.BackColor = ShiftOSDesktop.artpad_colour_palettes(105);
+ colourpalette107.BackColor = ShiftOSDesktop.artpad_colour_palettes(106);
+ colourpalette108.BackColor = ShiftOSDesktop.artpad_colour_palettes(107);
+ colourpalette109.BackColor = ShiftOSDesktop.artpad_colour_palettes(108);
+ colourpalette110.BackColor = ShiftOSDesktop.artpad_colour_palettes(109);
+ colourpalette111.BackColor = ShiftOSDesktop.artpad_colour_palettes(110);
+ colourpalette112.BackColor = ShiftOSDesktop.artpad_colour_palettes(111);
+ colourpalette113.BackColor = ShiftOSDesktop.artpad_colour_palettes(112);
+ colourpalette114.BackColor = ShiftOSDesktop.artpad_colour_palettes(113);
+ colourpalette115.BackColor = ShiftOSDesktop.artpad_colour_palettes(114);
+ colourpalette116.BackColor = ShiftOSDesktop.artpad_colour_palettes(115);
+ colourpalette117.BackColor = ShiftOSDesktop.artpad_colour_palettes(116);
+ colourpalette118.BackColor = ShiftOSDesktop.artpad_colour_palettes(117);
+ colourpalette119.BackColor = ShiftOSDesktop.artpad_colour_palettes(118);
+ colourpalette120.BackColor = ShiftOSDesktop.artpad_colour_palettes(119);
+ colourpalette121.BackColor = ShiftOSDesktop.artpad_colour_palettes(120);
+ colourpalette122.BackColor = ShiftOSDesktop.artpad_colour_palettes(121);
+ colourpalette123.BackColor = ShiftOSDesktop.artpad_colour_palettes(122);
+ colourpalette124.BackColor = ShiftOSDesktop.artpad_colour_palettes(123);
+ colourpalette125.BackColor = ShiftOSDesktop.artpad_colour_palettes(124);
+ colourpalette126.BackColor = ShiftOSDesktop.artpad_colour_palettes(125);
+ colourpalette127.BackColor = ShiftOSDesktop.artpad_colour_palettes(126);
+ colourpalette128.BackColor = ShiftOSDesktop.artpad_colour_palettes(127);
+ */
+ }
+
+ public void savecolors()
+ {/*
+ ShiftOSDesktop.artpad_colour_palettes(0) = colourpalette1.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(1) = colourpalette2.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(2) = colourpalette3.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(3) = colourpalette4.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(4) = colourpalette5.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(5) = colourpalette6.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(6) = colourpalette7.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(7) = colourpalette8.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(8) = colourpalette9.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(9) = colourpalette10.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(10) = colourpalette11.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(11) = colourpalette12.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(12) = colourpalette13.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(13) = colourpalette14.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(14) = colourpalette15.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(15) = colourpalette16.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(16) = colourpalette17.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(17) = colourpalette18.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(18) = colourpalette19.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(19) = colourpalette20.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(20) = colourpalette21.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(21) = colourpalette22.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(22) = colourpalette23.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(23) = colourpalette24.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(24) = colourpalette25.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(25) = colourpalette26.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(26) = colourpalette27.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(27) = colourpalette28.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(28) = colourpalette29.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(29) = colourpalette30.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(30) = colourpalette31.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(31) = colourpalette32.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(32) = colourpalette33.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(33) = colourpalette34.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(34) = colourpalette35.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(35) = colourpalette36.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(36) = colourpalette37.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(37) = colourpalette38.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(38) = colourpalette39.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(39) = colourpalette40.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(40) = colourpalette41.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(41) = colourpalette42.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(42) = colourpalette43.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(43) = colourpalette44.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(44) = colourpalette45.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(45) = colourpalette46.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(46) = colourpalette47.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(47) = colourpalette48.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(48) = colourpalette49.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(49) = colourpalette50.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(50) = colourpalette51.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(51) = colourpalette52.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(52) = colourpalette53.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(53) = colourpalette54.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(54) = colourpalette55.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(55) = colourpalette56.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(56) = colourpalette57.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(57) = colourpalette58.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(58) = colourpalette59.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(59) = colourpalette60.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(60) = colourpalette61.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(61) = colourpalette62.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(62) = colourpalette63.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(63) = colourpalette64.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(64) = colourpalette65.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(65) = colourpalette66.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(66) = colourpalette67.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(67) = colourpalette68.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(68) = colourpalette69.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(69) = colourpalette70.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(70) = colourpalette71.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(71) = colourpalette72.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(72) = colourpalette73.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(73) = colourpalette74.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(74) = colourpalette75.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(75) = colourpalette76.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(76) = colourpalette77.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(77) = colourpalette78.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(78) = colourpalette79.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(79) = colourpalette80.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(80) = colourpalette81.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(81) = colourpalette82.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(82) = colourpalette83.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(83) = colourpalette84.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(84) = colourpalette85.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(85) = colourpalette86.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(86) = colourpalette87.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(87) = colourpalette88.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(88) = colourpalette89.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(89) = colourpalette90.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(90) = colourpalette91.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(91) = colourpalette92.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(92) = colourpalette93.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(93) = colourpalette94.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(94) = colourpalette95.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(95) = colourpalette96.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(96) = colourpalette97.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(97) = colourpalette98.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(98) = colourpalette99.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(99) = colourpalette100.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(100) = colourpalette101.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(101) = colourpalette102.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(102) = colourpalette103.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(103) = colourpalette104.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(104) = colourpalette105.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(105) = colourpalette106.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(106) = colourpalette107.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(107) = colourpalette108.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(108) = colourpalette109.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(109) = colourpalette110.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(110) = colourpalette111.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(111) = colourpalette112.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(112) = colourpalette113.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(113) = colourpalette114.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(114) = colourpalette115.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(115) = colourpalette116.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(116) = colourpalette117.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(117) = colourpalette118.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(118) = colourpalette119.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(119) = colourpalette120.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(120) = colourpalette121.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(121) = colourpalette122.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(122) = colourpalette123.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(123) = colourpalette124.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(124) = colourpalette125.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(125) = colourpalette126.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(126) = colourpalette127.BackColor;
+ ShiftOSDesktop.artpad_colour_palettes(127) = colourpalette128.BackColor;
+ */
+ }
+ //</unused>
+
+ public void settoolcolours()
+ {
+ btnpixelsetter.BackColor = drawingcolour;
+ btnpixelplacer.BackColor = drawingcolour;
+ btnpencil.BackColor = drawingcolour;
+ btnfloodfill.BackColor = drawingcolour;
+ btnsquare.BackColor = drawingcolour;
+ btnoval.BackColor = drawingcolour;
+ btnlinetool.BackColor = drawingcolour;
+ btnpaintbrush.BackColor = drawingcolour;
+ btntexttool.BackColor = drawingcolour;
+ }
+ #endregion
+
+ #region Zooming
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnzoomin_Click(object sender, EventArgs e)
+ {
+ if (magnificationlevel < 256)
+ {
+ magnificationlevel *= 2;
+ }
+ else
+ {
+ Infobox.Show("{ARTPAD_MAGNIFIER_ERROR}"
+ , "{ARTPAD_MAGNIFICATION_ERROR_EXP}");
+ }
+ setmagnification();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnzoomout_Click(object sender, EventArgs e)
+ {
+ if (magnificationlevel > 1)
+ {
+ magnificationlevel /= 2;
+ pnldrawingbackground.AutoScrollPosition = new Point(0, 0);
+ }
+ else
+ {
+ Infobox.Show("{ARTPAD_MAGNIFIER_ERROR}"
+ , "{ARTPAD_MAGNIFICATION_ERROR_EXP_2}");
+ }
+ setmagnification();
+ }
+
+ private void setmagnification()
+ {
+ magnifyRect.Width = (int)canvaswidth / magnificationlevel;
+ magnifyRect.Height = (int)canvasheight / magnificationlevel;
+ picdrawingdisplay.Size = new Size(canvaswidth * magnificationlevel, canvasheight * magnificationlevel);
+ if (picdrawingdisplay.Height > 468 && picdrawingdisplay.Width > 676)
+ {
+ picdrawingdisplay.Location = new Point(0, 0);
+ }
+ else
+ {
+ picdrawingdisplay.Location = new Point((pnldrawingbackground.Width - canvaswidth * magnificationlevel) / 2, (pnldrawingbackground.Height - canvasheight * magnificationlevel) / 2);
+ }
+ picdrawingdisplay.Invalidate();
+ lblzoomlevel.Text = magnificationlevel + "X";
+ }
+
+ #endregion
+
+ #region Pixel Placer
+
+ // ERROR: Handles clauses are not supported in C#
+ private void pnlpixelplacer_Click(object sender, EventArgs e)
+ {
+ selectedtool = "Pixel Placer";
+ gettoolsettings(pnlpixelplacersettings);
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnpixelplacermovementmode_Click(object sender, EventArgs e)
+ {
+ if (pixalplacermovable == false)
+ {
+ pixalplacermovable = true;
+ btnpixelplacermovementmode.ForeColor = Color.White;
+ btnpixelplacermovementmode.BackColor = Color.Black;
+ btnpixelplacermovementmode.Text = "Deactivate Movement Mode";
+ lblpixelplacerhelp.Text = "Movement mode is enabled. Click and drag on the canvas to place pixels as you move the mouse. Please use 4x magnification or greater and move the mouse very slowly.";
+ }
+ else
+ {
+ pixalplacermovable = false;
+ btnpixelplacermovementmode.ForeColor = Color.Black;
+ btnpixelplacermovementmode.BackColor = Color.White;
+ btnpixelplacermovementmode.Text = "Activate Movement Mode";
+ lblpixelplacerhelp.Text = "This tool does not contain any alterable settings. Simply click on the canvas and a pixel will be placed in the spot you click.";
+ }
+ }
+
+ #endregion
+
+ #region Saving
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnsave_Click(object sender, EventArgs e)
+ {
+ showsavedialog();
+ }
+
+ public void showsavedialog()
+ {
+ AppearanceManager.SetupDialog(new FileDialog(new[] { ".pic" }, FileOpenerStyle.Save, new Action<string>((file) =>
+ {
+ var res = file;
+ savelocation = res;
+ saveimage();
+ })));
+ }
+
+ public void saveimage()
+ {
+ var ms = new MemoryStream();
+ canvasbitmap.Save(ms, ImageFormat.Bmp);
+ Utils.WriteAllBytes(this.savelocation, ms.ToArray());
+ ms.Close();
+ }
+ #endregion
+
+ #region New Canvas
+
+ // ERROR: Handles clauses are not supported in C#
+ private void txtnewcanvaswidth_TextChanged(object sender, EventArgs e)
+ {
+ if (txtnewcanvaswidth.Text == "" | txtnewcanvasheight.Text == "")
+ {
+ if (txtnewcanvasheight.Text == "")
+ {
+ txtnewcanvasheight.Text = "0";
+ }
+ if (txtnewcanvaswidth.Text == "")
+ {
+ txtnewcanvaswidth.Text = "0";
+ }
+ }
+ else
+ {
+ try
+ {
+ lbltotalpixels.Text = (Convert.ToInt32(txtnewcanvaswidth.Text) * Convert.ToInt32(txtnewcanvasheight.Text)).ToString();
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_limitless_pixels") == true)
+ {
+ lbltotalpixels.ForeColor = Color.Black;
+ }
+ else
+ {
+ if ((Convert.ToInt32(txtnewcanvaswidth.Text) * Convert.ToInt32(txtnewcanvasheight.Text)) > GetPixelLimit())
+ {
+ lbltotalpixels.ForeColor = Color.Red;
+ }
+ else
+ {
+ lbltotalpixels.ForeColor = Color.Black;
+ }
+ }
+ }
+ catch
+ {
+
+ }
+ }
+
+ }
+
+ public int GetPixelLimit()
+ {
+ int value = 2;
+
+
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_pixel_limit_4"))
+ {
+ value = 4;
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_pixel_limit_8"))
+ {
+ value = 8;
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_pixel_limit_16"))
+ {
+ value = 16;
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_pixel_limit_64"))
+ {
+ value = 64;
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_pixel_limit_256"))
+ {
+ value = 256;
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_pixel_limit_1024"))
+ {
+ value = 1024;
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_pixel_limit_4096"))
+ {
+ value = 4096;
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_pixel_limit_16384"))
+ {
+ value = 16384;
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_pixel_limit_65536"))
+ {
+ value = 65536;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return value;
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btncreate_Click(object sender, EventArgs e)
+ {
+ if (lbltotalpixels.ForeColor == Color.Red)
+ {
+ Infobox.Show("{ARTPAD_ERROR}", "{ARTPAD_IMAGE_TOO_BIG}");
+ }
+ else
+ {
+ if (lbltotalpixels.Text == "0")
+ {
+ }
+ else
+ {
+ canvaswidth = Convert.ToInt32(txtnewcanvaswidth.Text);
+ canvasheight = Convert.ToInt32(txtnewcanvasheight.Text);
+ picdrawingdisplay.Show();
+ setupcanvas();
+ pnlinitialcanvassettings.Hide();
+ }
+ }
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btncancel_Click(object sender, EventArgs e)
+ {
+ pnlinitialcanvassettings.Hide();
+ picdrawingdisplay.Hide();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnnew_Click(object sender, EventArgs e)
+ {
+ pnlinitialcanvassettings.Show();
+ picdrawingdisplay.Hide();
+ }
+
+ #endregion
+
+ #region Preview
+
+ public void setuppreview()
+ {
+ lbltoolselected.Text = selectedtool;
+ picpreview.CreateGraphics().FillRectangle(Brushes.White, 0, 0, 70, 50);
+ switch (selectedtool)
+ {
+ case "Square _tool":
+ var CurrentPen = new Pen(Color.FromArgb(255, drawingcolour), squarewidth);
+ var CurrentBrush = new SolidBrush(Color.FromArgb(255, fillsquarecolor));
+ RectangleF rectdraw = new RectangleF(0, 0, picpreview.Width, picpreview.Height);
+ float correctionamount = squarewidth / 2;
+ if (squarewidth > 0)
+ {
+ picpreview.CreateGraphics().DrawRectangle(CurrentPen, rectdraw.X + correctionamount, rectdraw.Y + correctionamount, rectdraw.Width - squarewidth, rectdraw.Height - squarewidth);
+ }
+ if (squarefillon == true)
+ {
+ picpreview.CreateGraphics().FillRectangle(CurrentBrush, rectdraw.X + squarewidth, rectdraw.Y + squarewidth, rectdraw.Width - squarewidth - squarewidth, rectdraw.Height - squarewidth - squarewidth);
+ }
+ break;
+ case "Oval _tool":
+ var ovalCurrentPen = new Pen(Color.FromArgb(255, drawingcolour), ovalwidth);
+ var ovalCurrentBrush = new SolidBrush(Color.FromArgb(255, fillovalcolor));
+ RectangleF ovalrectdraw = new RectangleF(0, 0, picpreview.Width, picpreview.Height);
+ float ovalcorrectionamount = ovalwidth / 2;
+ if (ovalwidth > 0)
+ {
+ picpreview.CreateGraphics().DrawEllipse(ovalCurrentPen, ovalrectdraw.X + ovalcorrectionamount, ovalrectdraw.Y + ovalcorrectionamount, ovalrectdraw.Width - ovalwidth, ovalrectdraw.Height - ovalwidth);
+ }
+ if (ovalfillon == true)
+ {
+ float fixer = ovalwidth / 2;
+ picpreview.CreateGraphics().FillEllipse(ovalCurrentBrush, (ovalrectdraw.X + fixer), (ovalrectdraw.Y + fixer), ovalrectdraw.Width - fixer - fixer, ovalrectdraw.Height - fixer - fixer);
+ }
+ break;
+ case "Text _tool":
+ var textCurrentBrush = new SolidBrush(Color.FromArgb(255, drawingcolour));
+ drawtextfont = new System.Drawing.Font(drawtextfontname, 20, drawtextfontstyle);
+ picpreview.CreateGraphics().DrawString("A", drawtextfont, textCurrentBrush, 20, 0);
+ break;
+ case "Line _tool":
+ var lineCurrentPen = new Pen(Color.FromArgb(255, drawingcolour), linewidth);
+ picpreview.CreateGraphics().DrawLine(lineCurrentPen, 0, 0, picpreview.Width, picpreview.Height);
+ break;
+ case "Pencil":
+ var pencilCurrentPen = new Pen(Color.FromArgb(255, drawingcolour), pencilwidth);
+ picpreview.CreateGraphics().DrawLine(pencilCurrentPen, 0, 25, picpreview.Width, 25);
+ break;
+ case "Paint Brush":
+ var pbCurrentBrush = new SolidBrush(Color.FromArgb(255, drawingcolour));
+ float halfsize = paintbrushwidth / 2;
+ float halfwidth = picdrawingdisplay.Width / 2;
+ float halfheight = picdrawingdisplay.Height / 2;
+ if (paintbrushtype == "circle")
+ {
+ picpreview.CreateGraphics().FillEllipse(pbCurrentBrush, halfwidth - 15 - halfsize, halfheight - 1 - halfsize, paintbrushwidth, paintbrushwidth);
+ }
+ else
+ {
+ picpreview.CreateGraphics().FillRectangle(pbCurrentBrush, halfwidth - 15 - halfsize, halfheight - 1 - halfsize, paintbrushwidth, paintbrushwidth);
+ }
+ break;
+ case "Eracer":
+ System.Drawing.SolidBrush drawbrush = new System.Drawing.SolidBrush(drawingcolour);
+ picpreview.CreateGraphics().FillRectangle(drawbrush, 0, 0, picpreview.Width, picpreview.Height);
+ var eCurrentBrush = new SolidBrush(Color.FromArgb(255, Color.White));
+ float ehalfsize = eracerwidth / 2;
+ float ehalfwidth = picdrawingdisplay.Width / 2;
+ float ehalfheight = picdrawingdisplay.Height / 2;
+ if (eracertype == "circle")
+ {
+ picpreview.CreateGraphics().FillEllipse(eCurrentBrush, ehalfwidth - 15 - ehalfsize, ehalfheight - ehalfsize, eracerwidth, eracerwidth);
+ }
+ else
+ {
+ picpreview.CreateGraphics().FillRectangle(eCurrentBrush, ehalfwidth - 15 - ehalfsize, ehalfheight - ehalfsize, eracerwidth, eracerwidth);
+ }
+ break;
+ default:
+ System.Drawing.SolidBrush ddrawbrush = new System.Drawing.SolidBrush(drawingcolour);
+ picpreview.CreateGraphics().FillRectangle(ddrawbrush, 0, 0, picpreview.Width, picpreview.Height);
+ ddrawbrush.Dispose();
+ break;
+ }
+ }
+
+ #endregion
+
+ #region Pencil
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnpencil_Click(object sender, EventArgs e)
+ {
+ selectedtool = "Pencil";
+ gettoolsettings(pnlpencilsettings);
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void ChangePencilSize(object sender, EventArgs e)
+ {
+ var s = (Control)sender;
+ switch (s.Name.ToString())
+ {
+ case "btnpencilsize1":
+ pencilwidth = 1;
+ break;
+ case "btnpencilsize2":
+ pencilwidth = 2;
+ break;
+ case "btnpencilsize3":
+ pencilwidth = 3;
+ break;
+ }
+ setuppreview();
+ }
+
+ #endregion
+
+ #region Undo/Redo
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnundo_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ undo.redoStack.Push((Image)canvasbitmap.Clone());
+ canvasbitmap = (Bitmap)undo.undoStack.Pop();
+ graphicsbitmap = Graphics.FromImage(canvasbitmap);
+ picdrawingdisplay.Invalidate();
+ }
+ catch
+ {
+ Infobox.Show("{ARTPAD_UNDO_ERROR}"
+ , "{ARTPAD_NEXT_STEP_WILL_KILL_CANVAS_JUST_FLIPPING_CLICK_NEW}");
+ }
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnredo_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ undo.undoStack.Push((Image)canvasbitmap.Clone());
+ canvasbitmap = (Bitmap)undo.redoStack.Pop();
+ graphicsbitmap = Graphics.FromImage(canvasbitmap);
+ picdrawingdisplay.Invalidate();
+ }
+ catch
+ {
+ Infobox.Show("{ARTPAD_REDO_ERROR}"
+ , "{ARTPAD_NOTHING_TO_REDO}");
+ }
+ }
+
+ #endregion
+
+ #region File Loading
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnopen_Click(object sender, EventArgs e)
+ {
+ AppearanceManager.SetupDialog(new FileDialog(new[] { ".pic" }, FileOpenerStyle.Open, new Action<string>((file) =>
+ {
+ string res = file;
+ savelocation = res;
+ openpic();
+ })));
+ }
+
+ public void openpic()
+ {
+ pnlinitialcanvassettings.Hide();
+ picdrawingdisplay.Show();
+ magnificationlevel = 1;
+ setmagnification();
+ canvasbitmap = (Bitmap)SkinEngine.ImageFromBinary(Utils.ReadAllBytes(savelocation));
+ canvasheight = canvasbitmap.Height;
+ canvaswidth = canvasbitmap.Width;
+ picdrawingdisplay.Size = new Size(canvaswidth, canvasheight);
+ picdrawingdisplay.Location = new Point((pnldrawingbackground.Width - canvaswidth) / 2, (pnldrawingbackground.Height - canvasheight) / 2);
+ graphicsbitmap = Graphics.FromImage(canvasbitmap);
+ picdrawingdisplay.Invalidate();
+ }
+
+ #endregion
+
+ #region Flood Fill
+
+ // Flood fill the point.
+ public void SafeFloodFill(Bitmap bm, int x, int y, Color new_color)
+ {
+ // Get the old and new colors.
+ Color old_color = bm.GetPixel(x, y);
+
+ // The following "If Then" test was added by Reuben
+ // Jollif
+ // to protect the code in case the start pixel
+ // has the same color as the fill color.
+ if (old_color.ToArgb() != new_color.ToArgb())
+ {
+ // Start with the original point in the stack.
+ Stack<Point> pts = new Stack<Point>(1000);
+ pts.Push(new Point(x, y));
+ bm.SetPixel(x, y, new_color);
+
+ // While the stack is not empty, process a point.
+ while (pts.Count > 0)
+ {
+ Point pt = (Point)pts.Pop();
+ if (pt.X > 0)
+ SafeCheckPoint(bm, pts, pt.X - 1, pt.Y, old_color, new_color);
+
+ if (pt.Y > 0)
+ SafeCheckPoint(bm, pts, pt.X, pt.Y - 1, old_color, new_color);
+ if (pt.X < bm.Width - 1)
+ SafeCheckPoint(bm, pts, pt.X + 1, pt.Y, old_color, new_color);
+ if (pt.Y < bm.Height - 1)
+ SafeCheckPoint(bm, pts, pt.X, pt.Y + 1, old_color, new_color);
+ }
+ }
+ }
+
+ // See if this point should be added to the stack.
+ private void SafeCheckPoint(Bitmap bm, Stack<Point> pts, int x, int y, Color old_color, Color new_color)
+ {
+ Color clr = bm.GetPixel(x, y);
+ if (clr.Equals(old_color))
+ {
+ pts.Push(new Point(x, y));
+ bm.SetPixel(x, y, new_color);
+ }
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnfill_Click(object sender, EventArgs e)
+ {
+ selectedtool = "Flood Fill";
+ gettoolsettings(pnlfloodfillsettings);
+ }
+
+ #endregion
+
+ #region Shapes
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnsquare_Click(object sender, EventArgs e)
+ {
+ selectedtool = "Square _tool";
+ gettoolsettings(pnlsquaretoolsettings);
+ txtsquareborderwidth.Text = squarewidth.ToString();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void txtsquareborderwidth_TextChanged(object sender, EventArgs e)
+ {
+ if (txtsquareborderwidth.Text == "")
+ {
+ }
+ else
+ {
+ squarewidth = (Convert.ToInt32(txtsquareborderwidth.Text));
+ setuppreview();
+ }
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void pnlsquarefillcolour_Click(object sender, EventArgs e)
+ {
+ pnlsquarefillcolour.BackColor = drawingcolour;
+ fillsquarecolor = drawingcolour;
+ setuppreview();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnsquarefillonoff_Click(object sender, EventArgs e)
+ {
+ if (squarefillon == true)
+ {
+ btnsquarefillonoff.Text = "Fill OFF";
+ btnsquarefillonoff.BackColor = Color.White;
+ btnsquarefillonoff.ForeColor = Color.Black;
+ squarefillon = false;
+ }
+ else
+ {
+ btnsquarefillonoff.Text = "Fill ON";
+ btnsquarefillonoff.BackColor = Color.Black;
+ btnsquarefillonoff.ForeColor = Color.White;
+ squarefillon = true;
+ }
+ txtsquareborderwidth.Text = squarewidth.ToString();
+ setuppreview();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnoval_Click(object sender, EventArgs e)
+ {
+ selectedtool = "Oval _tool";
+ gettoolsettings(pnlovaltoolsettings);
+ txtovalborderwidth.Text = ovalwidth.ToString();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void txtovalborderwidth_TextChanged(object sender, EventArgs e)
+ {
+ if (txtovalborderwidth.Text == "")
+ {
+ }
+ else
+ {
+ ovalwidth = (Convert.ToInt32(txtovalborderwidth.Text));
+ setuppreview();
+ }
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void pnlovalfillcolour_Click(object sender, EventArgs e)
+ {
+ pnlovalfillcolour.BackColor = drawingcolour;
+ fillovalcolor = drawingcolour;
+ setuppreview();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnovalfillonoff_Click(object sender, EventArgs e)
+ {
+ if (ovalfillon == true)
+ {
+ btnovalfillonoff.Text = "Fill OFF";
+ btnovalfillonoff.BackColor = Color.White;
+ btnovalfillonoff.ForeColor = Color.Black;
+ ovalfillon = false;
+ }
+ else
+ {
+ btnovalfillonoff.Text = "Fill ON";
+ btnovalfillonoff.BackColor = Color.Black;
+ btnovalfillonoff.ForeColor = Color.White;
+ ovalfillon = true;
+ }
+ txtovalborderwidth.Text = ovalwidth.ToString();
+ setuppreview();
+ }
+ #endregion
+
+ #region Eraser
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btneracer_Click(object sender, EventArgs e)
+ {
+ selectedtool = "Eracer";
+ gettoolsettings(pnleracertoolsettings);
+ txteracersize.Text = eracerwidth.ToString();
+ setuppreview();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void txteracersize_TextChanged(object sender, EventArgs e)
+ {
+ if (txteracersize.Text == "")
+ {
+ }
+ else
+ {
+ try
+ {
+ eracerwidth = (Convert.ToInt32(txteracersize.Text));
+ }
+ catch
+ {
+ txteracersize.Text = eracerwidth.ToString();
+ }
+ }
+ setuppreview();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btneracercircle_Click(object sender, EventArgs e)
+ {
+ eracertype = "circle";
+ btneracercircle.BackgroundImage = Properties.Resources.ArtPadcirclerubberselected;
+ btneracersquare.BackgroundImage = Properties.Resources.ArtPadsquarerubber;
+ setuppreview();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btneracersquare_Click(object sender, EventArgs e)
+ {
+ eracertype = "square";
+ btneracercircle.BackgroundImage = Properties.Resources.ArtPadcirclerubber;
+ btneracersquare.BackgroundImage = Properties.Resources.ArtPadsquarerubberselected;
+ setuppreview();
+ }
+
+ #endregion
+
+ #region Line
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnlinetool_Click(object sender, EventArgs e)
+ {
+ selectedtool = "Line _tool";
+ gettoolsettings(pnllinetoolsettings);
+ txtlinewidth.Text = linewidth.ToString();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void txtlinewidth_TextChanged(object sender, EventArgs e)
+ {
+ if (txtlinewidth.Text == "")
+ {
+ }
+ else
+ {
+ linewidth = (Convert.ToInt32(txtlinewidth.Text));
+ }
+ setuppreview();
+ }
+
+ #endregion
+
+ #region Text
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btntexttool_Click(object sender, EventArgs e)
+ {
+ selectedtool = "Text _tool";
+ gettoolsettings(pnltexttoolsettings);
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void txtdrawtextsize_TextChanged(object sender, EventArgs e)
+ {
+ if (txtdrawtextsize.Text == "")
+ {
+ }
+ else
+ {
+ drawtextsize = Convert.ToInt32(txtdrawtextsize.Text);
+ }
+ setuppreview();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void combodrawtextfont_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ drawtextfontname = combodrawtextfont.Text;
+ txtdrawstringtext.Focus();
+ setuppreview();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void combofontstyle_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ switch (combofontstyle.Text)
+ {
+ case "Bold":
+ drawtextfontstyle = FontStyle.Bold;
+ break;
+ case "Italic":
+ drawtextfontstyle = FontStyle.Italic;
+ break;
+ case "Regular":
+ drawtextfontstyle = FontStyle.Regular;
+ break;
+ case "Strikeout":
+ drawtextfontstyle = FontStyle.Strikeout;
+ break;
+ case "Underline":
+ drawtextfontstyle = FontStyle.Underline;
+ break;
+ }
+ txtdrawstringtext.Focus();
+ setuppreview();
+ }
+ #endregion
+
+ #region Paintbrush
+
+ // ERROR: Handles clauses are not supported in C#
+ private void txtpaintbrushsize_TextChanged(object sender, EventArgs e)
+ {
+ if (txtpaintbrushsize.Text == "")
+ {
+ }
+ else
+ {
+ paintbrushwidth = (Convert.ToInt32(txtpaintbrushsize.Text));
+ }
+ setuppreview();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnpaintsquareshape_Click(object sender, EventArgs e)
+ {
+ paintbrushtype = "square";
+ btnpaintcircleshape.BackgroundImage = Properties.Resources.ArtPadcirclerubber;
+ btnpaintsquareshape.BackgroundImage = Properties.Resources.ArtPadsquarerubberselected;
+ setuppreview();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnpaintcircleshape_Click(object sender, EventArgs e)
+ {
+ paintbrushtype = "circle";
+ btnpaintcircleshape.BackgroundImage = Properties.Resources.ArtPadcirclerubberselected;
+ btnpaintsquareshape.BackgroundImage = Properties.Resources.ArtPadsquarerubber;
+ setuppreview();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnpaintbrush_Click(object sender, EventArgs e)
+ {
+ selectedtool = "Paint Brush";
+ gettoolsettings(pnlpaintbrushtoolsettings);
+ txtpaintbrushsize.Text = paintbrushwidth.ToString();
+ setuppreview();
+ }
+
+ #endregion
+
+ #region Codepoints
+
+ private void preparecooldown()
+ {
+ needtosave = true;
+ if (codepointscooldown == true)
+ {
+ }
+ else
+ {
+ codepointsearned = codepointsearned + 1;
+ codepointscooldown = true;
+ tmrcodepointcooldown.Start();
+ }
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void tmrcodepointcooldown_Tick(object sender, EventArgs e)
+ {
+ codepointscooldown = false;
+ tmrcodepointcooldown.Stop();
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void tmrshowearnedcodepoints_Tick(object sender, EventArgs e)
+ {
+ tmrshowearnedcodepoints.Stop();
+ }
+
+ #endregion
+
+ #region More UI stuff
+
+ public void determinevisiblepalettes()
+ {
+ int panelstoadd = 2;
+
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_4_color_palettes") == true)
+ {
+ panelstoadd = 4;
+ }
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_8_color_palettes") == true)
+ {
+ panelstoadd = 8;
+ }
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_16_color_palettes") == true)
+ {
+ panelstoadd = 16;
+ }
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_32_color_palettes") == true)
+ {
+ panelstoadd = 32;
+ }
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_64_color_palettes") == true)
+ {
+ panelstoadd = 64;
+ }
+ if (ShiftoriumFrontend.UpgradeInstalled("artpad_128_color_palettes") == true)
+ {
+ panelstoadd = 128;
+ }
+ flowcolours.Controls.Clear();
+ for (int i = 0; i < panelstoadd; i++)
+ {
+ Panel pnl = new Panel();
+ pnl.BackColor = Color.Black;
+ pnl.Size = new Size(12, 8);
+ flowcolours.Controls.Add(pnl);
+ pnl.Margin = new Padding(1, 0, 0, 1);
+ pnl.MouseClick += new MouseEventHandler(this.colourpalette1_MouseClick);
+ pnl.Show();
+ }
+ }
+
+ // ERROR: Handles clauses are not supported in C#
+ private void btnchangesizecancel_Click(object sender, EventArgs e)
+ {
+ pnlpalettesize.Hide();
+ }
+
+ #endregion
+
+ #region More Text Stuff
+
+ // ERROR: Handles clauses are not supported in C#
+ private void txtdrawstringtext_TextChanged(object sender, EventArgs e)
+ {
+ setuppreview();
+ }
+
+ #endregion
+
+ private void tmrsetupui_Tick(object sender, EventArgs e)
+ {
+ }
+
+ private void btnpixelplacer_Click(object sender, EventArgs e)
+ {
+ selectedtool = "Pixel Placer";
+ gettoolsettings(pnlpixelplacersettings);
+ }
+
+ public void OnLoad()
+ {
+
+ }
+
+ public void OnSkinLoad()
+ {
+ }
+
+ public bool OnUnload()
+ {
+ return true;
+ }
+
+ public void OnUpgrade()
+ {
+ }
+ }
+
+ public class undo
+ {
+ public Stack<Image> undoStack = new Stack<Image>();
+ public Stack<Image> redoStack = new Stack<Image>();
+
+ }
+}