1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-15 14:54:09 +02:00

Support for empty parent, for | to separate columns

This commit is contained in:
Brian Fiete 2019-09-27 13:01:54 -07:00
parent 3552837b4f
commit be3c968e2b
2 changed files with 40 additions and 9 deletions

View file

@ -29,20 +29,29 @@ namespace Beefy.theme.dark
let darkMenuWidget = (DarkMenuWidget)mMenuWidget; let darkMenuWidget = (DarkMenuWidget)mMenuWidget;
g.SetFont(mMenuItem.mBold ? darkMenuWidget.mBoldFont : darkMenuWidget.mFont); g.SetFont(mMenuItem.mBold ? darkMenuWidget.mBoldFont : darkMenuWidget.mFont);
if (mMenuItem.mDisabled) using (g.PushColor(mMenuItem.mDisabled ? 0xFFA8A8A8 : 0xFFFFFFFF))
{ {
using (g.PushColor(0xFFA8A8A8)) StringView leftStr = mMenuItem.mLabel;
g.DrawString(mMenuItem.mLabel, GS!(36), 0); StringView rightStr = default;
int barIdx = leftStr.IndexOf('|');
if (barIdx != -1)
{
rightStr = .(leftStr, barIdx + 1);
leftStr.RemoveToEnd(barIdx);
}
g.DrawString(leftStr, GS!(36), 0);
if (!rightStr.IsEmpty)
g.DrawString(rightStr, mWidth - GS!(8), 0, .Right);
} }
else
g.DrawString(mMenuItem.mLabel, GS!(36), 0);
if (mMenuItem.mIconImage != null) if (mMenuItem.mIconImage != null)
g.Draw(mMenuItem.mIconImage, GS!(4), 0); g.Draw(mMenuItem.mIconImage, GS!(4), 0);
} }
if (mMenuItem.mItems.Count > 0) if (mMenuItem.IsParent)
{ {
using (g.PushColor(mMenuItem.mDisabled ? 0xFFA8A8A8 : 0xFFFFFFFF))
g.Draw(DarkTheme.sDarkTheme.GetImage(DarkTheme.ImageIdx.RightArrow), mWidth - GS!(16), 0); g.Draw(DarkTheme.sDarkTheme.GetImage(DarkTheme.ImageIdx.RightArrow), mWidth - GS!(16), 0);
} }
} }

View file

@ -551,12 +551,34 @@ namespace Beefy.widgets
public bool mDisabled; public bool mDisabled;
public bool mBold; public bool mBold;
public IDrawable mIconImage; public IDrawable mIconImage;
public bool mForceParent;
public ~this() public ~this()
{ {
} }
public bool IsEmpty
{
get
{
return mItems.IsEmpty;
}
}
public bool IsParent
{
get
{
return !mItems.IsEmpty || mForceParent;
}
set
{
mForceParent = value;
}
}
public virtual Menu AddItem(StringView label = default) public virtual Menu AddItem(StringView label = default)
{ {
Menu item = new Menu(); Menu item = new Menu();