mattercontrol/PartPreviewWindow/SaveAsWindow.cs
2014-03-20 12:01:31 -07:00

133 lines
4.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text;
using MatterHackers.Agg;
using MatterHackers.Agg.UI;
using MatterHackers.VectorMath;
using MatterHackers.Agg.Image;
using MatterHackers.MatterControl.DataStorage;
using MatterHackers.Localizations;
namespace MatterHackers.MatterControl
{
public class SaveAsWindow : SystemWindow
{
Button saveAsButton;
Button cancelSaveButton;
CheckBox addToLibraryOption;
protected TextImageButtonFactory textImageButtonFactory = new TextImageButtonFactory ();
public SaveAsWindow()
: base (480, 250)
{
Title = "Save As Window";
FlowLayoutWidget topToBottom = new FlowLayoutWidget(FlowDirection.TopToBottom);
topToBottom.AnchorAll();
topToBottom.Padding = new BorderDouble(3, 0, 3, 5);
// Creates Header
FlowLayoutWidget headerRow = new FlowLayoutWidget(FlowDirection.LeftToRight);
headerRow.HAnchor = HAnchor.ParentLeftRight;
headerRow.Margin = new BorderDouble(0, 3, 0, 0);
headerRow.Padding = new BorderDouble(0, 3, 0, 3);
BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor;
//Creates Text and adds into header
{
string saveAsLabel = "Save As:";
TextWidget elementHeader = new TextWidget (saveAsLabel, pointSize: 14);
elementHeader.TextColor = ActiveTheme.Instance.PrimaryTextColor;
elementHeader.HAnchor = HAnchor.ParentLeftRight;
elementHeader.VAnchor = Agg.UI.VAnchor.ParentBottom;
headerRow.AddChild (elementHeader);
topToBottom.AddChild (headerRow);
this.AddChild (topToBottom);
}
//Creates container in the middle of window
FlowLayoutWidget presetsFormContainer = new FlowLayoutWidget(FlowDirection.TopToBottom);
{
presetsFormContainer.HAnchor = HAnchor.ParentLeftRight;
presetsFormContainer.VAnchor = VAnchor.ParentBottomTop;
presetsFormContainer.Padding = new BorderDouble(5);
presetsFormContainer.BackgroundColor = ActiveTheme.Instance.SecondaryBackgroundColor;
}
string fileNameLabel = "Design Name*";
TextWidget textBoxHeader = new TextWidget(fileNameLabel, pointSize: 12);
textBoxHeader.TextColor = ActiveTheme.Instance.PrimaryTextColor;
textBoxHeader.Margin = new BorderDouble (5);
textBoxHeader.HAnchor = HAnchor.ParentLeft;
string fileNameLabelFull = "Enter the name of your design.";
TextWidget textBoxHeaderFull = new TextWidget(fileNameLabelFull, pointSize: 9);
textBoxHeaderFull.TextColor = ActiveTheme.Instance.PrimaryTextColor;
textBoxHeaderFull.Margin = new BorderDouble (5);
textBoxHeaderFull.HAnchor = HAnchor.ParentLeftRight;
//Adds text box and check box to the above container
MHTextEditWidget textToAddWidget = new MHTextEditWidget("", pixelWidth: 300, messageWhenEmptyAndNotSelected: "Enter a Design Name Here");
textToAddWidget.HAnchor = HAnchor.ParentLeftRight;
textToAddWidget.Margin = new BorderDouble(5);
GuiWidget cTSpacer = new GuiWidget();
cTSpacer.HAnchor = HAnchor.ParentLeftRight;
string checkBoxHelpText = "Design will be saved to MatterControl library unless 'Add to Queue' box is checked.";
TextWidget checkBoxHelpFull = new TextWidget(checkBoxHelpText, pointSize: 9);
checkBoxHelpFull.TextColor = ActiveTheme.Instance.PrimaryTextColor;
checkBoxHelpFull.Margin = new BorderDouble(5);
checkBoxHelpFull.HAnchor = HAnchor.ParentLeftRight;
addToLibraryOption = new CheckBox("Add to Queue",RGBA_Bytes.White);
addToLibraryOption.Margin = new BorderDouble (5);
addToLibraryOption.HAnchor = HAnchor.ParentLeftRight;
presetsFormContainer.AddChild(textBoxHeader);
presetsFormContainer.AddChild (textBoxHeaderFull);
presetsFormContainer.AddChild(textToAddWidget);
presetsFormContainer.AddChild(cTSpacer);
presetsFormContainer.AddChild(checkBoxHelpFull);
presetsFormContainer.AddChild(addToLibraryOption);
topToBottom.AddChild(presetsFormContainer);
//Creates button container on the bottom of window
FlowLayoutWidget buttonRow = new FlowLayoutWidget(FlowDirection.LeftToRight);
{
BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor;
buttonRow.HAnchor = HAnchor.ParentLeftRight;
buttonRow.Padding = new BorderDouble(0,3);
}
saveAsButton = textImageButtonFactory.Generate("Save As".Localize(), centerText: true);
saveAsButton.Visible = true;
saveAsButton.Cursor = Cursors.Hand;
//Adds SaveAs and Close Button to button container
GuiWidget hButtonSpacer = new GuiWidget();
hButtonSpacer.HAnchor = HAnchor.ParentLeftRight;
cancelSaveButton = textImageButtonFactory.Generate ("Cancel", centerText: true);
cancelSaveButton.Visible = true;
cancelSaveButton.Cursor = Cursors.Hand;
buttonRow.AddChild(saveAsButton);
buttonRow.AddChild(hButtonSpacer);
buttonRow.AddChild(cancelSaveButton);
topToBottom.AddChild(buttonRow);
ShowAsSystemWindow ();
}
}
}