public ZoomControl(SharedSettings ss) { dZoomFactor = 100; settings = ss; int temp = ss.getCanvasWidth(); temp = temp < ss.getCanvasHeight() ? temp : ss.getCanvasHeight(); if (temp > 100) { ZOOM_MIN = 1; //Prevent sub-pixel scaling } else if (temp > 10 && temp <= 100) { ZOOM_MIN = 10; //Prevent sub-pixel scaling } else { ZOOM_MIN = 100; //Prevent sub-pixel scaling } InitializeComponent(); tbZoom.Text = "100"; }
public void updateText() { lPrime.Text = SharedSettings.getGlobalString("brushsettings_color_primary"); lSec.Text = SharedSettings.getGlobalString("brushsettings_color_secondary"); lSize.Text = SharedSettings.getGlobalString("brushsettings_brush_size") + ": " + tbSize.Value.ToString(); lHard.Text = SharedSettings.getGlobalString("brushsettings_brush_hardness") + ": " + tbHardness.Value.ToString(); }
public LayerView(int w, int h, SharedSettings s) { InitializeComponent(); ss = s; width = w; height = h; yLayerLocation = 0; LayerItem setup = new LayerItem(w, h, pf, "DEBUG", ss); this.Width = setup.Width; pLayerDisplay.Scroll += handleScroll; pLayerDisplay.MouseWheel += handleMouseWheel; Layers = new List <LayerItem>(); if (ss.getLoadFromSettings() && ss.getLayerBitmaps().Length > 0) { int layers = ss.getLayerBitmaps().Length; for (int n = 0; n < layers; n++) { addLayer(ss.getLayerBitmaps()[n], ss.getLayerNames()[n]); } } else { addLayer(); } //ss.setBitmapCurrentLayer(Layers[0].getBitmap()); redrawLayerItems(); UpdateLayerInfo(); }
private void handleLayerItemClick(object obj, System.EventArgs args) { if (obj is LayerItem) { LayerItem layer = ((LayerItem)obj); if (!layer.isLayerActive()) { SharedSettings.flattenSelection(); foreach (LayerItem l in Layers) { l.setActive(false); } layer.setActive(true); ss.setBitmapCurrentLayer(layer.getBitmap()); } layer.Refresh(); } else if (obj is PictureBox) { LayerItem layer = (LayerItem)((PictureBox)obj).Parent; if (!layer.isLayerActive()) { SharedSettings.flattenSelection(); foreach (LayerItem l in Layers) { l.setActive(false); l.Refresh(); } layer.setActive(true); } layer.Refresh(); } redrawLayerItems(); }
private void removeLayer() { SharedSettings.flattenSelection(); //Foreach loop to iterate through all layers try { for (int t = Layers.Count - 1; t >= 0; t--) { //If there's only one layer, don't remove it if (Layers.Count <= 1) { break; } if (Layers[t].isLayerActive()) { //removes the LayerItem from the Display pLayerDisplay.Controls.Remove(Layers[t]); //Removes selected layer from the List Layers.Remove(Layers[t]); } } } catch (Exception err) { Console.WriteLine(err.InnerException); } redrawLayerItems(); //Disable the Relevant Buttons if only one layer Exists bRemoveLayer.Enabled = (Layers.Count > 1); bMoveDown.Enabled = (Layers.Count > 1); bMoveUp.Enabled = (Layers.Count > 1); }
private void addLayer(Bitmap b, String name) { SharedSettings.flattenSelection(); foreach (LayerItem layer in Layers) { layer.setActive(false); } LayerItem temp = new LayerItem(width, height, pf, name, ss); temp.Location = new Point(0, yLayerLocation); yLayerLocation += temp.Height + 5; temp.setActive(true); temp.setOnClick(handleLayerItemClick); temp.setBitmap(b); Layers.Add(temp); pLayerDisplay.Controls.Add(Layers[Layers.Count - 1]); if (Layers.Count > 1) { bRemoveLayer.Enabled = true; bMoveDown.Enabled = true; bMoveUp.Enabled = true; } ss.setBitmapCurrentLayer(Layers[Layers.Count - 1].getBitmap()); }
public void addImportImage(Bitmap b) { SharedSettings.flattenSelection(); foreach (LayerItem layer in Layers) { layer.setActive(false); } Bitmap bit = new Bitmap(SharedSettings.iCanvasWidth, SharedSettings.iCanvasHeight, PixelFormat.Format32bppArgb); Graphics.FromImage(bit).DrawImage(b, 0, 0); LayerItem temp = new LayerItem(width, height, pf, Layers.Count.ToString(), ss); temp.Location = new Point(0, yLayerLocation); yLayerLocation += temp.Height + 5; temp.setActive(true); temp.setOnClick(handleLayerItemClick); temp.setBitmap((Bitmap)bit.Clone()); Layers.Add(temp); pLayerDisplay.Controls.Add(Layers[Layers.Count - 1]); if (Layers.Count > 1) { bRemoveLayer.Enabled = true; bMoveDown.Enabled = true; bMoveUp.Enabled = true; } b.Dispose(); bit.Dispose(); redrawLayerItems(); }
public LayerItem(int w, int h, PixelFormat pf, String name, SharedSettings s) { ss = s; InitializeComponent(); cbVisible.Text = SharedSettings.getGlobalString("layeritem_checkbox_visible"); isVisible = true; LayerBitmap = new Bitmap(w, h, pf); g = Graphics.FromImage(LayerBitmap); SharedSettings.bitmapCurrentLayer = LayerBitmap; SharedSettings.gActiveGraphics = g; cbVisible.Checked = true; this.BackColor = cNotActive; //Stretch The Preview Image to fit pbLayerPreview.SizeMode = PictureBoxSizeMode.Zoom; pbLayerPreview.BackColor = Color.White; sLayerName = name; tbLayerName.Text = sLayerName; this.Update(); }
public ProjectSave(SharedSettings ss) { settings = ss; BackgroundWorker bw = new BackgroundWorker(); try { SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = SharedSettings.getGlobalString("projectsave_dialog_filter"); sfd.Title = SharedSettings.getGlobalString("projectsave_dialog_title"); sfd.OverwritePrompt = false; sfd.ShowDialog(); bw.DoWork += (send, args) => { doSave(sfd); }; bw.RunWorkerAsync(); } catch (Exception e) { Console.WriteLine(e.InnerException); } }
public GDriveSaveDialog() { InitializeComponent(); this.Text = SharedSettings.getGlobalString("gdrivesavedialog_title"); lbl_FileName.Text = SharedSettings.getGlobalString("gdrivesavedialog_filename"); lbl_FileType.Text = SharedSettings.getGlobalString("gdrivesavedialog_filetype"); btn_save.Text = SharedSettings.getGlobalString("gdrivesavedialog_save"); }
public void init(SharedSettings s) { graphics = s.getActiveGraphics(); width = s.getCanvasWidth(); height = s.getCanvasHeight(); settings = s; bInit = true; }
public void onMouseUp(object sender, MouseEventArgs e) { pOld.X = 0; pOld.Y = 0; pNew.X = 0; pNew.Y = 0; p2 = new Point(e.X, e.Y); if (p1.X == p2.X || p1.Y == p2.Y) { SharedSettings.flattenSelection(); } else { if (!ss.getActiveSelection()) { int tlX = p1.X, tlY = p1.Y; int width = Math.Abs(p1.X - p2.X); int height = Math.Abs(p1.Y - p2.Y); if (p2.X < p1.X) { tlX = p2.X; } if (p2.Y < p1.Y) { tlY = p2.Y; } tlX = tlX < 0 ? 0 : tlX; tlY = tlY < 0 ? 0 : tlY; width = width + tlX <= SharedSettings.iCanvasWidth ? width : SharedSettings.iCanvasWidth - tlX; height = height + tlY <= SharedSettings.iCanvasHeight ? height : SharedSettings.iCanvasHeight - tlY; Point loc = new Point(tlX, tlY); Size sze = new Size(width, height); ss.setSelectionPoint(loc); ss.setSelectionSize(sze); updateInterfaceLayer(); //Get selected area data bEdit = ss.getBitmapCurrentLayer(true).Clone(new Rectangle(loc, sze), ss.getBitmapCurrentLayer(true).PixelFormat); //clear data below selection ss.getActiveGraphics().CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy; ss.getActiveGraphics().FillRectangle(new SolidBrush(Color.Transparent), new Rectangle(loc, sze)); ss.getActiveGraphics().CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver; SharedSettings.setSelection(bEdit, loc); } } }
private void makeNewProject(int w, int h) { if (c != null) { c.Trash(); //To help with memory leak issues } c = new Canvas(w, h, this.Width, this.Height); c.Location = new Point(200, 5); this.Controls.Add(c); c.initCanvas(); ss = c.getSharedSettings(); }
public NewProjectForm() { InitializeComponent(); this.Text = SharedSettings.getGlobalString("newproject_dialog_title"); lWidth.Text = SharedSettings.getGlobalString("newproject_dialog_width"); lHeight.Text = SharedSettings.getGlobalString("newproject_dialog_height"); bSubmit.Text = SharedSettings.getGlobalString("newproject_dialog_submit"); CanvasWidth = -1; CanvasHeight = -1; }
private void updateText() { //Form Title this.Text = SharedSettings.getGlobalString("title"); //File Menu Items tsmiFile.Text = SharedSettings.getGlobalString("file_menu"); tsmiFile_New.Text = SharedSettings.getGlobalString("file_menu_new"); tsmiFile_Save.Text = SharedSettings.getGlobalString("file_menu_save"); tsmiFile_Load.Text = SharedSettings.getGlobalString("file_menu_open"); tsmiFile_Import.Text = SharedSettings.getGlobalString("file_menu_import"); tsmiFile_Export.Text = SharedSettings.getGlobalString("file_menu_export"); tsmiFile_SaveGoogleDrive.Text = SharedSettings.getGlobalString("file_menu_googledrive"); //Edit Menu Items tsmiEdit.Text = SharedSettings.getGlobalString("edit_menu"); tsmiEdit_Redo.Text = SharedSettings.getGlobalString("edit_menu_redo"); tsmiEdit_Undo.Text = SharedSettings.getGlobalString("edit_menu_undo"); tsmiEdit_Resize.Text = SharedSettings.getGlobalString("edit_menu_resize"); //View Menu Items tsmiView.Text = SharedSettings.getGlobalString("view_menu"); tsmiView_GridLines.Text = SharedSettings.getGlobalString("view_menu_grid"); tsmiView_GridLines_Auto.Text = SharedSettings.getGlobalString("view_menu_grid_auto"); tsmiView_ShowTools.Text = SharedSettings.getGlobalString("view_menu_tools"); //Preferences Menu Items tsmiPreferences.Text = SharedSettings.getGlobalString("preferences_menu"); tsmiPreferences_Watermark.Text = SharedSettings.getGlobalString("preferences_menu_watermark"); tsmiPreferences_Watermark_SetImage.Text = SharedSettings.getGlobalString("preferences_menu_watermark_set"); tsmiPreferences_Watermark_ShowWatermark.Text = SharedSettings.getGlobalString("preferences_menu_watermark_show"); tsmiPreferences_Watermark_Style.Text = SharedSettings.getGlobalString("preferences_menu_watermark_style"); tsmiPreferences_Watermark_Style_SingleBottom.Text = SharedSettings.getGlobalString("preferences_menu_watermark_style_singlebottom"); tsmiPreferences_Watermark_Style_SingleCentered.Text = SharedSettings.getGlobalString("preferences_menu_watermark_style_singlecentered"); tsmiPreferences_Watermark_Style_Tiled.Text = SharedSettings.getGlobalString("preferences_menu_watermark_style_tiled"); tsmiInternational.Text = SharedSettings.getGlobalString("preferences_menu_international"); //ToolStrip Item ToolTips tsNew.ToolTipText = SharedSettings.getGlobalString("toolstripmenu_new"); tsOpen.ToolTipText = SharedSettings.getGlobalString("toolstripmenu_import"); tsSave.ToolTipText = SharedSettings.getGlobalString("toostripmenu_save"); foreach (Control c in Controls) { if (c is ITextUpdate) { ((ITextUpdate)c).updateText(); } } this.Refresh(); }
private void doSave(SaveFileDialog sfd) { if (sfd.FileName != "") { try { System.IO.Directory.CreateDirectory("save"); Bitmap[] bitArr = settings.getLayerBitmaps(); string baseDir = System.IO.Directory.GetCurrentDirectory(); string[] LayerNames = settings.getLayerNames(); for (int n = 0; n < bitArr.Length; n++) { bitArr[n].Save(baseDir + "\\save\\" + LayerNames[n] + ".png", ImageFormat.Png); } System.IO.File.WriteAllLines(baseDir + @"\save\names.txt", LayerNames); if (SharedSettings.bitmapWatermark != null) { System.IO.Directory.CreateDirectory("save\\watermark"); SharedSettings.bitmapWatermark.Save("save\\watermark\\watermark.png", ImageFormat.Png); string[] watermarkInfo = { SharedSettings.bRenderWatermark.ToString(), SharedSettings.watermarkStyle }; System.IO.File.WriteAllLines(baseDir + @"\\save\\watermark\\watermarkdata.txt", watermarkInfo); } if (System.IO.File.Exists(sfd.FileName)) { System.IO.File.Delete(sfd.FileName); } ZipFile.CreateFromDirectory(baseDir + @"\save", sfd.FileName); System.IO.Directory.Delete(baseDir + @"\save", true); string message = SharedSettings.getGlobalString("projectsave_saved"); MessageBox.Show(new Form() { WindowState = FormWindowState.Maximized, TopMost = true }, message); } catch (Exception e) { string message = SharedSettings.getGlobalString("projectsave_error") + "\n\n" + e.ToString(); MessageBox.Show(new Form() { WindowState = FormWindowState.Maximized, TopMost = true }, message); } } }
public static void DriveUpload(string pathToFile) { // Authenticate with Drive API UserCredential credential; using (var strm = new FileStream("client_secret.json", FileMode.Open, FileAccess.Read)) { string credPath = System.Environment.GetFolderPath( System.Environment.SpecialFolder.Personal); credPath = Path.Combine(credPath, ".credentials/drive-dotnet-lepaint.json"); credential = GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(strm).Secrets, Scopes, "user", CancellationToken.None, new FileDataStore(credPath, true)).Result; Console.WriteLine("Credential file saved to: " + credPath); } // Create Drive API service var service = new DriveService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = ApplicationName, }); FilesResource.ListRequest listRequest = service.Files.List(); listRequest.Fields = "nextPageToken, files(name)"; // insert as new file Google.Apis.Drive.v3.Data.File body = new Google.Apis.Drive.v3.Data.File(); body.Name = System.IO.Path.GetFileName(pathToFile); body.MimeType = GetMimeType(pathToFile); byte[] byteArray = System.IO.File.ReadAllBytes(pathToFile); System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray); try { FilesResource.CreateMediaUpload request = service.Files.Create(body, stream, body.MimeType); request.Upload(); Console.WriteLine("File Created " + body.Name + " - " + body.MimeType); } catch (Exception e) { MessageBox.Show(new Form() { WindowState = FormWindowState.Maximized, TopMost = true }, SharedSettings.getGlobalString("googledriveupload_error") + e.Message); } }
public void init(SharedSettings s) { graphics = s.getActiveGraphics(); width = s.getCanvasWidth(); height = s.getCanvasHeight(); settings = s; bInit = true; bMouseDown = false; updateColors(); if (graphics != null) { graphics.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver; } }
public Canvas(int pw, int ph) { InitializeComponent(); ss = new SharedSettings(); canvasWidth = SharedSettings.bitmapCanvas.Width; canvasHeight = SharedSettings.bitmapCanvas.Height; maxWidth = pw; maxHeight = ph; this.Width = canvasWidth; this.Height = canvasHeight; this.AutoSize = true; this.AutoSizeMode = AutoSizeMode.GrowAndShrink; }
public void doSaveAnimGif(string filename, object sender, DoWorkEventArgs args) { FileStream fs = new FileStream(filename + ".gif", FileMode.OpenOrCreate); using (var stream = new MemoryStream()) { using (var encoder = new GifEncoder(stream, null, null, 12)) { for (int i = 0; i < SharedSettings.Layers.Length; i++) { var image = (Image)(SharedSettings.Layers[i] as Bitmap).Clone(); encoder.AddFrame(image, 0, 0, TimeSpan.FromSeconds(0)); } stream.Position = 0; stream.WriteTo(fs); } } fs.Close(); try { GoogleDriveUpload.DriveUpload(filename + ".gif"); string message = SharedSettings.getGlobalString("projectsave_saved"); MessageBox.Show(new Form() { WindowState = FormWindowState.Maximized, TopMost = true }, message); } catch (Exception e) { MessageBox.Show(new Form() { WindowState = FormWindowState.Maximized, TopMost = true }, SharedSettings.getGlobalString("gdrivesavedialog_error") + e.Message); } try { System.IO.File.Delete(filename + ".gif"); } catch (Exception e) { Console.WriteLine("Problem deleting temp gif file: " + e.Message); } }
public BrushSettings(SharedSettings s) { InitializeComponent(); lPrime.Text = SharedSettings.getGlobalString("brushsettings_color_primary"); lSec.Text = SharedSettings.getGlobalString("brushsettings_color_secondary"); lSize.Text = SharedSettings.getGlobalString("brushsettings_brush_size"); lHard.Text = SharedSettings.getGlobalString("brushsettings_brush_hardness"); settings = s; pPrime.BackColor = settings.getPrimaryBrushColor(); pSec.BackColor = settings.getSecondaryBrushColor(); tbSize.Value = (int)settings.getBrushSize(); tbHardness.Value = (int)settings.getBrushHardness(); this.Refresh(); }
private void tsmiFile_Save_Click(object sender, EventArgs e) { //Save Project Function try { c.setPause(true); ProjectSave ps = new ProjectSave(c.getSharedSettings()); } catch (Exception err) { String s = SharedSettings.getGlobalString("error_save_project") + err.ToString(); MessageBox.Show(new Form() { WindowState = FormWindowState.Maximized, TopMost = true }, s); } c.setPause(false); }
public void init(SharedSettings s) { graphics = s.getActiveGraphics(); width = s.getCanvasWidth(); height = s.getCanvasHeight(); settings = s; bInit = true; bMouseDown = false; eraser = new Pen(Color.Transparent); eraser.Width = settings.getBrushSize() / 2; eraser.SetLineCap(LineCap.Round, LineCap.Round, DashCap.Round); if (graphics != null) { graphics.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy; } }
public ProjectLoad() { Result = ""; try { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = SharedSettings.getGlobalString("projectopen_dialog_filter"); ofd.Title = SharedSettings.getGlobalString("projectopen_dialog_title"); ofd.ShowDialog(); doOpen(ofd); ofd.Dispose(); } catch (Exception e) { Console.WriteLine("An error was thrown while opening!" + e.InnerException); } }
private void doOpen(SharedSettings ss, OpenFileDialog ofd, object sender, DoWorkEventArgs args) { if (ofd.FileName != "") { try { var ms = new MemoryStream(File.ReadAllBytes(ofd.FileName)); Bitmap bm = new Bitmap(Image.FromStream(ms)); ss.setImportImage(bm); } catch (Exception e) { string message = SharedSettings.getGlobalString("importimage_error") + "\n\n" + e.ToString(); MessageBox.Show(new Form() { WindowState = FormWindowState.Maximized, TopMost = true }, message); } } }
public Canvas(int w, int h, int pw, int ph) { InitializeComponent(); ss = new SharedSettings(); canvasWidth = w; canvasHeight = h; maxWidth = pw; maxHeight = ph; ss.setCanvasWidth(canvasWidth); ss.setCanvasHeight(canvasHeight); this.Width = canvasWidth; this.Height = canvasHeight; this.AutoSize = true; this.AutoSizeMode = AutoSizeMode.GrowAndShrink; }
public void onMouseMove(object sender, MouseEventArgs e) { if (graphics != null && bMouseDown) { if (e.Button == MouseButtons.Left) { pNew = e.Location; if (settings.getTabletPressure() == -1) { graphics.DrawLine(eraser, pOld, pNew); } else if (settings.getTabletPressure() >= 0) { eraser.Width = (float)Math.Pow(2.0, SharedSettings.MapDouble(0, SharedSettings.iMaxTabletPressure, 0.0, 6.0, SharedSettings.iTabletPressure)); graphics.DrawLine(eraser, pOld, pNew); } pOld = pNew; } } }
public void onMouseMove(object sender, MouseEventArgs e) { if (graphics != null && bMouseDown) { pNew = e.Location; if (settings.getTabletPressure() > 0) { double pressure = Math.Pow(2.0, SharedSettings.MapDouble(0, SharedSettings.iMaxTabletPressure, 0.0, 6.0, SharedSettings.iTabletPressure)); Console.WriteLine(pressure); if (pressure >= 0) { pen.Width = (float)pressure; } } else { pen.Width = settings.getBrushSize() / 2; } switch (e.Button) { // TODO: Add tablet pressure back in... case MouseButtons.Left: pen.Color = primaryColor; graphics.DrawLine(pen, pOld, pNew); break; case MouseButtons.Right: pen.Color = secondaryColor; graphics.DrawLine(pen, pOld, pNew); break; default: break; } pOld = pNew; } }
public void init(Graphics g, int w, int h, SharedSettings s) { graphics = g; width = w; height = h; settings = s; bInit = true; bMouseDown = false; points = new List <Point>(); pOld = pNew = new Point(-1, -1); numPoints = 0; if (graphics != null) { graphics.SmoothingMode = SmoothingMode.AntiAlias; graphics.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver; } updateBrush(); }
private void setImageToolStripMenuItem_Click(object sender, EventArgs e) { try { OpenFileDialog sfd = new OpenFileDialog(); sfd.Filter = SharedSettings.getGlobalString("watermarkdialog_filter"); sfd.Title = SharedSettings.getGlobalString("watermarkdialog_title"); sfd.ShowDialog(); SharedSettings.watermarkPath = sfd.FileName; SharedSettings.bitmapWatermark = new Bitmap(sfd.FileName); } catch { } if (SharedSettings.watermarkPath != null) { tsmiPreferences_Watermark_ShowWatermark.Enabled = true; tsmiPreferences_Watermark_Style.Enabled = true; } }