// 7 may 2015
#include "test.h"

static uiBox *makeSet(int omit, int hidden, int stretch)
{
	uiBox *hbox;
	uiButton *buttons[4];

	// don't use newHorizontalBox()
	// the point of this test is to test hidden controls and padded
	hbox = (*newhbox)();
	uiBoxSetPadded(hbox, 1);
	if (omit != 0) {
		buttons[0] = uiNewButton("First");
		uiBoxAppend(hbox, uiControl(buttons[0]), stretch);
	}
	if (omit != 1) {
		buttons[1] = uiNewButton("Second");
		uiBoxAppend(hbox, uiControl(buttons[1]), stretch);
	}
	if (omit != 2) {
		buttons[2] = uiNewButton("Third");
		uiBoxAppend(hbox, uiControl(buttons[2]), stretch);
	}
	if (omit != 3) {
		buttons[3] = uiNewButton("Fourth");
		uiBoxAppend(hbox, uiControl(buttons[3]), stretch);
	}
	if (hidden != -1)
		uiControlHide(uiControl(buttons[hidden]));
	return hbox;
}

uiBox *makePage3(void)
{
	uiBox *page3;
	uiBox *hbox;
	uiBox *hbox2;
	uiBox *vbox;
	int hidden;

	page3 = newVerticalBox();

	// first the non-stretchy type
	for (hidden = 0; hidden < 4; hidden++) {
		// these two must stay unpadded as well, otherwise the test isn't meaningful
		hbox2 = (*newhbox)();
		vbox = (*newvbox)();
		// reference set
		hbox = makeSet(hidden, -1, 0);
		uiBoxAppend(vbox, uiControl(hbox), 0);
		// real thing
		hbox = makeSet(-1, hidden, 0);
		uiBoxAppend(vbox, uiControl(hbox), 0);
		// pack vbox in
		uiBoxAppend(hbox2, uiControl(vbox), 0);
		// and have a button in there for showing right margins
		uiBoxAppend(hbox2, uiControl(uiNewButton("Right Margin Test")), 1);
		uiBoxAppend(page3, uiControl(hbox2), 0);
	}

	// then the stretchy type
	for (hidden = 0; hidden < 4; hidden++) {
		hbox = makeSet(-1, hidden, 1);
		uiBoxAppend(page3, uiControl(hbox), 0);
	}

	return page3;
}