private void DrawFooterControls(Rect position, IReorderableListAdaptor adaptor)
{
if (HasFooterButtons) {
Rect buttonPosition = new Rect(position.xMax - 30, position.yMax - 1, 30, FooterButtonStyle.fixedHeight);
Rect menuButtonPosition = buttonPosition;
var menuIconNormal = ReorderableListResources.GetTexture(ReorderableListTexture.Icon_AddMenu_Normal);
var menuIconActive = ReorderableListResources.GetTexture(ReorderableListTexture.Icon_AddMenu_Active);
if (HasAddButton) {
// Draw add menu drop-down button.
if (HasAddMenuButton) {
menuButtonPosition.x = buttonPosition.xMax - 14;
menuButtonPosition.xMax = buttonPosition.xMax;
menuIconNormal = ReorderableListResources.GetTexture(ReorderableListTexture.Icon_Menu_Normal);
menuIconActive = ReorderableListResources.GetTexture(ReorderableListTexture.Icon_Menu_Active);
buttonPosition.width -= 5;
buttonPosition.x = menuButtonPosition.x - buttonPosition.width + 1;
}
// Draw add item button.
var iconNormal = ReorderableListResources.GetTexture(ReorderableListTexture.Icon_Add_Normal);
var iconActive = ReorderableListResources.GetTexture(ReorderableListTexture.Icon_Add_Active);
if (GUIHelper.IconButton(buttonPosition, true, iconNormal, iconActive, FooterButtonStyle)) {
// Append item to list.
GUIUtility.keyboardControl = 0;
AddItem(adaptor);
}
}
if (HasAddMenuButton) {
// Draw add menu drop-down button.
if (GUIHelper.IconButton(menuButtonPosition, true, menuIconNormal, menuIconActive, FooterButtonStyle)) {
GUIUtility.keyboardControl = 0;
Rect totalAddButtonPosition = buttonPosition;
totalAddButtonPosition.xMax = position.xMax;
OnAddMenuClicked(new AddMenuClickedEventArgs(adaptor, totalAddButtonPosition));
// This will be helpful in many circumstances; including by default!
GUIUtility.ExitGUI();
}
}
}
}