public IGUIElement (GUIEnvironment guienv, GUIElement parent, int id, 
		                    Rect rect)
		{
			antigc1 = OnCallbackVoid;
			antigc2 = OnCallbackInt;
			antigc3 = OnCallbackIntptr;

			Initialize (CGE_CREATE(guienv.Raw, 
			                       parent == null? guienv.RootElement.Raw : parent.Raw, 
			                       id, 
			                       rect.ToUnmanaged(), 
			                       antigc1,
			                       antigc2,
			                       antigc3));
			
		}
		static extern IntPtr CGE_CREATE(IntPtr guienv, IntPtr parent, int id, int[] rect, CGE_CALLBACK_VOID _void, CGE_CALLBACK_INT _int, CGE_CALLBACK_INTPTR _intptr);