Merge branch 'master' into master
This commit is contained in:
commit
4457223548
5 changed files with 42 additions and 18 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
Loading…
Add table
Add a link
Reference in a new issue