Use new mechanism for stances / color picker
This commit is contained in:
@@ -122,15 +122,20 @@ namespace OpenRA.Mods.RA.Widgets.Delegates
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShowDropDown(Player p, Widget w)
|
void ShowDropDown(Player p, DropDownButtonWidget dropdown)
|
||||||
{
|
{
|
||||||
DropDownButtonWidget.ShowDropDown(w, Enum.GetValues(typeof(Stance)).OfType<Stance>(),
|
var stances = Enum.GetValues(typeof(Stance)).OfType<Stance>().ToList();
|
||||||
(s, width) => new LabelWidget
|
Func<Stance, ScrollItemWidget, ScrollItemWidget> setupItem = (s, template) =>
|
||||||
{
|
{
|
||||||
Bounds = new Rectangle(0, 0, width, 24),
|
var item = ScrollItemWidget.Setup(template,
|
||||||
Text = " {0}".F(s),
|
() => s == world.LocalPlayer.Stances[ p ],
|
||||||
OnMouseUp = mi => { SetStance((ButtonWidget)w, p, s); return true; },
|
() => SetStance(dropdown, p, s));
|
||||||
});
|
|
||||||
|
item.GetWidget<LabelWidget>("LABEL").GetText = () => s.ToString();
|
||||||
|
return item;
|
||||||
|
};
|
||||||
|
|
||||||
|
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 150, stances, setupItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetStance(ButtonWidget bw, Player p, Stance ss)
|
void SetStance(ButtonWidget bw, Player p, Stance ss)
|
||||||
|
|||||||
@@ -271,7 +271,7 @@ namespace OpenRA.Mods.RA.Widgets.Delegates
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ShowColorDropDown(Session.Slot s, ButtonWidget color)
|
bool ShowColorDropDown(Session.Slot s, DropDownButtonWidget color)
|
||||||
{
|
{
|
||||||
if (Map.Players[s.MapPlayer].LockColor)
|
if (Map.Players[s.MapPlayer].LockColor)
|
||||||
return false;
|
return false;
|
||||||
@@ -295,11 +295,14 @@ namespace OpenRA.Mods.RA.Widgets.Delegates
|
|||||||
rangeSlider.OnChange += _ => UpdateColorPreview(hueSlider.GetOffset(), satSlider.GetOffset(), lumSlider.GetOffset(), rangeSlider.GetOffset());
|
rangeSlider.OnChange += _ => UpdateColorPreview(hueSlider.GetOffset(), satSlider.GetOffset(), lumSlider.GetOffset(), rangeSlider.GetOffset());
|
||||||
UpdateColorPreview(hueSlider.GetOffset(), satSlider.GetOffset(), lumSlider.GetOffset(), rangeSlider.GetOffset());
|
UpdateColorPreview(hueSlider.GetOffset(), satSlider.GetOffset(), lumSlider.GetOffset(), rangeSlider.GetOffset());
|
||||||
|
|
||||||
DropDownButtonWidget.ShowDropPanel(color, colorChooser, new List<Widget>() {colorChooser.GetWidget("BUTTON_OK")}, () => {
|
colorChooser.GetWidget<ButtonWidget>("BUTTON_OK").OnClick = () =>
|
||||||
|
{
|
||||||
UpdateColorPreview(hueSlider.GetOffset(), satSlider.GetOffset(), lumSlider.GetOffset(), rangeSlider.GetOffset());
|
UpdateColorPreview(hueSlider.GetOffset(), satSlider.GetOffset(), lumSlider.GetOffset(), rangeSlider.GetOffset());
|
||||||
UpdatePlayerColor(hueSlider.GetOffset(), satSlider.GetOffset(), lumSlider.GetOffset(), rangeSlider.GetOffset());
|
UpdatePlayerColor(hueSlider.GetOffset(), satSlider.GetOffset(), lumSlider.GetOffset(), rangeSlider.GetOffset());
|
||||||
return true;
|
color.RemovePanel();
|
||||||
});
|
};
|
||||||
|
|
||||||
|
color.AttachPanel(colorChooser);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -382,7 +385,7 @@ namespace OpenRA.Mods.RA.Widgets.Delegates
|
|||||||
};
|
};
|
||||||
name.OnLoseFocus = () => name.OnEnterKey();
|
name.OnLoseFocus = () => name.OnEnterKey();
|
||||||
|
|
||||||
var color = template.GetWidget<ButtonWidget>("COLOR");
|
var color = template.GetWidget<DropDownButtonWidget>("COLOR");
|
||||||
color.OnMouseUp = _ => ShowColorDropDown(s, color);
|
color.OnMouseUp = _ => ShowColorDropDown(s, color);
|
||||||
|
|
||||||
var colorBlock = color.GetWidget<ColorBlockWidget>("COLORBLOCK");
|
var colorBlock = color.GetWidget<ColorBlockWidget>("COLORBLOCK");
|
||||||
|
|||||||
Reference in New Issue
Block a user