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

Added setting to open new tabs on right instead of left

This commit is contained in:
blat-blatnik 2021-11-30 23:37:44 +01:00
parent c2ed0d4afe
commit 318cb6524d
4 changed files with 24 additions and 6 deletions

View file

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

View file

@ -5840,7 +5840,7 @@ namespace IDE
newTabButton.mWantWidth = newTabButton.GetWantWidth(); newTabButton.mWantWidth = newTabButton.GetWantWidth();
newTabButton.mHeight = tabbedView.mTabHeight; newTabButton.mHeight = tabbedView.mTabHeight;
newTabButton.mContent = disassemblyPanel; newTabButton.mContent = disassemblyPanel;
tabbedView.AddTab(newTabButton); tabbedView.AddTab(newTabButton, GetTabInsertIndex(tabbedView));
newTabButton.mCloseClickedEvent.Add(new () => CloseDocument(disassemblyPanel)); newTabButton.mCloseClickedEvent.Add(new () => CloseDocument(disassemblyPanel));
newTabButton.Activate(); newTabButton.Activate();
@ -5850,6 +5850,14 @@ namespace IDE
return disassemblyPanel; return disassemblyPanel;
} }
int GetTabInsertIndex(TabbedView tabs)
{
if (mSettings.mUISettings.mInsertNewTabs == .RightOfExistingTabs)
return tabs.mTabs.Count;
else
return 0;
}
public class SourceViewTab : DarkTabbedView.DarkTabButton public class SourceViewTab : DarkTabbedView.DarkTabButton
{ {
public float GetWantWidth() public float GetWantWidth()
@ -6021,7 +6029,7 @@ namespace IDE
tabButton.mIsRightTab = false; tabButton.mIsRightTab = false;
var darkTabbedView = (DarkTabbedView)tabButton.mTabbedView; var darkTabbedView = (DarkTabbedView)tabButton.mTabbedView;
darkTabbedView.SetRightTab(null, false); darkTabbedView.SetRightTab(null, false);
darkTabbedView.AddTab(tabButton); darkTabbedView.AddTab(tabButton, GetTabInsertIndex(darkTabbedView));
tabButton.Activate(); tabButton.Activate();
} }
@ -6397,7 +6405,7 @@ namespace IDE
tabbedView.SetRightTab(newTabButton); tabbedView.SetRightTab(newTabButton);
} }
else else
tabbedView.AddTab(newTabButton); tabbedView.AddTab(newTabButton, GetTabInsertIndex(tabbedView));
newTabButton.mCloseClickedEvent.Add(new () => DocumentCloseClicked(sourceViewPanel)); newTabButton.mCloseClickedEvent.Add(new () => DocumentCloseClicked(sourceViewPanel));
newTabButton.Activate(setFocus); newTabButton.Activate(setFocus);
if ((setFocus) && (sourceViewPanel.mWidgetWindow != null)) if ((setFocus) && (sourceViewPanel.mWidgetWindow != null))

View file

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

View file

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