@@ -9,12 +9,15 @@ template <typename T>
99static void handleType () {
1010 new EventListener<EventFilter<devtools::PropertyFnEvent<T>>>(+[](devtools::PropertyFnEvent<T>* event) {
1111 constexpr bool isSigned = std::is_signed_v<T>;
12- constexpr ImGuiDataType dataType = sizeof (T) == 1 ? (isSigned ? ImGuiDataType_S8 : ImGuiDataType_U8) :
13- sizeof (T) == 2 ? (isSigned ? ImGuiDataType_S16 : ImGuiDataType_U16) :
14- sizeof (T) == 4 ? (isSigned ? ImGuiDataType_S32 : ImGuiDataType_U32) :
15- isSigned ? ImGuiDataType_S64 : ImGuiDataType_U64;
12+ constexpr ImGuiDataType dataType =
13+ std::is_same_v<T, float > ? ImGuiDataType_Float :
14+ std::is_same_v<T, double > ? ImGuiDataType_Double :
15+ sizeof (T) == 1 ? (isSigned ? ImGuiDataType_S8 : ImGuiDataType_U8) :
16+ sizeof (T) == 2 ? (isSigned ? ImGuiDataType_S16 : ImGuiDataType_U16) :
17+ sizeof (T) == 4 ? (isSigned ? ImGuiDataType_S32 : ImGuiDataType_U32) :
18+ isSigned ? ImGuiDataType_S64 : ImGuiDataType_U64;
1619 event->fn = +[](const char * name, T& prop) {
17- return ImGui::InputScalar (name, dataType, &prop);
20+ return ImGui::DragScalar (name, dataType, &prop);
1821 };
1922 return ListenerResult::Stop;
2023 });
@@ -57,6 +60,8 @@ static void handleType() {
5760 handleType<unsigned long long >();
5861 handleType<long >();
5962 handleType<unsigned long >();
63+ handleType<float >();
64+ handleType<double >();
6065
6166 // checkbox
6267 new EventListener<EventFilter<devtools::PropertyFnEvent<bool >>>(+[](devtools::PropertyFnEvent<bool >* event) {
@@ -66,20 +71,6 @@ static void handleType() {
6671 return ListenerResult::Stop;
6772 });
6873
69- // float and double
70- new EventListener<EventFilter<devtools::PropertyFnEvent<float >>>(+[](devtools::PropertyFnEvent<float >* event) {
71- event->fn = +[](const char * name, float & prop) {
72- return ImGui::InputFloat (name, &prop);
73- };
74- return ListenerResult::Stop;
75- });
76- new EventListener<EventFilter<devtools::PropertyFnEvent<double >>>(+[](devtools::PropertyFnEvent<double >* event) {
77- event->fn = +[](const char * name, double & prop) {
78- return ImGui::InputDouble (name, &prop);
79- };
80- return ListenerResult::Stop;
81- });
82-
8374 // string
8475 new EventListener<EventFilter<devtools::PropertyFnEvent<std::string>>>(+[](devtools::PropertyFnEvent<std::string>* event) {
8576 event->fn = +[](const char * name, std::string& prop) {
@@ -136,20 +127,20 @@ static void handleType() {
136127 // points/sizes
137128 new EventListener<EventFilter<devtools::PropertyFnEvent<CCPoint>>>(+[](devtools::PropertyFnEvent<CCPoint>* event) {
138129 event->fn = +[](const char * name, CCPoint& prop) {
139- return ImGui::InputFloat2 (name, reinterpret_cast <float *>(&prop));
130+ return ImGui::DragFloat2 (name, reinterpret_cast <float *>(&prop));
140131 };
141132 return ListenerResult::Stop;
142133 });
143134
144135 new EventListener<EventFilter<devtools::PropertyFnEvent<CCSize>>>(+[](devtools::PropertyFnEvent<CCSize>* event) {
145136 event->fn = +[](const char * name, CCSize& prop) {
146- return ImGui::InputFloat2 (name, reinterpret_cast <float *>(&prop));
137+ return ImGui::DragFloat2 (name, reinterpret_cast <float *>(&prop));
147138 };
148139 return ListenerResult::Stop;
149140 });
150141 new EventListener<EventFilter<devtools::PropertyFnEvent<CCRect>>>(+[](devtools::PropertyFnEvent<CCRect>* event) {
151142 event->fn = +[](const char * name, CCRect& prop) {
152- return ImGui::InputFloat4 (name, reinterpret_cast <float *>(&prop));
143+ return ImGui::DragFloat4 (name, reinterpret_cast <float *>(&prop));
153144 };
154145 return ListenerResult::Stop;
155146 });
0 commit comments