Merge pull request 'C2019-047 - Show figure size under tags when adding a new figure.' (#336) from C2019-047 into Development

changes are good. ready for testing phase.
This commit is contained in:
John Jenko 2024-06-07 15:04:14 -04:00
commit 78f58bea19
2 changed files with 67 additions and 18 deletions

View File

@ -56,6 +56,9 @@ namespace Volian.Controls.Library
private ROFSTLookup.rochild selectedChld; private ROFSTLookup.rochild selectedChld;
private DisplayTags displayTags;
#endregion #endregion
#region Properties #region Properties
@ -268,6 +271,10 @@ namespace Volian.Controls.Library
_searchTimer.Stop(); _searchTimer.Stop();
} }
// Initialize the DisplayTags object
displayTags = new DisplayTags();
_progressBar = null; _progressBar = null;
} }
@ -968,6 +975,9 @@ namespace Volian.Controls.Library
errormsg = (replacingRO) ? "a graphics RO with a non-graphcis RO." : "a Graphics RO in an non-Figure or a non-Accessory Page type."; errormsg = (replacingRO) ? "a graphics RO with a non-graphcis RO." : "a Graphics RO in an non-Figure or a non-Accessory Page type.";
//TODO: Prompt user to insert a new substep type that handles x/y Plots and place this RO into it //TODO: Prompt user to insert a new substep type that handles x/y Plots and place this RO into it
goodToGo = false; goodToGo = false;
} }
break; break;
} }

View File

@ -383,6 +383,8 @@ namespace Volian.Controls.Library
cmbCheckoff.Enabled = false; cmbCheckoff.Enabled = false;
} }
// show the part of panel for resizing a figure (if figure already exists: MyImage is set for non-RO existing images & content.text has a link in it) // show the part of panel for resizing a figure (if figure already exists: MyImage is set for non-RO existing images & content.text has a link in it)
if (MyEditItem.MyItemInfo.IsFigure && (MyEditItem.MyItemInfo.MyContent.MyImage != null || MyEditItem.MyItemInfo.MyContent.Text.ToUpper().Contains("#LINK"))) if (MyEditItem.MyItemInfo.IsFigure && (MyEditItem.MyItemInfo.MyContent.MyImage != null || MyEditItem.MyItemInfo.MyContent.Text.ToUpper().Contains("#LINK")))
{ {
@ -393,17 +395,35 @@ namespace Volian.Controls.Library
float wd1 = (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.PageWidth - (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.LeftMargin; float wd1 = (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.PageWidth - (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.LeftMargin;
float ht1 = (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.PageLength - (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.TopMargin - 36; // 36 is to allow for end message float ht1 = (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.PageLength - (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.TopMargin - 36; // 36 is to allow for end message
float wd2 = Math.Min(wd1, ht1 / _origFigureSizeRatio); // keep original ratio float wd2 = Math.Min(wd1, ht1 / _origFigureSizeRatio); // keep original ratio
trBarFS.Maximum = Math.Max((int)wd2, trBarFS.Maximum);
if (wd > trBarFS.Maximum) trBarFS.Maximum = wd + 1; SetFigure(wd1, wd2);
trBarFS.Minimum = Math.Min(wd, 72);
trBarFS.Value = (int)wd; //trBarFS.Maximum = Math.Max((int)wd2, trBarFS.Maximum);
ImageItem ii = MyEditItem as ImageItem; //if (wd > trBarFS.Maximum) trBarFS.Maximum = wd + 1;
_origFigureSizeWidth = ii.MyPictureBox.Width; //trBarFS.Minimum = Math.Min(wd, 72);
tbFSWd.Text = ii.MyPictureBox.Width.ToString(); //trBarFS.Value = (int)wd;
tbFSHt.Text = ii.MyPictureBox.Height.ToString(); //ImageItem ii = MyEditItem as ImageItem;
//_origFigureSizeWidth = ii.MyPictureBox.Width;
//tbFSWd.Text = ii.MyPictureBox.Width.ToString();
//tbFSHt.Text = ii.MyPictureBox.Height.ToString();
} }
else else
{ {
if (MyEditItem.MyItemInfo.IsFigure)
{
//No Current image, but still show groupPanelFigSize, will adjust when file is selected, but let's give it a default
//size on using the picturebox.
groupPanelFigSize.Visible = true;
int ht = (MyEditItem as ImageItem).MyPictureBox.Height;
int wd = (MyEditItem as ImageItem).MyPictureBox.Width;
_origFigureSizeRatio = (float)ht / (float)wd; // use this to keep width/height ratio while changing size.
float wd1 = (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.PageWidth - (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.LeftMargin;
float ht1 = (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.PageLength - (float)MyEditItem.MyItemInfo.MyDocStyle.Layout.TopMargin - 36; // 36 is to allow for end message
float wd2 = Math.Min(wd1, ht1 / _origFigureSizeRatio); // keep original ratio
SetFigure(wd1, wd2);
}
else
groupPanelFigSize.Visible = false; groupPanelFigSize.Visible = false;
} }
@ -516,6 +536,22 @@ namespace Volian.Controls.Library
} }
_Initalizing = false; _Initalizing = false;
} }
public void SetFigure(double wd, double wd2)
{
// Check MyEditItem type and cast if needed
ImageItem ii = MyEditItem as ImageItem;
if (ii == null) return;
// Set the values as needed
trBarFS.Maximum = Math.Max((int)wd2, trBarFS.Maximum);
if (wd > trBarFS.Maximum) trBarFS.Maximum = (int)wd + 1;
trBarFS.Minimum = Math.Min((int)wd, 72);
trBarFS.Value = (int)wd;
_origFigureSizeWidth = ii.MyPictureBox.Width;
tbFSWd.Text = ii.MyPictureBox.Width.ToString();
tbFSHt.Text = ii.MyPictureBox.Height.ToString();
}
private int DoListStepTypes(FormatData fmtdata, StepData topType, string curType) private int DoListStepTypes(FormatData fmtdata, StepData topType, string curType)
{ {
int cursel=-1; int cursel=-1;
@ -870,6 +906,8 @@ namespace Volian.Controls.Library
} }
// restore the orignal image size // restore the orignal image size
private void btnFSrestore_Click(object sender, EventArgs e) private void btnFSrestore_Click(object sender, EventArgs e)
{
if (_origFigureSizeWidth != 0)
{ {
tbFSWd.Text = _origFigureSizeWidth.ToString(); tbFSWd.Text = _origFigureSizeWidth.ToString();
int ht = (int)(_origFigureSizeRatio * _origFigureSizeWidth); int ht = (int)(_origFigureSizeRatio * _origFigureSizeWidth);
@ -877,6 +915,7 @@ namespace Volian.Controls.Library
(MyEditItem as ImageItem).SizeImage(_origFigureSizeWidth, ht); (MyEditItem as ImageItem).SizeImage(_origFigureSizeWidth, ht);
trBarFS.Value = _origFigureSizeWidth; trBarFS.Value = _origFigureSizeWidth;
} }
}
// user entered width in text box, this event gets called on leave of text box. // user entered width in text box, this event gets called on leave of text box.
private void tbFSWd_Leave(object sender, EventArgs e) private void tbFSWd_Leave(object sender, EventArgs e)
{ {