allow saving graphs
This commit is contained in:
parent
3cd5b64d85
commit
ffe466df8d
|
@ -5,6 +5,11 @@ VisualStudioVersion = 16.0.29519.87
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PowerCalc", "PowerCalc\PowerCalc.csproj", "{C97F69FA-BACC-45BE-97A2-6D88535B7665}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PowerCalc", "PowerCalc\PowerCalc.csproj", "{C97F69FA-BACC-45BE-97A2-6D88535B7665}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{0E74F5E8-1B7D-4D54-A5BD-9369050A8F98}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
README.md = README.md
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
this.logExpandButton = new System.Windows.Forms.Button();
|
this.logExpandButton = new System.Windows.Forms.Button();
|
||||||
this.logBox = new System.Windows.Forms.TextBox();
|
this.logBox = new System.Windows.Forms.TextBox();
|
||||||
this.logCollapseButton = new System.Windows.Forms.Button();
|
this.logCollapseButton = new System.Windows.Forms.Button();
|
||||||
|
this.saveButton = new System.Windows.Forms.Button();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
|
||||||
this.splitContainer.Panel1.SuspendLayout();
|
this.splitContainer.Panel1.SuspendLayout();
|
||||||
this.splitContainer.Panel2.SuspendLayout();
|
this.splitContainer.Panel2.SuspendLayout();
|
||||||
|
@ -158,6 +159,7 @@
|
||||||
// splitContainer.Panel1
|
// splitContainer.Panel1
|
||||||
//
|
//
|
||||||
this.splitContainer.Panel1.AutoScroll = true;
|
this.splitContainer.Panel1.AutoScroll = true;
|
||||||
|
this.splitContainer.Panel1.Controls.Add(this.saveButton);
|
||||||
this.splitContainer.Panel1.Controls.Add(this.coordLabel);
|
this.splitContainer.Panel1.Controls.Add(this.coordLabel);
|
||||||
this.splitContainer.Panel1.Controls.Add(this.evalButton);
|
this.splitContainer.Panel1.Controls.Add(this.evalButton);
|
||||||
this.splitContainer.Panel1.Controls.Add(this.logExpandButton);
|
this.splitContainer.Panel1.Controls.Add(this.logExpandButton);
|
||||||
|
@ -187,15 +189,16 @@
|
||||||
this.coordLabel.AutoSize = true;
|
this.coordLabel.AutoSize = true;
|
||||||
this.coordLabel.Location = new System.Drawing.Point(68, 155);
|
this.coordLabel.Location = new System.Drawing.Point(68, 155);
|
||||||
this.coordLabel.Name = "coordLabel";
|
this.coordLabel.Name = "coordLabel";
|
||||||
this.coordLabel.Size = new System.Drawing.Size(0, 13);
|
this.coordLabel.Size = new System.Drawing.Size(44, 13);
|
||||||
this.coordLabel.TabIndex = 10;
|
this.coordLabel.TabIndex = 10;
|
||||||
|
this.coordLabel.Text = "{X=,Y=}";
|
||||||
//
|
//
|
||||||
// evalButton
|
// evalButton
|
||||||
//
|
//
|
||||||
this.evalButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
this.evalButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||||
this.evalButton.Location = new System.Drawing.Point(3, 150);
|
this.evalButton.Location = new System.Drawing.Point(3, 150);
|
||||||
this.evalButton.Name = "evalButton";
|
this.evalButton.Name = "evalButton";
|
||||||
this.evalButton.Size = new System.Drawing.Size(59, 23);
|
this.evalButton.Size = new System.Drawing.Size(36, 23);
|
||||||
this.evalButton.TabIndex = 9;
|
this.evalButton.TabIndex = 9;
|
||||||
this.evalButton.Text = "Eval";
|
this.evalButton.Text = "Eval";
|
||||||
this.evalButton.UseVisualStyleBackColor = true;
|
this.evalButton.UseVisualStyleBackColor = true;
|
||||||
|
@ -233,6 +236,17 @@
|
||||||
this.logCollapseButton.UseVisualStyleBackColor = true;
|
this.logCollapseButton.UseVisualStyleBackColor = true;
|
||||||
this.logCollapseButton.Click += new System.EventHandler(this.logCollapseButton_Click);
|
this.logCollapseButton.Click += new System.EventHandler(this.logCollapseButton_Click);
|
||||||
//
|
//
|
||||||
|
// saveButton
|
||||||
|
//
|
||||||
|
this.saveButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||||
|
this.saveButton.Location = new System.Drawing.Point(39, 150);
|
||||||
|
this.saveButton.Name = "saveButton";
|
||||||
|
this.saveButton.Size = new System.Drawing.Size(23, 23);
|
||||||
|
this.saveButton.TabIndex = 11;
|
||||||
|
this.saveButton.Text = "💾";
|
||||||
|
this.saveButton.UseVisualStyleBackColor = true;
|
||||||
|
this.saveButton.Click += new System.EventHandler(this.saveButton_Click);
|
||||||
|
//
|
||||||
// MainForm
|
// MainForm
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
@ -271,6 +285,7 @@
|
||||||
private System.Windows.Forms.Button logExpandButton;
|
private System.Windows.Forms.Button logExpandButton;
|
||||||
private System.Windows.Forms.Button evalButton;
|
private System.Windows.Forms.Button evalButton;
|
||||||
private System.Windows.Forms.Label coordLabel;
|
private System.Windows.Forms.Label coordLabel;
|
||||||
|
private System.Windows.Forms.Button saveButton;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,15 +2,24 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace PowerCalc
|
namespace PowerCalc
|
||||||
{
|
{
|
||||||
public partial class MainForm : Form
|
public partial class MainForm : Form
|
||||||
{
|
{
|
||||||
public MainForm() => InitializeComponent();
|
public MainForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
evalBox_MouseLeave(null, null);
|
||||||
|
#if DEBUG
|
||||||
|
logExpandButton_Click(null, null);
|
||||||
|
#else
|
||||||
|
logCollapseButton_Click(null, null);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
private void logCollapseButton_Click(object sender, EventArgs e)
|
private void logCollapseButton_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
@ -130,6 +139,31 @@ namespace PowerCalc
|
||||||
|
|
||||||
private void evalBox_MouseMove(object sender, MouseEventArgs e) => coordLabel.Text = new Point(e.X, evalBox.Height - e.Y).ToString();
|
private void evalBox_MouseMove(object sender, MouseEventArgs e) => coordLabel.Text = new Point(e.X, evalBox.Height - e.Y).ToString();
|
||||||
|
|
||||||
private void evalBox_MouseLeave(object sender, EventArgs e) => coordLabel.Text = "";
|
private void evalBox_MouseLeave(object sender, EventArgs e) => coordLabel.Text = Point.Empty.ToString().Replace("0", "");
|
||||||
|
|
||||||
|
private void saveButton_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ImageFormat[] formats = new ImageFormat[]
|
||||||
|
{
|
||||||
|
ImageFormat.Bmp,
|
||||||
|
ImageFormat.Emf,
|
||||||
|
ImageFormat.Gif,
|
||||||
|
ImageFormat.Jpeg,
|
||||||
|
ImageFormat.Png,
|
||||||
|
ImageFormat.Tiff,
|
||||||
|
ImageFormat.Wmf
|
||||||
|
};
|
||||||
|
SaveFileDialog dlg = new SaveFileDialog
|
||||||
|
{
|
||||||
|
FileName = "Graph",
|
||||||
|
Filter = string.Join("|", formats.Select(s => s.ToString() + " Image|*." + (s.ToString() == "Jpeg" ? "jpg" : s.ToString().ToLower())).ToArray())
|
||||||
|
};
|
||||||
|
if (dlg.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
Bitmap bmp = new Bitmap(evalBox.Width, evalBox.Height);
|
||||||
|
evalBox_Paint(evalBox, new PaintEventArgs(Graphics.FromImage(bmp), new Rectangle(Point.Empty, bmp.Size)));
|
||||||
|
bmp.Save(dlg.FileName, formats[dlg.FilterIndex - 1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue