@@ -1165,7 +1165,7 @@ void InputEditorWindow::DrawGyroSection(uint8_t port) {
1165
1165
}
1166
1166
}
1167
1167
1168
- void InputEditorWindow::DrawDeviceNameButtons ( ) {
1168
+ void InputEditorWindow::DrawDeviceToggles ( uint8_t portIndex ) {
1169
1169
ImGui::PushItemFlag (ImGuiItemFlags_Disabled, true );
1170
1170
1171
1171
auto keyboardButtonColor = ImGui::GetStyleColorVec4 (ImGuiCol_Button);
@@ -1186,17 +1186,31 @@ void InputEditorWindow::DrawDeviceNameButtons() {
1186
1186
ImGui::PopStyleColor ();
1187
1187
ImGui::PopStyleColor ();
1188
1188
1189
- for (const auto & [instanceId, name] :
1190
- Context::GetInstance ()->GetControlDeck ()->GetConnectedPhysicalDeviceManager ()->GetConnectedSDLGamepadNames ()) {
1189
+ ImGui::PopItemFlag ();
1190
+
1191
+ auto connectedDeviceManager = Ship::Context::GetInstance ()->GetControlDeck ()->GetConnectedPhysicalDeviceManager ();
1192
+ for (const auto & [instanceId, name] : connectedDeviceManager->GetConnectedSDLGamepadNames ()) {
1193
+ ImGui::PushItemFlag (ImGuiItemFlags_Disabled, true );
1191
1194
auto buttonColor = ImGui::GetStyleColorVec4 (ImGuiCol_Button);
1192
1195
auto buttonHoveredColor = ImGui::GetStyleColorVec4 (ImGuiCol_ButtonHovered);
1193
1196
GetButtonColorsForPhysicalDeviceType (PhysicalDeviceType::SDLGamepad, buttonColor, buttonHoveredColor);
1194
-
1195
1197
ImGui::PushStyleColor (ImGuiCol_Button, buttonColor);
1196
1198
ImGui::PushStyleColor (ImGuiCol_ButtonHovered, buttonHoveredColor);
1199
+ auto notIgnored = !connectedDeviceManager->PortIsIgnoringInstanceId (portIndex, instanceId);
1200
+ ImGui::PopItemFlag ();
1201
+ if (ImGui::Checkbox (StringHelper::Sprintf (" ###instanceId_%d" , instanceId).c_str (), ¬Ignored)) {
1202
+ if (notIgnored) {
1203
+ connectedDeviceManager->UnignoreInstanceIdForPort (portIndex, instanceId);
1204
+ } else {
1205
+ connectedDeviceManager->IgnoreInstanceIdForPort (portIndex, instanceId);
1206
+ }
1207
+ };
1208
+ ImGui::PushItemFlag (ImGuiItemFlags_Disabled, true );
1209
+ ImGui::SameLine ();
1197
1210
ImGui::Button (StringHelper::Sprintf (" %s %s (SDL)" , ICON_FA_GAMEPAD, name.c_str ()).c_str ());
1198
1211
ImGui::PopStyleColor ();
1199
1212
ImGui::PopStyleColor ();
1213
+ ImGui::PopItemFlag ();
1200
1214
}
1201
1215
}
1202
1216
@@ -1221,7 +1235,7 @@ void InputEditorWindow::DrawPortTab(uint8_t portIndex) {
1221
1235
if (ImGui::BeginTabItem (StringHelper::Sprintf (" Port %d###port%d" , portIndex + 1 , portIndex).c_str ())) {
1222
1236
DrawClearAllButton (portIndex);
1223
1237
DrawSetDefaultsButton (portIndex);
1224
- DrawDeviceNameButtons ( );
1238
+ DrawDeviceToggles (portIndex );
1225
1239
1226
1240
UpdateBitmaskToMappingIds (portIndex);
1227
1241
UpdateStickDirectionToMappingIds (portIndex);
0 commit comments