Make content side padding adjustable for OverlayHeader

This commit is contained in:
Andrei Zavatski
2020-07-21 20:02:22 +03:00
parent 557daadd4a
commit e96f8f1cb6
3 changed files with 57 additions and 14 deletions

View File

@ -22,6 +22,7 @@ namespace osu.Game.Overlays
protected OsuTabControl<T> TabControl;
private readonly Box controlBackground;
private readonly Container tabControlContainer;
private readonly BindableWithCurrent<T> current = new BindableWithCurrent<T>();
public Bindable<T> Current
@ -30,6 +31,16 @@ namespace osu.Game.Overlays
set => current.Current = value;
}
protected new float ContentSidePadding
{
get => base.ContentSidePadding;
set
{
base.ContentSidePadding = value;
tabControlContainer.Padding = new MarginPadding { Horizontal = value };
}
}
protected TabControlOverlayHeader()
{
HeaderInfo.Add(new Container
@ -42,11 +53,16 @@ namespace osu.Game.Overlays
{
RelativeSizeAxes = Axes.Both,
},
TabControl = CreateTabControl().With(control =>
tabControlContainer = new Container
{
control.Margin = new MarginPadding { Left = CONTENT_X_MARGIN };
control.Current = Current;
})
RelativeSizeAxes = Axes.X,
AutoSizeAxes = Axes.Y,
Padding = new MarginPadding { Horizontal = ContentSidePadding },
Child = TabControl = CreateTabControl().With(control =>
{
control.Current = Current;
})
}
}
});
}