Merge branch 'master' into master

This commit is contained in:
Lars Brubaker 2018-10-16 16:35:48 -07:00 committed by GitHub
commit 4457223548
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 42 additions and 18 deletions

View file

@ -99,8 +99,8 @@ namespace MatterHackers.MatterControl.CustomWidgets
public override void OnMouseDown(MouseEventArgs mouseEvent)
{
if ((grabSide == GrabBarSide.Left && mouseEvent.Position.X < this.SplitterWidth)
|| (grabSide == GrabBarSide.Right && mouseEvent.Position.X > Width - this.SplitterWidth))
if ((grabSide == GrabBarSide.Left && mouseEvent.Position.X < LocalBounds.Left + this.SplitterWidth)
|| (grabSide == GrabBarSide.Right && mouseEvent.Position.X > LocalBounds.Right - this.SplitterWidth))
{
mouseDownOnBar = true;
mouseDownX = TransformToScreenSpace(mouseEvent.Position).X;

View file

@ -39,6 +39,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
public event EventHandler PopupWindowClosed;
public event EventHandler BeforePopup;
public event EventHandler<GuiWidget> ConfigurePopup;
protected GuiWidget buttonView;
@ -134,6 +135,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
this.PopupWindowClosed?.Invoke(this, null);
};
ConfigurePopup?.Invoke(this, popupWidget);
popupWidget.Focus();
}

View file

@ -375,6 +375,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
libraryPopup = new PopupMenuButton(buttonView, theme)
{
MakeScrollable = false,
Name = "Add Content Menu",
ToolTipText = "Add Content".Localize(),
AlwaysKeepOpen = true,
@ -385,23 +386,35 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
partPreviewContent = this.Parents<PartPreviewContent>().FirstOrDefault();
}
var widget = new GuiWidget()
var verticalResizeContainer = new VerticalResizeContainer(theme, GrabBarSide.Right)
{
VAnchor = VAnchor.Fit,
HAnchor = HAnchor.Fit,
BackgroundColor = theme.TabBarBackground,
Padding = new BorderDouble(theme.DefaultContainerPadding / 2, 0)
Padding = new BorderDouble(theme.DefaultContainerPadding / 2, 0),
MinimumSize = new Vector2(120, 50),
Height = libraryPopup.TransformToScreenSpace(libraryPopup.Position).Y,
};
double.TryParse(UserSettings.Instance.get(UserSettingsKey.PopupLibraryWidth), out double controlWidth);
if (controlWidth == 0)
{
controlWidth = 400;
}
verticalResizeContainer.Width = controlWidth;
verticalResizeContainer.BoundsChanged += (s2, e2) =>
{
UserSettings.Instance.set(UserSettingsKey.PopupLibraryWidth, verticalResizeContainer.Width.ToString());
};
var systemWindow = this.Parents<SystemWindow>().FirstOrDefault();
var printLibraryWidget = new PrintLibraryWidget(partPreviewContent, theme)
{
HAnchor = HAnchor.Left,
VAnchor = VAnchor.Bottom,
HAnchor = HAnchor.Stretch,
VAnchor = VAnchor.Absolute,
Height = libraryPopup.TransformToScreenSpace(libraryPopup.Position).Y,
Width = 400,
MinimumSize = new Vector2(400, 50)
Margin = new BorderDouble(left: verticalResizeContainer.SplitterWidth)
};
systemWindow.SizeChanged += (s, e) =>
@ -409,24 +422,25 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
printLibraryWidget.Height = libraryPopup.TransformToScreenSpace(libraryPopup.Position).Y;
};
widget.AddChild(printLibraryWidget);
verticalResizeContainer.AddChild(printLibraryWidget);
systemWindow.MouseDown += mouseDown;
systemWindow.MouseDown += systemWindownMouseDown;
void mouseDown(object s2, MouseEventArgs mouseEvent)
void systemWindownMouseDown(object s2, MouseEventArgs mouseEvent)
{
// MouseUp on our SystemWindow outside of our bounds should call close
var screenspacePosition = mouseEvent.Position;
bool mouseUpOnWidget = printLibraryWidget.PositionWithinLocalBounds(screenspacePosition.X, screenspacePosition.Y);
var resizeContainerMousePosition = verticalResizeContainer.TransformFromScreenSpace(mouseEvent.Position);
bool mouseUpOnWidget = resizeContainerMousePosition.X >= 0 && resizeContainerMousePosition.X <= verticalResizeContainer.Width
&& resizeContainerMousePosition.Y >= 0 && resizeContainerMousePosition.Y <= verticalResizeContainer.Height;
if (!mouseUpOnWidget)
{
libraryPopup.CloseMenu();
systemWindow.MouseDown -= mouseDown;
systemWindow.MouseDown -= systemWindownMouseDown;
}
};
return widget;
return verticalResizeContainer;
},
BackgroundColor = theme.ToolbarButtonBackground,
HoverColor = theme.ToolbarButtonHover,
@ -435,6 +449,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
Margin = theme.ButtonSpacing,
};
libraryPopup.ConfigurePopup += (s, e) =>
{
e.HAnchor = HAnchor.Fit;
e.VAnchor = VAnchor.Fit;
};
return libraryPopup;
}

View file

@ -56,6 +56,7 @@ namespace MatterHackers.MatterControl
public const string SliceSettingsTabPinned = nameof(SliceSettingsTabPinned);
public const string SliceSettingsWidget_CurrentTab = nameof(SliceSettingsWidget_CurrentTab);
public const string SliceSettingsWidth = nameof(SliceSettingsWidth);
public const string PopupLibraryWidth = nameof(PopupLibraryWidth);
public const string SoftwareLicenseAccepted = nameof(SoftwareLicenseAccepted);
public const string TerminalAutoUppercase = nameof(TerminalAutoUppercase);
public const string TerminalFilterOutput = nameof(TerminalFilterOutput);

@ -1 +1 @@
Subproject commit f2a1c3019e7344d96108bd7db5acce5de21aab28
Subproject commit cee3fb34c5f83149b09a0a862bd65a2d2c3a10e5