private DynamicDropDownMenu CreateDropDown(Direction direction)
		{
			DynamicDropDownMenu menu = new DynamicDropDownMenu("", direction);
			menu.VAnchor = VAnchor.ParentCenter;
			menu.MenuAsWideAsItems = false;
			menu.AlignToRightEdge = true;
			menu.Height = defaultButton.Height;

			return menu;
		}
		public SplitButton(Button button, DynamicDropDownMenu menu)
			: base(FlowDirection.LeftToRight, HAnchor.FitToChildren, VAnchor.FitToChildren)
		{
			defaultButton = button;
			altChoices = menu;

			defaultButton.VAnchor = VAnchor.ParentCenter;

			AddChild(defaultButton);
			AddChild(altChoices);
		}
		public SplitButton(string buttonText, Direction direction = Direction.Down)
			: base(FlowDirection.LeftToRight, HAnchor.FitToChildren, VAnchor.FitToChildren)
		{
			defaultButton = CreateDefaultButton(buttonText);
			altChoices = CreateDropDown(direction);

			defaultButton.VAnchor = VAnchor.ParentCenter;

			AddChild(defaultButton);
			AddChild(altChoices);
		}
		public DynamicDropDownMenu Generate(string label = "", TupleList<string, Func<bool>> optionList = null, Direction direction = Direction.Down)
		{
			DynamicDropDownMenu menu = new DynamicDropDownMenu(label, CreateButtonViewStates(label), direction);
			menu.VAnchor = VAnchor.ParentCenter;
			menu.HAnchor = HAnchor.FitToChildren;
			menu.MenuAsWideAsItems = false;
			menu.AlignToRightEdge = true;
			menu.NormalColor = normalFillColor;
			menu.HoverColor = hoverFillColor;
			menu.BorderColor = normalBorderColor;
			menu.BackgroundColor = menu.NormalColor;

			if (optionList != null)
			{
				foreach (Tuple<string, Func<bool>> option in optionList)
				{
					menu.addItem(option.Item1, option.Item2);
				}
			}

			return menu;
		}