vbox(margin = '10 10 0 0' clip = '0') ::
{
	vbox(id = 'oedit_basic' clip = '0') ::
	{
		//----------------
		// Tool
		//----------------
		switch(class = 'panel')(def='h2' selected = '1' text = 'Tool' size = '28')
		vbox ::
		{
			hbox(size = '28' next = '1') ::
			{
				button(onClick = 'onew' text = 'New')(flex = '1' next = '1' corner = '5')(hint = 'New Object [CTRL+N]')
				button(onClick = 'odel' text = 'Delete')(flex = '1' corner = '10')(hint = 'Delete Objects [Backspace/Delete]')
			}
		}
		
		//----------------
		// Select
		//----------------
		switch(class = 'panel')(def='h2' selected = '1' text = 'Select' size = '28')
		vbox ::
		{
			hbox(size = '28' next = '1') ::
			{
				button(onClick = 'osel_all' text = 'Select All*')(flex = '1' next = '1' corner = '4')(hint = 'Select All [CTRL+A]')
				button(onClick = 'osel_inv' text = 'Inverse*')(flex = '1' corner = '8')(hint = 'Select Inverse [CTRL+I]')
			}

			hbox(size = '28' next = '2') ::
			{
				button(onClick = 'osel_none' text = 'None')(flex = '1')(hint = 'Select None [CTRL+D]')
			}

			hbox(size = '28' next = '1') ::
			{
				button(onClick = 'ocopy'   text = 'Copy')(flex = '1' next = '1')(hint = 'Copy Objects [CTRL+C]')
				button(onClick = 'ocut'    text = 'Cut' )(flex = '1')(hint = 'Cut Objects as Reference [CTRL+X]')
			}
	
			hbox(size = '28' next = '2') ::
			{
				button(onClick = 'ocopy ref' text = 'Ref' )(flex = '1' next = '1')(hint = 'Copy Objects as Reference [CTRL+SHIFT+C]')
				button(id = 'r2d'  onClick = 'oref2obj 0'  text = 'Ref-D' )(flex = '1')(hint = 'Convert Reference to Duplicate [CTRL+T]')
			}		

			hbox(size = '28') ::
			{
				button(onClick = 'opaste' text = 'Paste')(flex = '1' corner = '3')(hint = 'Paste Objects [CTRL+V]')
			}		
		}

		//----------------
		// Boolean Tool
		//----------------
		switch(class = 'panel')(def='h2' selected = '0' text = 'Boolean' size = '28')
		vbox(next = '8') ::
		{
			hbox(size = '28' next = '1') ::
			{
				button(onClick = 'ounion' text = 'Union')(corner = '4' flex = '1' next = '1')(hint = 'Union of Objects [U]')
				button(onClick = 'ointer' text = 'Intersection')(corner = '8' flex = '1')(hint = 'Intersection of Objects')
			}
			hbox(size = '28' next = '1') ::
			{
				button(onClick = 'osub'	  text = 'Subtract')(flex = '1' next = '1')(hint = 'Subtraction of Objects')
				button(onClick = 'orep'	  text = 'Replace')(flex = '1')(hint = 'Replacement of Objects')
			}
			hbox(size = '28') ::
			{
				button(onClick = 'ooper' text = 'Operand')(flex = '1' corner = '3')(hint = 'Select Operand Objects for Subtraction/Replacement')
			}
		}
	}

	sp(id = 'oedit_sep0')(def = 'bar-h' size = '3' prev = '4' next = '4')
	
	vbox(id = 'oedit_tran' clip = '0') ::
	{
		//----------------
		// Rot
		//----------------
		hbox(clip = '0' size = '28') ::
		{
			switch(class = 'panel')(def='h2' selected = '0' path = '1 1' text = 'Rotate 90' flex = '1')
			button(def = 'bn-ic' text = '^38' textFont = 'icon' onClick = 'oreset' textSize = '14 14' delayed = '0')(size = '22' margin = '0 0 4 4' radius = '2')(hint = 'Reset Rotation')
		}
		hbox(size = '28')(hint = 'Rotate Objects 90 Degrees [-/+]') ::
		{
			button(onClick = 'orot x 1' text = 'X' flex = '1' next = '1')(corner = '5')
			button(onClick = 'orot y 1' text = 'Y' flex = '1' next = '1')
			button(onClick = 'orot z 1' text = 'Z' flex = '1')(corner = '10')
		}

		//----------------
		// Flip
		//----------------
		hbox(clip = '0' size = '28') ::
		{
			switch(class = 'panel')(def='h2' selected = '0' path = '1 1' text = 'Flip' flex = '1')
		//	button(def = 'bn-ic' text = '^38' textFont = 'icon' onClick = 'oreset' textSize = '14 14')(size = '22' margin = '0 0 4 4' radius = '2')(hint = 'Reset')
		}
		hbox(size = '28')(hint = 'Flip Objects') ::
		{
			button(onClick = 'oflip x' text = 'X' flex = '1' next = '1')(corner = '5')
			button(onClick = 'oflip y' text = 'Y' flex = '1' next = '1')
			button(onClick = 'oflip z' text = 'Z' flex = '1')(corner = '10')
		}

		//----------------
		// Move
		//----------------
		hbox(clip = '0' size = '28') ::
		{
			switch(class = 'panel')(def='h2' selected = '0' path = '1 1' text = 'Move' flex = '1')
			button(def = 'bn-ic' text = '^96' textFont = 'icon' onClick = 'omove g' textSize = '15 15' delayed = '0')(size = '22' margin = '0 0 4 4' radius = '2')(hint = 'Move Objects to Ground [G]')
		}
		vbox(hint = 'Move Objects [Arrow/Page]') ::
		{
			hbox(size = '28' next = '1') ::
			{
				button(onClick = 'omove x +1' text = '+X' repeated = '1')(corner = '4')(flex = '1' next = '1')
				button(onClick = 'omove y +1' text = '+Y' repeated = '1')(flex = '1' next = '1')
				button(onClick = 'omove z +1' text = '+Z' repeated = '1')(corner = '8')(flex = '1')
			}

			hbox(size = '28' next = '2') ::
			{
				button(onClick = 'omove x -1' text = '-X' repeated = '1')(corner = '1')(flex = '1' next = '1')
				button(onClick = 'omove y -1' text = '-Y' repeated = '1')(flex = '1' next = '1')
				button(onClick = 'omove z -1' text = '-Z' repeated = '1')(corner = '2')(flex = '1')
			}
		}

		//----------------
		// Align
		//----------------
		switch(class = 'panel')(def='h2' selected = '0' text = 'Align' size = '28')
		vbox(next = '8') ::
		{
			hbox(size = '28' next = '1')(hint = 'Align Objects to Maximum') ::
			{
				button(onClick = 'oalign x +1' text = '+X' repeated = '1')(corner = '4')(flex = '1' next = '1')
				button(onClick = 'oalign y +1' text = '+Y' repeated = '1')(flex = '1' next = '1')
				button(onClick = 'oalign z +1' text = '+Z' repeated = '1')(corner = '8')(flex = '1')
			}

			hbox(size = '28' next = '1')(hint = 'Align Objects to Center') ::
			{
				button(onClick = 'oalign yz 0' text = 'cX' repeated = '1')(flex = '1' next = '1')
				button(onClick = 'oalign zx 0' text = 'cY' repeated = '1')(flex = '1' next = '1')
				button(onClick = 'oalign xy 0' text = 'cZ' repeated = '1')(flex = '1')
			}

			hbox(size = '28' )(hint = 'Align Objects to Minimum') ::
			{
				button(onClick = 'oalign x -1' text = '-X' repeated = '1')(corner = '1')(flex = '1' next = '1')
				button(onClick = 'oalign y -1' text = '-Y' repeated = '1')(flex = '1' next = '1')
				button(onClick = 'oalign z -1' text = '-Z' repeated = '1')(corner = '2')(flex = '1')
			}
		}
	}

	sp(id = 'oedit_sep1')(def = 'bar-h' size = '3' prev = '4' next = '4')
	
	vbox(id = 'oedit_obj' clip = '0') ::
	{
		//----------------
		// Hide
		//----------------
		switch(class = 'panel')(def='h2' selected = '0' text = 'Hide' size = '28')
		hbox(size = '28') ::
		{
			button(id = 'ohide' onClick = 'ohide 1' text = 'Hide' flex = '1' next = '1')(corner = '5')(hint = 'Hide Objects [CTRL+H]')
			button(id = 'oshow' onClick = 'ohide 0' text = 'Show' flex = '1')(corner = '10')(hint = 'Show Objects [CTRL+SHIFT+H]')
		}
	
		//----------------
		// Order
		//----------------
		switch(class = 'panel')(def='h2' selected = '0' text = 'Order' size = '28')
		hbox(size = '28')(hint = 'Order : Render Order') ::
		{
			button(onClick = 'order 2' text = 'Bring to First*' flex = '1' next = '1')(corner = '5')(hint = 'Bring to First')
			button(onClick = 'order -2' text = 'Bring to Last*'  flex = '1')(corner = '10')(hint = 'Bring to Last')
		}
	}
}