New method for attaching panels to dropdowns. Implemented for colorpicker.

This commit is contained in:
Paul Chote
2011-05-17 17:41:08 +12:00
parent 85c519c073
commit e8d652ad63
3 changed files with 42 additions and 34 deletions

View File

@@ -59,7 +59,7 @@ namespace OpenRA.Mods.Cnc.Widgets
playerPalettePreview.Ramp = playerColor;
var colorDropdown = generalPane.GetWidget<CncDropDownButtonWidget>("COLOR_DROPDOWN");
colorDropdown.OnMouseUp = _ => ShowColorPicker(colorDropdown);
colorDropdown.OnClick = () => ShowColorPicker(colorDropdown);
colorDropdown.GetWidget<ColorBlockWidget>("COLORBLOCK").GetColor = () => playerColor.GetColor(0);
// Debug
@@ -194,11 +194,12 @@ namespace OpenRA.Mods.Cnc.Widgets
};
}
bool ShowColorPicker(Widget colorDropdown)
void ShowColorPicker(CncDropDownButtonWidget color)
{
Action<ColorRamp> onSelect = c =>
{
playerColor = c;
color.RemovePanel();
};
Action<ColorRamp> onChange = c =>
@@ -213,8 +214,7 @@ namespace OpenRA.Mods.Cnc.Widgets
{ "initialRamp", playerColor }
});
CncDropDownButtonWidget.ShowDropPanel(colorDropdown, colorChooser, new List<Widget>() { colorChooser.GetWidget("SAVE_BUTTON") }, () => true);
return true;
color.DisplayPanel(colorChooser);
}
bool ShowGroupModifierDropdown(Widget dropdown)