// <----O---->
		// 4 tex: -,+, cursor, area
		// pos: top/left corner, ~size of button, size of area, siez of cursor

		// sizes: 5 items: dec button, inc button, body, cursor (width), gap and height (common for all parts)
		public VolumeSelector(Vector2 position, UInt16[] sizes, Byte defaultVolume = 50, Byte stepsize = 10)
        {
            Position = position;
            Sizes = sizes;
            currentVolume = defaultVolume;
            StepSize = stepsize;

			// check: body = cursor * 11

			int width = sizes[(int)VSSizes.Body] + 2 * sizes[(int)VSSizes.Gap]; //+ sizes[(int)VSSizes.DecButton] + sizes[(int)VSSizes.IncButton]
			System.Diagnostics.Debug.Print(string.Format("w={0} si-body={1} incpx={2}", width, sizes[(int)VSSizes.Body], (int)position.X + sizes[(int)VSSizes.Body] + sizes[(int)VSSizes.DecButton] + sizes[(int)VSSizes.Gap]));

			// ~ two cursor sizes are missing 0-10 and 90-100 => upd 19/06/16: only 1: 100
			// issue comes from: input data (validation/adjustement needed) or size calc here (not done ~body size may be min size)
			ControlArea = new Rectangle((int)position.X + sizes[(int)VSSizes.DecButton] + sizes[(int)VSSizes.Gap], (int)position.Y, width, sizes[(int)VSSizes.Height]);
			CursorRect = new Rectangle((int)position.X + sizes[(int)VSSizes.DecButton] + sizes[(int)VSSizes.Gap] + (currentVolume / stepsize) * sizes[(int)VSSizes.Cursor], (int)position.Y, sizes[(int)VSSizes.Cursor], sizes[(int)VSSizes.Height]);
			System.Diagnostics.Debug.Print(string.Format("contArea={0}", ControlArea));

			//pos, size, ISSUE/FIXED ==> inc pos is wrong, covered by/over body tex
			// inc pos miss a gap before (TC?) (gap or gap * 2 = no change)
			DecreaseVolume = new SimpleButton(new Vector2((int)position.X, (int)position.Y), new Vector2(sizes[(int)VSSizes.DecButton], sizes[(int)VSSizes.Height]), 0.02f);
			IncreaseVolume = new SimpleButton(new Vector2((int)position.X + sizes[(int)VSSizes.Body] + sizes[(int)VSSizes.DecButton] + sizes[(int)VSSizes.Gap] * 2, (int)position.Y), new Vector2(sizes[(int)VSSizes.IncButton], sizes[(int)VSSizes.Height]), 0.02f);
		}
		protected override void Initialize()
		{
			graphics.ApplyChanges();

			
			testButton1 = new SimpleButton(new Vector2(100, 80), new Vector2(64, 64));

			cooldown1 = new Button(new Vector2(100, 180), new Vector2(64, 64), null, null, 0.4f, 5f);
			//cooldown1.Enabled
			cbtest1 = new Checkbox(new Vector2(180, 80), new Vector2(64, 64));
			//cbtest1.Enabled = false;

			//circle button: 64x64 base rec
			// 445,232 (TL corner), R=32  centre=477,264   //445, 232
			circleButton1 = new SimpleButton(new Vector2(477, 264), new Vector2(64, 64), 0.8f, CollisionType.Circle);

			//								 dec button, inc button, body, cursor (width), gap and height
			// body size = 11 * cursorsize
			UInt16[] vsSizes = new UInt16[6] { 20, 20, 110, 10, 1, 64 };
			vstest1 = new VolumeSelector(new Vector2(300, 80), vsSizes);

			tbtest = new TButton(new Vector2(180, 180), new Vector2(64, 64), null, null, 0.2f, 8);

			//Body = 0, Gap = 1, Step = 2, Width = 3, Height = 4
			spbar1 = new ProgressBar(new Vector2(100, 500), new UInt16[6] { 1, 0, 10, 5, 300, 64 }, false, 0, 10, 0.25f);

			//radio buttons
			// 830, 140
			// 830, 224
			// 830, 300


			IsMouseVisible = true;

			base.Initialize();
		}