Made the popup tab selection be persistent (in mem)
This commit is contained in:
parent
b9b886e048
commit
af534f0802
5 changed files with 47 additions and 7 deletions
|
|
@ -52,12 +52,18 @@ namespace MatterHackers.MatterControl.CustomWidgets
|
|||
private GuiWidget topToBottom;
|
||||
|
||||
protected GuiWidget widgetTodockTo;
|
||||
private Func<int> getSelectedTab;
|
||||
private Action<int> setSelectedTab;
|
||||
|
||||
public DockSide DockSide { get; set; }
|
||||
|
||||
public DockingTabControl(GuiWidget widgetTodockTo, DockSide dockSide)
|
||||
public DockingTabControl(GuiWidget widgetTodockTo, DockSide dockSide, Func<int> getSelectedTab, Action<int> setSelectedTab)
|
||||
{
|
||||
this.widgetTodockTo = widgetTodockTo;
|
||||
this.DockSide = dockSide;
|
||||
|
||||
this.getSelectedTab = getSelectedTab;
|
||||
this.setSelectedTab = setSelectedTab;
|
||||
}
|
||||
|
||||
public event EventHandler PinStatusChanged;
|
||||
|
|
@ -122,6 +128,7 @@ namespace MatterHackers.MatterControl.CustomWidgets
|
|||
topToBottom.AddChild(resizePage);
|
||||
}
|
||||
|
||||
int tabIndex = 0;
|
||||
foreach (var nameWidget in allTabs)
|
||||
{
|
||||
string tabTitle = nameWidget.Key;
|
||||
|
|
@ -131,8 +138,7 @@ namespace MatterHackers.MatterControl.CustomWidgets
|
|||
var content = new DockWindowContent(this, nameWidget.Value, tabTitle);
|
||||
|
||||
var tabPage = new TabPage(content, tabTitle);
|
||||
|
||||
tabControl.AddTab(new TextTab(
|
||||
var textTab = new TextTab(
|
||||
tabPage,
|
||||
tabTitle + " Tab",
|
||||
12,
|
||||
|
|
@ -140,7 +146,16 @@ namespace MatterHackers.MatterControl.CustomWidgets
|
|||
RGBA_Bytes.Transparent,
|
||||
ActiveTheme.Instance.TabLabelUnselected,
|
||||
RGBA_Bytes.Transparent,
|
||||
useUnderlineStyling: true));
|
||||
useUnderlineStyling: true);
|
||||
|
||||
tabControl.AddTab(textTab);
|
||||
|
||||
int localTabIndex = tabIndex;
|
||||
textTab.Click += (s, e) =>
|
||||
{
|
||||
setSelectedTab?.Invoke(localTabIndex);
|
||||
};
|
||||
|
||||
}
|
||||
else // control is floating
|
||||
{
|
||||
|
|
@ -177,7 +192,15 @@ namespace MatterHackers.MatterControl.CustomWidgets
|
|||
};
|
||||
settingsButton.PopupLayoutEngine = new UnpinnedLayoutEngine(settingsButton.PopupContent, widgetTodockTo, DockSide);
|
||||
topToBottom.AddChild(settingsButton);
|
||||
|
||||
int localTabIndex = tabIndex;
|
||||
settingsButton.Click += (s, e) =>
|
||||
{
|
||||
setSelectedTab?.Invoke(localTabIndex);
|
||||
};
|
||||
}
|
||||
|
||||
tabIndex++;
|
||||
}
|
||||
|
||||
if (ControlIsPinned)
|
||||
|
|
@ -187,6 +210,11 @@ namespace MatterHackers.MatterControl.CustomWidgets
|
|||
var pinButton = this.CreatePinButton();
|
||||
pinButton.Margin = new BorderDouble(right: 18, bottom: 7);
|
||||
tabControl.TabBar.AddChild(pinButton);
|
||||
|
||||
if (getSelectedTab != null)
|
||||
{
|
||||
tabControl.SelectedTabIndex = getSelectedTab.Invoke();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -119,6 +119,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
this.HAnchor = HAnchor.Fit;
|
||||
this.VAnchor = VAnchor.Fit;
|
||||
this.buttonView = buttonView;
|
||||
this.buttonView.Selectable = false;
|
||||
|
||||
this.AddChild(buttonView);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -357,9 +357,20 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
return renderType;
|
||||
}
|
||||
|
||||
int lastTabSelected = 0;
|
||||
int GetSelectedTab()
|
||||
{
|
||||
return lastTabSelected;
|
||||
}
|
||||
|
||||
void SetSelectedTab(int tabIndex)
|
||||
{
|
||||
lastTabSelected = tabIndex;
|
||||
}
|
||||
|
||||
private void AddSettingsTabBar(GuiWidget parent, GuiWidget widgetTodockTo)
|
||||
{
|
||||
var sideBar = new DockingTabControl(widgetTodockTo, DockSide.Right)
|
||||
var sideBar = new DockingTabControl(widgetTodockTo, DockSide.Right, GetSelectedTab, SetSelectedTab)
|
||||
{
|
||||
ControlIsPinned = ApplicationController.Instance.PrintSettingsPinned
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 6327a0c89d25c7657f1061136286b80aa38e53f5
|
||||
Subproject commit b03414565921030bb924bfcc07b94ebc278b350a
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit 43be61511ee9cef07576f624ce61696b8935c72c
|
||||
Subproject commit 77ed601d5e80f4f3e10437db0d4d032f5c453399
|
||||
Loading…
Add table
Add a link
Reference in a new issue