1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 12:32:20 +02:00

Merge pull request #1252 from blat-blatnik/OpenTabsOnRight

[IDE] Added setting to open new tabs on right instead of left
This commit is contained in:
Brian Fiete 2021-12-06 09:39:49 -08:00 committed by GitHub
commit 9f57be150e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 29 additions and 10 deletions

View file

@ -398,12 +398,12 @@ namespace Beefy.theme.dark
func(mRightTab);
}
public override TabButton AddTab(String label, float width, Widget content, bool ownsContent)
public override TabButton AddTab(String label, float width, Widget content, bool ownsContent, int insertIdx)
{
float useWidth = width;
if (useWidth == 0)
useWidth = DarkTheme.sDarkTheme.mSmallFont.GetWidth(label) + GS!(30);
return base.AddTab(label, useWidth, content, ownsContent);
return base.AddTab(label, useWidth, content, ownsContent, insertIdx);
}
public override void RemoveTab(TabButton tabButton, bool deleteTab = true)

View file

@ -320,7 +320,7 @@ namespace Beefy.widgets
//tabbedView.mSharedData.mOpenNewWindowDelegate = mTabbedView.mSharedData.mOpenNewWindowDelegate;
tabbedView.SetRequestedSize(mTabbedView.mWidth, mTabbedView.mHeight);
mTabbedView.RemoveTab(this, false);
tabbedView.AddTab(this);
tabbedView.AddTab(this, 0);
float rootX;
float rootY;
@ -472,7 +472,7 @@ namespace Beefy.widgets
return activeTab;
}
public virtual TabButton AddTab(String label, float width, Widget content, bool ownsContent)
public virtual TabButton AddTab(String label, float width, Widget content, bool ownsContent, int insertIdx)
{
TabButton aTabButton = CreateTabButton();
aTabButton.mTabbedView = this;
@ -481,7 +481,7 @@ namespace Beefy.widgets
aTabButton.mWantWidth = width;
aTabButton.mHeight = mTabHeight;
aTabButton.mContent = content;
AddTab(aTabButton);
AddTab(aTabButton, insertIdx);
return aTabButton;
}
@ -501,7 +501,7 @@ namespace Beefy.widgets
return bestIdx;
}
public virtual void AddTab(TabButton tabButton, int insertIdx = 0)
public virtual void AddTab(TabButton tabButton, int insertIdx)
{
AddWidget(tabButton);
mTabs.Insert(insertIdx, tabButton);

View file

@ -5807,7 +5807,7 @@ namespace IDE
TabbedView.TabButton SetupTab(TabbedView tabView, String name, float width, Widget content, bool ownsContent) // 2
{
TabbedView.TabButton tabButton = tabView.AddTab(name, width, content, ownsContent);
TabbedView.TabButton tabButton = tabView.AddTab(name, width, content, ownsContent, GetTabInsertIndex(tabView));
if ((var panel = content as Panel) && (var darkTabButton = tabButton as DarkTabbedView.DarkTabButton))
{
darkTabButton.mTabWidthOffset = panel.TabWidthOffset;
@ -5840,7 +5840,7 @@ namespace IDE
newTabButton.mWantWidth = newTabButton.GetWantWidth();
newTabButton.mHeight = tabbedView.mTabHeight;
newTabButton.mContent = disassemblyPanel;
tabbedView.AddTab(newTabButton);
tabbedView.AddTab(newTabButton, GetTabInsertIndex(tabbedView));
newTabButton.mCloseClickedEvent.Add(new () => CloseDocument(disassemblyPanel));
newTabButton.Activate();
@ -5850,6 +5850,14 @@ namespace IDE
return disassemblyPanel;
}
int GetTabInsertIndex(TabbedView tabs)
{
if (mSettings.mUISettings.mInsertNewTabs == .RightOfExistingTabs)
return tabs.mTabs.Count;
else
return 0;
}
public class SourceViewTab : DarkTabbedView.DarkTabButton
{
public float GetWantWidth()
@ -6021,7 +6029,7 @@ namespace IDE
tabButton.mIsRightTab = false;
var darkTabbedView = (DarkTabbedView)tabButton.mTabbedView;
darkTabbedView.SetRightTab(null, false);
darkTabbedView.AddTab(tabButton);
darkTabbedView.AddTab(tabButton, GetTabInsertIndex(darkTabbedView));
tabButton.Activate();
}
@ -6397,7 +6405,7 @@ namespace IDE
tabbedView.SetRightTab(newTabButton);
}
else
tabbedView.AddTab(newTabButton);
tabbedView.AddTab(newTabButton, GetTabInsertIndex(tabbedView));
newTabButton.mCloseClickedEvent.Add(new () => DocumentCloseClicked(sourceViewPanel));
newTabButton.Activate(setFocus);
if ((setFocus) && (sourceViewPanel.mWidgetWindow != null))

View file

@ -416,8 +416,15 @@ namespace IDE
public class UISettings
{
public enum InsertNewTabsKind
{
LeftOfExistingTabs,
RightOfExistingTabs,
}
public Colors mColors = new .() ~ delete _;
public float mScale = 100;
public InsertNewTabsKind mInsertNewTabs = .LeftOfExistingTabs;
public List<String> mTheme = new .() ~ DeleteContainerAndItems!(_);
public void SetDefaults()
@ -425,6 +432,7 @@ namespace IDE
DeleteAndNullify!(mColors);
mColors = new .();
mScale = 100;
mInsertNewTabs = .LeftOfExistingTabs;
ClearAndDeleteItems(mTheme);
}
@ -557,6 +565,7 @@ namespace IDE
for (let str in mTheme)
sd.Add(str);
}
sd.Add("InsertNewTabs", mInsertNewTabs);
}
public void Deserialize(StructuredData sd)
@ -569,6 +578,7 @@ namespace IDE
sd.GetCurString(str);
mTheme.Add(str);
}
sd.Get("InsertNewTabs", ref mInsertNewTabs);
}
}

View file

@ -78,6 +78,7 @@ namespace IDE.ui
AddPropertiesItem(category, "Scale", "mScale");
AddPropertiesItem(category, "Theme", "mTheme");
AddPropertiesItem(category, "Insert New Tabs", "mInsertNewTabs");
category.Open(true, true);
}