private void OnCallbackVoid(CGE_VOID_METHOD method, IntPtr arg1, int arg2, uint arg3, int[] arg4)
		{
			switch (method)
			{
			case CGE_VOID_METHOD.ADD_CHILD:
				AddChild((GUIElement)NativeElement.GetObject(arg1, typeof(GUIElement)));
				break;
			case CGE_VOID_METHOD.DRAW:
				Draw ();
				break;
			case CGE_VOID_METHOD.MOVE:
				Move (Position2D.FromUnmanaged(arg4));
				break;
			case CGE_VOID_METHOD.ON_POST_RENDER:
				OnPostRender(arg3);
				break;
			case CGE_VOID_METHOD.REMOVE_CHILD:
				RemoveChild((GUIElement)NativeElement.GetObject(arg1, typeof(GUIElement)));
				break;
			case CGE_VOID_METHOD.SET_ENABLED:
				Enabled = arg2 == 0? false : true;
				break;
			case CGE_VOID_METHOD.SET_ALIGNMENT:
				SetAlignment((Alignment)arg4[0],
				             (Alignment)arg4[1],
				             (Alignment)arg4[2],
				             (Alignment)arg4[3]);
				break;
			case CGE_VOID_METHOD.SET_ID:
				ID = arg2;
				break;
				
			case CGE_VOID_METHOD.SET_MAX_SIZE:
				SetMaxSize(Dimension2D.FromUnmanaged(arg4));
				break;
				
			case CGE_VOID_METHOD.SET_MIN_SIZE:
				SetMinSize(Dimension2D.FromUnmanaged(arg4));
				break;
				
			case CGE_VOID_METHOD.SET_NOT_CLIPPED:
				Noclip = arg2 == 0? false : true;
				break;
			case CGE_VOID_METHOD.UPDATE_ABSOLUTE_POSITION:
				UpdateAbsolutePosition();
				break;
				
			case CGE_VOID_METHOD.SET_TEXT:
				Text = IrrStringMarshal.IntPtrToString(arg1);
				break;
				
			}
		}
		static extern void CGE_PVOID_METHODS(IntPtr cge, CGE_VOID_METHOD method, IntPtr arg1, int arg2, uint arg3, int[] arg4);