#include <hxcpp.h>

#ifndef INCLUDED_snow_platform_native_input_sdl_ControllerEventType
#include <snow/platform/native/input/sdl/ControllerEventType.h>
#endif
namespace snow{
namespace platform{
namespace native{
namespace input{
namespace sdl{

::snow::platform::native::input::sdl::ControllerEventType ControllerEventType_obj::added;

::snow::platform::native::input::sdl::ControllerEventType ControllerEventType_obj::axis;

::snow::platform::native::input::sdl::ControllerEventType ControllerEventType_obj::button_down;

::snow::platform::native::input::sdl::ControllerEventType ControllerEventType_obj::button_up;

::snow::platform::native::input::sdl::ControllerEventType ControllerEventType_obj::remapped;

::snow::platform::native::input::sdl::ControllerEventType ControllerEventType_obj::removed;

::snow::platform::native::input::sdl::ControllerEventType ControllerEventType_obj::unknown;

HX_DEFINE_CREATE_ENUM(ControllerEventType_obj)

int ControllerEventType_obj::__FindIndex(::String inName)
{
	if (inName==HX_CSTRING("added")) return 4;
	if (inName==HX_CSTRING("axis")) return 3;
	if (inName==HX_CSTRING("button_down")) return 2;
	if (inName==HX_CSTRING("button_up")) return 1;
	if (inName==HX_CSTRING("remapped")) return 6;
	if (inName==HX_CSTRING("removed")) return 5;
	if (inName==HX_CSTRING("unknown")) return 0;
	return super::__FindIndex(inName);
}

int ControllerEventType_obj::__FindArgCount(::String inName)
{
	if (inName==HX_CSTRING("added")) return 0;
	if (inName==HX_CSTRING("axis")) return 0;
	if (inName==HX_CSTRING("button_down")) return 0;
	if (inName==HX_CSTRING("button_up")) return 0;
	if (inName==HX_CSTRING("remapped")) return 0;
	if (inName==HX_CSTRING("removed")) return 0;
	if (inName==HX_CSTRING("unknown")) return 0;
	return super::__FindArgCount(inName);
}

Dynamic ControllerEventType_obj::__Field(const ::String &inName,bool inCallProp)
{
	if (inName==HX_CSTRING("added")) return added;
	if (inName==HX_CSTRING("axis")) return axis;
	if (inName==HX_CSTRING("button_down")) return button_down;
	if (inName==HX_CSTRING("button_up")) return button_up;
	if (inName==HX_CSTRING("remapped")) return remapped;
	if (inName==HX_CSTRING("removed")) return removed;
	if (inName==HX_CSTRING("unknown")) return unknown;
	return super::__Field(inName,inCallProp);
}

static ::String sStaticFields[] = {
	HX_CSTRING("unknown"),
	HX_CSTRING("button_up"),
	HX_CSTRING("button_down"),
	HX_CSTRING("axis"),
	HX_CSTRING("added"),
	HX_CSTRING("removed"),
	HX_CSTRING("remapped"),
	::String(null()) };

static void sMarkStatics(HX_MARK_PARAMS) {
	HX_MARK_MEMBER_NAME(ControllerEventType_obj::added,"added");
	HX_MARK_MEMBER_NAME(ControllerEventType_obj::axis,"axis");
	HX_MARK_MEMBER_NAME(ControllerEventType_obj::button_down,"button_down");
	HX_MARK_MEMBER_NAME(ControllerEventType_obj::button_up,"button_up");
	HX_MARK_MEMBER_NAME(ControllerEventType_obj::remapped,"remapped");
	HX_MARK_MEMBER_NAME(ControllerEventType_obj::removed,"removed");
	HX_MARK_MEMBER_NAME(ControllerEventType_obj::unknown,"unknown");
};

#ifdef HXCPP_VISIT_ALLOCS
static void sVisitStatic(HX_VISIT_PARAMS) {
	HX_VISIT_MEMBER_NAME(ControllerEventType_obj::__mClass,"__mClass");
	HX_VISIT_MEMBER_NAME(ControllerEventType_obj::added,"added");
	HX_VISIT_MEMBER_NAME(ControllerEventType_obj::axis,"axis");
	HX_VISIT_MEMBER_NAME(ControllerEventType_obj::button_down,"button_down");
	HX_VISIT_MEMBER_NAME(ControllerEventType_obj::button_up,"button_up");
	HX_VISIT_MEMBER_NAME(ControllerEventType_obj::remapped,"remapped");
	HX_VISIT_MEMBER_NAME(ControllerEventType_obj::removed,"removed");
	HX_VISIT_MEMBER_NAME(ControllerEventType_obj::unknown,"unknown");
};
#endif

static ::String sMemberFields[] = { ::String(null()) };
Class ControllerEventType_obj::__mClass;

Dynamic __Create_ControllerEventType_obj() { return new ControllerEventType_obj; }

void ControllerEventType_obj::__register()
{

hx::Static(__mClass) = hx::RegisterClass(HX_CSTRING("snow.platform.native.input.sdl.ControllerEventType"), hx::TCanCast< ControllerEventType_obj >,sStaticFields,sMemberFields,
	&__Create_ControllerEventType_obj, &__Create,
	&super::__SGetClass(), &CreateControllerEventType_obj, sMarkStatics
#ifdef HXCPP_VISIT_ALLOCS
    , sVisitStatic
#endif
#ifdef HXCPP_SCRIPTABLE
    , 0
#endif
);
}

void ControllerEventType_obj::__boot()
{
hx::Static(added) = hx::CreateEnum< ControllerEventType_obj >(HX_CSTRING("added"),4);
hx::Static(axis) = hx::CreateEnum< ControllerEventType_obj >(HX_CSTRING("axis"),3);
hx::Static(button_down) = hx::CreateEnum< ControllerEventType_obj >(HX_CSTRING("button_down"),2);
hx::Static(button_up) = hx::CreateEnum< ControllerEventType_obj >(HX_CSTRING("button_up"),1);
hx::Static(remapped) = hx::CreateEnum< ControllerEventType_obj >(HX_CSTRING("remapped"),6);
hx::Static(removed) = hx::CreateEnum< ControllerEventType_obj >(HX_CSTRING("removed"),5);
hx::Static(unknown) = hx::CreateEnum< ControllerEventType_obj >(HX_CSTRING("unknown"),0);
}


} // end namespace snow
} // end namespace platform
} // end namespace native
} // end namespace input
} // end namespace sdl
