GE Lua Documentation

Press F to search!

Selectable1

Definition


-- @/lua/common/extensions/ui/imgui_gen_luaintf.lua:762
function M.Selectable1(string_label, bool_selected, ImGuiSelectableFlags_flags, ImVec2_size)
  if bool_selected == nil then bool_selected = false end
  if ImGuiSelectableFlags_flags == nil then ImGuiSelectableFlags_flags = 0 end
  if ImVec2_size == nil then ImVec2_size = M.ImVec2(0,0) end
  if string_label == nil then log("E", "", "Parameter 'string_label' of function 'Selectable1' cannot be nil, as the c type is 'const char *'") ; return end
  return imgui.Selectable1(string_label, bool_selected, ImGuiSelectableFlags_flags, ImVec2_size)
end

Callers

@/lua/ge/extensions/editor/missionEditor/genericTypeData.lua
    for _, mType in ipairs(self.missionTypes) do
      if im.Selectable1(mType, mType == self.mission.missionType) then
        self:changeMissionType(mType)
@/lua/ge/extensions/editor/missionEditor/objectives.lua
  if im.BeginCombo("Default Star " .. defaultIndex, self.mission.careerSetup.defaultStarKeys[defaultIndex] or "None!") then
    if im.Selectable1("None", not self.mission.careerSetup.defaultStarKeys[defaultIndex]) then
      self.mission.careerSetup.defaultStarKeys[defaultIndex] = nil
      if not self.mission.careerSetup.starsActive[key] then im.BeginDisabled() end
      if im.Selectable1(key, self.mission.careerSetup.defaultStarKeys[defaultIndex] == key) then
        self.mission.careerSetup.defaultStarKeys[defaultIndex] = key
    for _, key in ipairs(self.attributeOptions) do
      if im.Selectable1(key,false) then
        ret = key
  if im.BeginCombo("##sss"..key, currentSlot) then
    if im.Selectable1("Bonus Star", currentSlot == "Bonus Star") then
      if idx then
    for i = 1, #tableKeys(self.mission.careerSetup.starsActive) do
      if im.Selectable1("Default Star " .. i, currentSlot == "Default Star " .. i) then
        if idx then
@/lua/ge/extensions/editor/terrainEditor.lua
      if not hasPaintMaterial(mat.internalName) then
        if im.Selectable1(mat.internalName .. "##availableTerrainMaterials" .. id, false, nil, nil, 0) then
          -- create a new TerrainMaterial object
              local remainingW = im.GetContentRegionAvailWidth() - (var.style.ItemSpacing.x + btnHeight * im.uiscale[0] + 10)
              im.Selectable1(
                matProxy.internalName .. "##" .. index,
      im.PushStyleColor2(im.Col_HeaderActive, im.ImColorByRGB(0, 0, 0, 0).Value)
      im.Selectable1("##DragAndDropField", false)
      im.PopStyleColor(2)
        im.Spacing()
        if im.Selectable1(tbName, tbData.selected) then
          if im.GetIO().KeyCtrl == true then
@/lua/ge/extensions/flowgraph/nodes/math/math.lua
    for _, template in ipairs(self.templateExpressions) do
      if im.Selectable1(template.name, template.expression == expr) then
        self.data.expression = template.expression
@/lua/ge/extensions/flowgraph/nodes/vehicle/fire/fire.lua
    for _, fun in ipairs(self.functions) do
      if im.Selectable1(fun, fun == self.selected) then
        self.selected = fun
@/lua/ge/extensions/flowgraph/nodes/scene/camera/setCameraRotation.lua
    for _, m in ipairs(self.modes) do
      if im.Selectable1(m, m == self.mode) then
        self.mode = m
@/lua/ge/extensions/editor/objectTool.lua
    local isSel = tableContains(hiddenObjectIconClasses, classes[k])
    if imgui.Selectable1(classes[k], isSel) then
      if isSel then
@/lua/ge/extensions/editor/raceEditor/tools.lua
    for _, m in ipairs(alignModes) do
      if im.Selectable1(m, m == alignMode) then
        alignMode = m
  if im.BeginCombo(name..'##'..fieldName, objects.objects[self.path[fieldName]].name) then
    if im.Selectable1('#'..0 .. " - None", value == -1) then
      self:changeField(fieldName,-1)
    for i, sp in ipairs(objects.sorted) do
      if im.Selectable1('#'..i .. " - " .. sp.name, value == sp.id) then
        self:changeField(fieldName,sp.id)
@/lua/ge/extensions/editor/levelValidator.lua

  if im.Selectable1(title, false, 0) then
    if functionName == sortingParam then
          local textSize = im.CalcTextSize(logItem.message:sub(1, 1000) or "", nil, nil, im.GetColumnWidth(2) - im.GetStyle().ItemSpacing.x)
          if im.Selectable1(" " .. (logItem.logLevel or "") .. "##" .. i, selected == i, im.SelectableFlags_SpanAllColumns, im.ImVec2(0, textSize.y + 5)) then
          end
@/lua/ge/extensions/editor/rallyEditor/notebookInfo.lua
      if mode ~= "auto" then
        if im.Selectable1(mode, mode == notebookAudioMode) then
          self.path:setAudioMode(RallyEnums.pacenoteAudioMode[mode])
  --   for _, mode in ipairs(RallyEnums.drivelineModeNames) do
  --     if im.Selectable1(mode, mode == notebookDrivelineMode) then
  --       self.path:reloadMissionSettings()
    end
    if im.Selectable1(codriverName, codriver.id == self.codriverId) then
      editor.history:commitAction("Select Codriver",
  im.Separator()
  if im.Selectable1('New...', self.codriverId == nil) then
    local codriver = self.path.codrivers:create(nil, nil)
@/lua/ge/extensions/editor/util/zoneSelectorUtil.lua
        if not initialZonesSet[zoneName] then
          if im.Selectable1(zoneName, zoneName == e.selectedInitialZone) then
            e.selectedInitialZone = zoneName
        if not destinationZonesSet[zoneName] then
          if im.Selectable1(zoneName, zoneName == e.selectedDestinationZone) then
            e.selectedDestinationZone = zoneName
@/lua/ge/extensions/editor/util/searchUtil.lua
      else
        im.Selectable1(result.id)
      end
@/lua/ge/extensions/editor/dragRaceEditor/facilities.lua

    if im.Selectable1(label, isSelected) then
      M.selectFacility(i)
@/lua/ge/extensions/flowgraph/nodes/states/transition.lua
      for _, tName in ipairs(target:getTransitionNames()) do
        if im.Selectable1(tName, tName == self.transitionName) then
          self.transitionName = tName
@/lua/ge/extensions/editor/roadArchitect.lua
            local flag = i == mfe.selectedRoadIdx
            if im.Selectable1("###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
              table.clear(roadMgr.multi)
              local flag = i == mfe.selectedNodeIdx or doesMultiContain(mfe.selectedRoadIdx, i, roadMgr.multi)
              if im.Selectable1('Node [' .. tostring(i) .. ']', flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
                table.clear(roadMgr.multi)
                  local flag = i == mfe.selectedLayerIdx
                  if im.Selectable1(tostring(i) .. "###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
                    mfe.selectedLayerIdx = max(1, min(numLayers, i))
                  local flag = iii == mfe.selectedSidewalkIdx
                  if im.Selectable1(tostring(iii) .. "###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
                    mfe.selectedSidewalkIdx = iii
          local flag = i == mfe.selectedJctIdx
          if im.Selectable1(tostring(i) .. "###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
            mfe.selectedJctIdx = max(1, min(#junctions, i))
          local flag = i == mfe.selectedPlacedGroupIdx
          if im.Selectable1(tostring(i) .. "###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
            mfe.selectedPlacedGroupIdx = max(1, min(#placedGroups, i))
                local flag = i == mfe.selectedLaneIdx
                if im.Selectable1('[' .. tostring(i) .. ']', flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
                  mfe.selectedLaneIdx = i
                local flag = i == mfe.selectedLaneIdx
                if im.Selectable1('[' .. tostring(i) .. ']', flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
                  mfe.selectedLaneIdx = i
            local flag = i == mfe.selectedProfileIdx
            if im.Selectable1("###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
              mfe.selectedProfileIdx = i
              local flag = i == mfe.selectedLaneIdx
              if im.Selectable1(tostring(i), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
                mfe.selectedLaneIdx = i
              local flag = i == mfe.selectedLaneIdx
              if im.Selectable1(tostring(i), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
                mfe.selectedLaneIdx = i
            if not skipMaterial then
              if im.Selectable1(objName, isSelected) or clickedImage then
          local flag = i == mfe.selectedMeshIdx
          if im.Selectable1(availStaticMeshes[i].filename, flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
            mfe.selectedMeshIdx = i
          local flag = i == mfe.selectedGroupIdx
          if im.Selectable1(group.name, flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
            if mfe.selectedGroupIdx ~= i then
@/lua/ge/extensions/editor/audioRibbonEditor.lua
        local ribbon = ribbons[i]
        if im.Selectable1('###' .. tostring(i), i == selectedRibbonIdx, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
          if i ~= selectedRibbonIdx then
@/lua/ge/extensions/editor/gen/exp_meshexplorer.lua
                                    -- to highlight row on hover
                                    im.Selectable1("##" .. 'n', false, im.SelectableFlags_SpanAllColumns)
                                    if im.IsItemHovered() then
                                            im.TableNextColumn()
                                            im.Selectable1("##" .. i, false, im.SelectableFlags_SpanAllColumns)
                                            if im.IsItemHovered() then
@/lua/ge/extensions/editor/crawlEditor/startingPositions.lua

    if im.Selectable1(displayName, isSelected) then
      if selection.index == i then
@/lua/ge/extensions/flowgraph/nodes/types/setVariable.lua
    for _, name in ipairs(names) do
      if im.Selectable1(name, name==current) then
        self:setVar(name)
@/lua/ge/extensions/flowgraph/nodes/vehicle/replay.lua
    for _, t in ipairs(self.replays) do
      if im.Selectable1(t.filename, t.filename == self.replayName) then
        if t.filename ~= self.replayName then
@/lua/ge/extensions/editor/vehicleDetailViewer.lua
    im.Separator()
    if im.Selectable1('New##VDV_'..tostring(view.name)) then
      spawnNewView = true
    end
    if im.Selectable1('Close##VDV_'..tostring(view.name)) then
      view.windowOpen[0] = false

  if im.Selectable1('save as PNG##save'..tostring(view.name)) then
    local filename = view.name .. '-' .. tostring(loadedLayoutBaseFilename) .. '.png'
@/lua/ge/extensions/editor/dragRaceEditor/lanes.lua

    if im.Selectable1(label, isSelected) then
      M.selectLane(i)
@/lua/ge/extensions/editor/meshSpline.lua
          local flag = i == selectedSplineIdx
          if im.Selectable1("###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
            selectedSplineIdx = i
@/lua/ge/extensions/editor/masterSpline.lua
          local flag = i == selectedSplineIdx
          if im.Selectable1("###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
            selectedSplineIdx = i
                  local flag = i == selectedLayerIdx
                  if im.Selectable1("###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
                    selectedLayerIdx = i
@/lua/ge/extensions/flowgraph/nodes/events/customizedTriggerBox.lua
    for _,triggerType in ipairs(triggerTypeNames) do
      if im.Selectable1(triggerType, triggerType == self.triggerType) then
        self.triggerType = triggerType
@/lua/ge/extensions/flowgraph/nodes/types/transform.lua
    for _, m in ipairs(self.modes) do
      if im.Selectable1(m, m == self.mode) then
        self.mode = m
    for _, m in ipairs(displayModes) do
      if im.Selectable1(m, m == self.displayMode) then
        self.displayMode = m
@/lua/ge/extensions/editor/vehicleBridgeTest.lua
      for i, vname in ipairs(scenetree.findClassObjects('BeamNGVehicle')) do
        if im.Selectable1(vname.."##"..i) then
          vehId = scenetree.findObject(vname):getID()
@/lua/ge/extensions/editor/vehicleEditor/staticEditor/veJBeamTableVis.lua
        if pathToData and data then
          if im.Selectable1(pathToData) then
            dataGraphingPath = pathToData
@/lua/ge/extensions/editor/assetDeduplicator.lua
          local label = (isSelected and "[x]" or "[ ]") .. "##sel_" .. i
          if im.Selectable1(label, false) then
            toggled = true
        im.PushTextWrapPos()
        if im.Selectable1(origin .. "##orig_" .. i, state.highlight == origin) then
          openPreviewFor(origin, entry)
          im.PushTextWrapPos()
          if im.Selectable1((assetPath or "-") .. "##link_" .. i, state.highlight == origin) then
            openPreviewFor(origin, entry)
          im.PushTextWrapPos()
          if im.Selectable1((assetPath or "-") .. "##link_" .. i, state.highlight == origin) then
            openPreviewFor(origin, entry)
              local selected = (opt == current)
              if im.Selectable1(opt, selected) then
                linkChoice[origin] = opt
              local selected = (opt == current)
              if im.Selectable1(opt, selected) then
                linkChoice[origin] = opt
          im.PushTextWrapPos()
          if im.Selectable1((link or "-") .. "##link_" .. i, state.highlight == origin) then
            openPreviewFor(origin, entry)
@/lua/ge/extensions/editor/missionEditor/setupModules.lua
      if core_environment and core_environment.getTimeOfDay() then
        if im.Selectable1("Default##todSelector") then
          self.todInput[0] = -1
        end
        if im.Selectable1("Now##todSelector") then
          local now = core_environment.getTimeOfDay().time
        local val = (i / 48 + 0.5) % 1
        if im.Selectable1(todToTime(val).."##todSelector") then
          setupModule.time = val
@/lua/ge/extensions/editor/dragRaceEditor/dragSettings.lua

    if im.Selectable1(label, isSelected) then
      M.selectSettings(i)

    if im.Selectable1(phaseLabel, isSelected) then
      selectedPhaseIndex = i
@/lua/ge/extensions/gameplay/rally/tools/rallyToolbox.lua
  --   for _, mode in ipairs(RallyEnums.drivelineModeNames) do
  --     if im.Selectable1(mode, mode == drivelineMode) then
  --       self.drivelineMode = RallyEnums.drivelineMode[mode]
@/lua/ge/extensions/editor/rallyEditor/pacenotes.lua
    end
    if im.Selectable1(note:pacenoteTextForSelect(), note.id == self.pacenoteToolsState.selected_pn_id) then
      self:selectPacenote(note.id)
@/lua/ge/extensions/editor/forestEditor.lua
    im.Indent()
    if im.Selectable1(string.format("%d##pMTextureSetList", i), i == pM_selectedTextureSetId and true or false) then
      if pM_selectedTextureSetId ~= i then
          local isSelected = (fieldValue == dbName)
          if im.Selectable1(dbName, isSelected) then
            im.CloseCurrentPopup()
@/lua/ge/extensions/editor/dynamicDecals/widgets.lua
      for name, id in pairs(api.widgetTypes[propType]) do
        if im.Selectable1(name, id == (property.widgetType or 0)) then
          property.widgetType = id
@/lua/ge/extensions/editor/scriptAIEditor.lua
          end
          if im.Selectable1(vehicle.string, flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
            vwd.selectedVeh = i
          if k == tlwd.selectedTraj then flag = true end
          if im.Selectable1(tostring(k), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
            tlwd.selectedTraj = k
              end
              if im.Selectable1("[" .. j .. "] :", flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
                tr.selectedNode = j
          if j == cwd.selectedNode then flag = true end
          if im.Selectable1("[" .. j .. "] :", flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then cwd.selectedNode = j end
          im.NextColumn()
@/lua/ge/extensions/editor/sidewalkSpline.lua
          local flag = i == selectedSplineIdx
          if im.Selectable1("###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
            selectedSplineIdx = i
@/lua/ge/extensions/editor/rallyEditor/pacenotes/measurementsForm.lua
      local isSelected = opt.value == currentIntensity
      if im.Selectable1(opt.label, isSelected) then
        pacenote.intensityVariationDivision = opt.value
@/lua/ge/extensions/editor/createObjectTool.lua
        local isSelected = i == selectedButtonListIndex
        if imgui.Selectable1(result.name, isSelected) or classSelected and selectedButtonListIndex == i then
          simObjectSearch:updateFrecencyEntry(result.name)
@/lua/ge/extensions/gameplay/missions/missionTypes/editorHelper.lua
      for _, v in ipairs(e.displayOptions.dropdownValues) do
        if im.Selectable1(v, v == mtd[e.fieldName]) then
          e.ac = im.ArrayChar(e.len, v)
  if im.BeginPopup("Editor Helper File Context Menu " .. e._id) then
    if im.Selectable1("Show in Explorer...") then
      Engine.Platform.exploreFolder(mission.missionFolder.."/")
    end
    if not e.foundFile and im.Selectable1("Check for File again") then
      e.foundFile = nil
      im.Separator()
      if im.Selectable1("Open Race Editor") then
        if editor_raceEditor then
      if not e.foundFile then im.BeginDisabled() end
      if im.Selectable1("Load File into Race Editor") then
        if editor_raceEditor then
      im.Separator()
      if im.Selectable1("Open Cam Path Editor") then
        editor.selectEditMode(editor.editModes.camPathEditMode)
      if not e.foundFile then im.BeginDisabled() end
      if im.Selectable1("Load File into Cam Path Editor") then
        editor.selectEditMode(editor.editModes.camPathEditMode)
      for _, fl in ipairs(e.filepathsInMissionfolder) do
        if im.Selectable1("Save current campath from editor to " .. fl) then
          local cedit = editor_camPathEditor
      im.Separator()
      if im.Selectable1("Open Sites Editor") then
        if editor_sitesEditor then
      if not e.foundFile then im.BeginDisabled() end
      if im.Selectable1("Load File into Sites Editor") then
        if editor_sitesEditor then
    if e.fileTags['prefab.json'] or e.fileTags['prefab'] then
      if im.Selectable1("Open Scenetree") then
        editor_sceneTree.openSceneTree()
      if not e.foundFile then im.BeginDisabled() end
      if im.Selectable1("Spawn Prefab at Origin") then
        local prefab = spawnPrefab(Sim.getUniqueName(mission.id.." - " .. e.label),e.foundFile,"0 0 0","0 0 0 1","1 1 1")
    if e.fileTags['flow.json'] then
      if im.Selectable1("Open Flowgraph Editor") then
        editor_flowgraphEditor.open()
      if not e.foundFile then im.BeginDisabled() end
      if im.Selectable1("Open Flowgraph Project in Flowgraph Editor") then
        editor_flowgraphEditor.open()
        if im.BeginMenu("Create New and Open Flowgraph Project...") then
          if im.Selectable1("Empty Project") then template = "empty" end
          if im.Selectable1("Barebones Mission Template") then template = "barebonesTemplate.flow.json" end
          if im.Selectable1("Empty Project") then template = "empty" end
          if im.Selectable1("Barebones Mission Template") then template = "barebonesTemplate.flow.json" end
          if im.Selectable1("Simple Scenariolike Template") then template = "simpleScenarioTemplate.flow.json" end
          if im.Selectable1("Barebones Mission Template") then template = "barebonesTemplate.flow.json" end
          if im.Selectable1("Simple Scenariolike Template") then template = "simpleScenarioTemplate.flow.json" end
          im.EndMenu()
      im.Separator()
      if im.Selectable1("Open Vehicle Group Manager") then
        if editor_multiSpawnManager then
      if not e.foundFile then im.BeginDisabled() end
      if im.Selectable1("Load File into Vehicle Group Manager") then
        if editor_multiSpawnManager then
    for _, v in ipairs(e.values) do
      if im.Selectable1(v, v == mtd[e.fieldName]) then
        mtd[e.fieldName] = v
@/lua/ge/extensions/editor/resourceChecker.lua
  if im.BeginPopup("Popup_" .. res[2]..count) then
    if im.Selectable1("Copy material data##"..res[2]) then
      copiedData = {}
    end
    if im.Selectable1("Paste material data##"..res[2]) then
      if copiedData and copiedData ~= {} and copiedData ~= "removed" then
    end
    if im.Selectable1("Remove duplicate##"..res[2]) then
      duplicateTable[res[1]][res[2]] = "removed"
    end
    if im.Selectable1("Open in Explorer##"..res..count) then
      if type and type == 'material' or type == 'duplicates' or type == 'usedMat' then
    if string.lower(res):find(".json") == nil and string.lower(res):find(".cs") == nil then
      if im.Selectable1("Preview##"..res..count) then
      if not type then
    if type and type == 'duplicates' then
      if im.Selectable1("Duplicates Resolver##"..res..count) then
        duplicateName = res
    if type and type == 'usedMat' then
      if im.Selectable1("Save all usages data##"..res..count) then
        local path = filepath.."/resourceChecker_matData_"..res..".json"
    if not type or type ~= 'material' and type ~= 'duplicates' and type ~= 'usedMat' then
      if im.Selectable1("Copy path to clipboard##"..res..count) then
        if not string.startswith(res, '/') then
      end
      if im.Selectable1("Dump asset##"..res..count) then
        if not string.startswith(res, '/') then
@/lua/ge/extensions/gameplay/drag/debug.lua
        if v then
          if im.Selectable1("Empty Lane - " ..k.. "##" .. k) then
            local vehId = getSelection()
      for vehId, _ in pairs(dragData.racers or {}) do
        if im.Selectable1(string.format("Racer ID: %d Lane: %d", vehId, dragData.racers[vehId].lane), vehId == selectedVehicle) then
          selectElement(vehId)
@/lua/ge/extensions/editor/trafficManager.lua
            im.PushStyleColor2(im.Col_Text, textColor)
            if im.Selectable1(str, nameId == currSelection.vehicle, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
              currSelection.vehicle = nameId
    end
    im.Selectable1(niceName.."##trafficManager", true)
          for _, mode in ipairs(tableKeysSorted(aiModes[t])) do
            if im.Selectable1(aiModes[t][mode].."##trafficManagerAiMode", sessionData.aiMode == mode) then
              sessionData.aiType = t
              if vehName ~= currVeh:getName() then
                if im.Selectable1(vehName.."##trafficManagerAiMode", aiData.targetName == vehName) then
                  aiData.targetName = vehName
  if im.BeginPopup("Advanced Functions##trafficManagerAllVehicles") then
    if im.Selectable1("Include All Vehicles From Scene##trafficManagerAllVehicles") then -- adds the player vehicle and all other vehicles to the session data
      for _, veh in ipairs(getAllVehiclesByType()) do
    end
    if im.Selectable1("Unlock All Vehicles##trafficManagerAllVehicles") then
      for id, data in pairs(session.vehicles) do
      end
      if im.Selectable1(id, id == currSelection.light) then
        currSelection.light = id
    im.Separator()
    if im.Selectable1("New...##trafficManagerLights", false) then
      createSignalData()
          end
          if im.Selectable1(description, currInstance.controllerId == ctrl.id and currInstance.sequenceId == seq.id) then -- prevents duplicates by limiting controller selection
            currInstance:setController(ctrl.id)
          label = core_vehicles.getModel(m).configs[c].Configuration.." ["..c.."]"
          if im.Selectable1(label.."##trafficManagerSignConfig", signSelector.model == m and signSelector.config == c) then
            signSelector.model = m

    if im.Selectable1("Reset Session##trafficManager") then
      setWindowConfirm("Are you sure you want to reset everything?", resetAll)
@/lua/ge/extensions/editor/terrainMaterialsEditor.lua
    for _, gmName in ipairs(groundModelNamesSorted) do
      if im.Selectable1(gmName) then
        notificationState = 0
    for _, gmName in ipairs(groundModelNamesSorted) do
      if im.Selectable1(gmName) then
        notificationState = 0
        for id, mtl in pairs(editor_terrainEditor.getMaterialsInJson()) do
          if im.Selectable1(mtl.internalName .. "##Terrain Materials" .. id, name == mtl.internalName, nil,
          im.ImVec2(im.GetContentRegionAvailWidth() - (editor_terrainEditor.getVars().style.ItemSpacing.x + btnHeight), 0))
            im.SameLine()
            if im.Selectable1(annotations[n], isSelected) then
              value = annotations[n]
@/lua/ge/extensions/editor/cosimulationSignalEditor.lua
        local vName = tostring(veh.vid .. ": " .. veh.name .. " - " .. veh.jBeam)
        if im.Selectable1(vName, i == selectedVehicleIdx, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
          if i ~= selectedVehicleIdx and not isExecuting then
          -- Handle the individual row selection.
          if im.Selectable1("", false, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then end
          im.SameLine()
@/lua/ge/extensions/editor/raceEditor/pacenotes.lua
  for i, note in ipairs(self.path.pacenotes.sorted) do
    if im.Selectable1(note.name, note.id == self.index) then
      editor.history:commitAction("Select Pacenote",
  im.Separator()
  if im.Selectable1('New...', self.index == nil) then
    self:selectPacenote(nil)
  if im.BeginCombo(name..'##'..fieldName, objects[node[fieldName]].name) then
    if im.Selectable1('#'..0 .. " - None", node[fieldName] == -1) then
      editor.history:commitAction("Removed Segment for pacenote",
    for i, sp in ipairs(self.path.segments.sorted) do
      if im.Selectable1('#'..i .. " - " .. sp.name, node[fieldName] == sp.id) then
              editor.history:commitAction("Changed Segment for pacenote",
@/lua/ge/extensions/editor/raceEditor/startPositions.lua
  for i, sp in ipairs(self.path.startPositions.sorted) do
    if im.Selectable1(sp.name, sp.id == self.index) then
      self:selectStartPosition(sp.id)
  im.Separator()
  if im.Selectable1('New...', self.index == nil) then
    self:selectStartPosition(nil)
@/lua/ge/extensions/editor/perfProfiler.lua
          for _, key in ipairs(dataKeys) do
            if im.Selectable1(key, key == chart.currentDataKey) then
              chart.currentDataKey = key
        im.TableNextColumn()
        if im.Selectable1(file.meta.name) then
          extensions.load('test_util_camPosDataToBucket')
        im.TableNextColumn()
        if im.Selectable1(file.meta.name) then
          extensions.load('test_util_camPosDataToBucket')
@/lua/ge/extensions/career/career.lua
    imgui.Separator()
    if imgui.Selectable1("Save Career") then
      career_saveSystem.saveCurrent()
    end
    if imgui.Selectable1("Exit Career Mode") then
      endCareerMode = true
    end
    if imgui.Selectable1("Open Save Folder") then
      Engine.Platform.exploreFolder(currentSavePath:lower())
@/lua/ge/extensions/flowgraph/nodes/logic/select.lua
      if fun.name ~= 'readOnly' then
        if im.Selectable1(fun.name, fun.name == self.mode) then
          self.mode = fun.name
@/lua/ge/extensions/editor/sitesEditor/sortedListDisplay.lua

      if im.Selectable1(obj.name .. '##' .. obj.id, selected) then
        self:selectElement(obj.id, mode)
  if self.createByShift then
    if im.Selectable1('New...', self.index == nil) then
      self:selectElement(nil)
  else
    if im.Selectable1('Create...', false) then
      local elem = self.elementEditor:create(nil)
      im.Separator()
      if im.Selectable1("Remove Tag") then
        removeTag = self.popupTag
      for tag, _ in pairs(self.currTags) do
        if im.Selectable1(tag) then
          self.addTagText = im.ArrayChar(256, tag)
@/lua/ge/extensions/editor/dynamicDecals/settings.lua
        im.SameLine()
        if im.Selectable1(string.format("%s##%s_material_%d_selectable", name, widgetId, id), enabled) then
          if enabled == false then
        im.SameLine()
        if im.Selectable1(string.format("%s##%s_shapeMesh_%d_selectable", name, widgetId, i), enabled) then
          api.setMeshEnable(name, not enabled)
@/lua/ge/extensions/editor/driftDataEditor.lua
    for i, elem in ipairs(driftData.stuntZones) do
      if im.Selectable1(string.format("%d - %s", i, elem.type), i == selectedStuntZoneIndex) then
        -- select element
  for spotId, spotData in pairs(currDriftSpots) do
    if im.Selectable1(spotId, spotId == selectedDriftSpotId) then
      selectDriftSpot(spotId)
@/lua/ge/extensions/gameplay/rally/recceApp.lua
  --     local isSelected = self.selectedMission and self.selectedMission.missionID == mission.missionID
  --     if im.Selectable1(mission.missionName, isSelected) then
  --       self.selectedMission = mission
@/lua/ge/extensions/editor/vehicleEditor/liveEditor/veJBeamPicker.lua
          -- on clicking suggestion, add to list!
          if im.Selectable1(dispText) then
            ffi.copy(nodeInputTextInput, "")
          -- on clicking suggestion, add to list!
          if im.Selectable1(dispText) then
            ffi.copy(beamInputTextInput, "")
@/lua/ge/extensions/editor/rallyEditor.lua
      --     for _, snaproadType in ipairs(RallyEnums.drivelineModeNames) do
      --       if im.Selectable1(snaproadType, snaproadType == editor.getPreference("rallyEditor.editing.preferredSnaproadType")) then
      --         setPreferredSnaproadType(snaproadType)
@/lua/ge/extensions/flowgraph/nodes/logic/sequencer.lua
    for _, m in ipairs({ 'auto', 'manual', 'select' }) do
      if im.Selectable1(m) then
      for _, m in ipairs(sortedModes) do
        if im.Selectable1(m) then
          self.mode = m
@/lua/ge/extensions/editor/dynamicDecals/docs.lua

    if im.Selectable1(string.format("%s##%s", section.name, id), selected) then
      currentSection = section
@/lua/ge/extensions/editor/missionEditor/progressSingle.lua
    for _, k in ipairs(progressKeys) do
      if im.Selectable1(k, k==self.currentProgressKey) then self.currentProgressKey = k end
    end
@/lua/ge/extensions/editor/particleEditor.lua
        for _, emitter in ipairs(particleEmitters) do
          if im.Selectable1(string.format("%s (%s)", emitter:getName(), emitter:getField("particles", ""))) then
            selectEmitterFromMenu(Sim.upcast(emitter))
        loopParticles(currentEmitter, function(particle)
          if im.Selectable1(particle:getName()) then
            selectParticleFromMenu(particle)
      for _, particleData in ipairs(particleDatas) do
        if im.Selectable1(particleData:getName()) then
          particleNames[i] = particleData:getName()
@/lua/ge/extensions/editor/multiSpawnManager.lua
      for _, v in ipairs(options.countries) do
        if im.Selectable1(v, v == generator.country) then
          generator.country = v
      local selected = options.spawnModeValue == v
      if im.Selectable1(v, selected) then
        options.spawnMode, options.spawnModeValue = tableFindKey(options.spawnModesDict, v), v
      for i, v in ipairs(commonGroups) do
        if im.Selectable1(v.name.."##groupListIdx"..i, currName == v.name) then
          selectGroup(i)
@/lua/ge/extensions/flowgraph/nodes/ui/imgui/elemental/imNumbers.lua
    for _, fun in ipairs(self.modes) do
      if im.Selectable1(fun, fun == self.mode) then
        self.mode = fun
@/lua/ge/extensions/flowgraph/nodes/types/getVariable.lua
    for _, name in ipairs(names) do
      if im.Selectable1(name, name==current) then
        self:setVar(name)
@/lua/ge/extensions/editor/rallyEditor/pacenotes/structuredForm.lua
      local name, severity = cornerCall[1], cornerCall[2]
      if im.Selectable1(name, name == currSev) then
        pacenote.structured.fields.cornerSeverity = severity
      local name, value = cornerLength[1], cornerLength[2]
      if im.Selectable1(name, value == currLength) then
        pacenote.structured.fields.cornerLength = value
      local name, value = cornerRadiusChange[1], cornerRadiusChange[2]
      if im.Selectable1(name, value == currRadiusChange) then
        pacenote.structured.fields.cornerRadiusChange = value
      local name, value = caution[1], caution[2]
      if im.Selectable1(name, value == currCaution) then
        pacenote.structured.fields.caution = value
@/lua/ge/extensions/editor/shapeEditor.lua
          if editor_materialEditor then
            if im.Selectable1(v, nil, im.SelectableFlags_DontClosePopups) then
              editor_materialEditor.showMaterialEditor()
@/lua/ge/extensions/gameplay/rally/tools/devTools.lua
        for _, compositorName in ipairs(self.compositors) do
          if im.Selectable1(compositorName, compositorName == self.selectedCompositor) then
            self.selectedCompositor = compositorName
@/lua/ge/extensions/editor/barriersEditor.lua
      if not elem.selected then
        if im.Selectable1(elem.filename..'##'..i) then
          flip = {elem = elem, dir = 'add', i = i}
      if elem.selected then
        if im.Selectable1(elem.filename..'##'..i) then
          flip = {elem = elem, dir = 'rem', i = i}
@/lua/ge/extensions/editor/missionEditor/startTrigger.lua
    for _, lvl in ipairs(self.sortedLevels) do
      if im.Selectable1(lvl.value, lvl.value == self.mission.startTrigger.level) then
        self.fields.levelName = nil
    for _, lvl in ipairs(self.sortedLevels) do
      if im.Selectable1(lvl.value, lvl.value == self.mission.startTrigger.level) then
        self.fields.levelName = nil
    for _, lvl in ipairs(self.sortedLevels) do
      if im.Selectable1(lvl.value, lvl.value == self.mission.startTrigger.level) then
        self.fields.levelName = nil
    for _, stType in ipairs(startTriggersSorted) do
      if im.Selectable1(stType, stType == self.mission.startTrigger.type) then
        local hasOld = oldValues[stType] ~= nil
@/lua/ge/extensions/editor/raceEditor/pathnodes.lua
    end
    if im.Selectable1(name, node.id == self.index) then
      editor.history:commitAction("Select Pathnode",
  im.Separator()
  if im.Selectable1('New...', self.index == nil) then
    self:selectPathnode(nil)
            if nd then
              if im.Selectable1(name, name == node.navgraphName) then
                editor.history:commitAction("Change Node Mode",
  if im.BeginCombo(name..'##'..fieldName, objects[node[fieldName]].name) then
    if im.Selectable1('#'..0 .. " - None", node[fieldName] == -1) then
      editor.history:commitAction("Removed Recovery Position",
    for i, sp in ipairs(self.path.startPositions.sorted) do
      if im.Selectable1('#'..i .. " - " .. sp.name, node[fieldName] == sp.id) then
              editor.history:commitAction("Removed Recovery Position",
@/lua/ge/extensions/editor/dragRaceEditor/strips.lua

    if im.Selectable1(label, isSelected) then
      M.selectStrip(i)

      if im.Selectable1(laneLabel, isLaneSelected) then
        selectedLaneIndex = i

      if im.Selectable1(waypointLabel, isWaypointSelected) then
        selectedWaypointIndex = i

    if im.Selectable1(boundaryLabel, isBoundarySelected) then
      selectedBoundaryIndex = selectedLaneIndex
@/lua/ge/extensions/editor/flowgraph/variables.lua
        for i, t in ipairs(self.targets) do
          if im.Selectable1("Add to: " ..t.name, i == self.addVariableSettings.target ) then
            self.addVariableSettings.target = i
      if im.BeginCombo("##typeSelectorNewVariable", typeText, im.ComboFlags_HeightLarge) then
        if im.Selectable1("Automatic", self.addVariableSettings.type=="auto") then
          self.addVariableSettings.type = "auto"
          im.SameLine()
          if im.Selectable1(typename, typename==self.addVariableSettings.type) then
            -- History
@/lua/ge/extensions/editor/fileDialog.lua
        im.SameLine()
        im.Selectable1(file.name, file.name == fNameInput)

        if im.Selectable1(file.name, file == selectedFile) then
          -- copying the filename into the textinput field interferes with the smart search for files
      if filterFile(file) then
        if im.Selectable1(file.name) then
          smartSearch = false
        if column.visible and column.visible == true then
          if im.Selectable1(column.name) then
            -- sortFileCache()
          for i,v in ipairs(options.suffix) do
            if im.Selectable1(getFiletypeLabel(v), i == fileTypeSelected) then
              local oldval = fileTypeSelected
    for _, dir in ipairs(recentDirs) do
      if im.Selectable1(dir) then
        refreshCache(dir)
@/lua/ge/extensions/editor/mainToolbar.lua
        im.PushStyleColor2(im.Col_Header, bgColor)
        if im.Selectable1(set.name, i == selectedSetIndex) then
          loadModesFromSet(i)
          im.PushStyleColor2(im.Col_Header, bgColor)
          if im.Selectable1(set.name, i == selectedSetIndex) then
            loadModesFromSet(i)
          im.PushStyleColor2(im.Col_Header, bgColor)
          if im.Selectable1(mode.name, mode.selected) then
            mode.selected = not mode.selected
            im.PushStyleColor2(im.Col_Header, bgColor)
            if im.Selectable1(mode.name, mode.selected) then
              deselectAllSelectedModes()
            im.SetCursorPosY(im.GetCursorPosY() + 3)
            if im.Selectable1(val.iconTooltip, false, nil, im.ImVec2(buttonWidthMax, buttonWidth*uiScaling)) and val ~= editor.editMode then
              editor.selectEditMode(val)
@/lua/ge/extensions/editor/api/valueInspector.lua
          local isSelected = (fieldValue == objName) or (fieldValue == "" and not objInfo.className)
          if imgui.Selectable1(objName, isSelected) then
            fieldValue = objName
      for i, type in ipairs(filterTypes) do
        if imgui.Selectable1(type) then
          filterTypeIndex = i
            if not skipMaterial then
              if imgui.Selectable1(objName, isSelected) or clickedImage then
                fieldValue = objName
        imgui.SameLine()
        if imgui.Selectable1(annotations[n], isSelected) then
          fieldValue = annotations[n]
            local isSelected = (fieldValue == dbName)
            if imgui.Selectable1(dbName, isSelected) then
              imgui.CloseCurrentPopup()
@/lua/ge/extensions/editor/dynamicDecals/layerTypes/linkedSet.lua
        if not layer.properties[property.id] then
          if im.Selectable1(string.format("%s##LinkedSet_AddProperty_%s_%s_%s", property.name, cat, guiId, layer.uid)) then
            if layer.properties[property.id] then
@/lua/ge/extensions/flowgraph/nodes/logic/booleanExpression.lua
    for _, template in ipairs(self.templateExpressions) do
      if im.Selectable1(template.name, template.expression == expr) then
        self.data.expression = template.expression
@/lua/ge/extensions/editor/rendererComponents.lua
          local selected = s.values
          if im.Selectable1(ck, cv == s.cVal) then
            s.cVal = cv
@/lua/ge/extensions/editor/crawlEditor.lua

        if im.Selectable1(displayName..'##'..trail._filePath, selectedTrailIndex == idx) then
          selectedTrailIndex = idx

        if im.Selectable1(displayName..'##'..trail._filePath, selectedTrailIndex == idx + #allTrails) then
          selectedTrailIndex = idx + #allTrails

        if im.Selectable1(displayName..'##'..path._filePath, selectedPathIndex == idx) then
          selectedPathIndex = idx

        if im.Selectable1(displayName..'##'..path._filePath, selectedPathIndex == idx + #allPaths) then
          selectedPathIndex = idx + #allPaths

        if im.Selectable1(displayName..'##'..boundary._filePath, selectedBoundaryIndex == idx) then
          selectedBoundaryIndex = idx

        if im.Selectable1(displayName..'##'..boundary._filePath, selectedBoundaryIndex == idx + #allBoundaries) then
          selectedBoundaryIndex = idx + #allBoundaries

        if im.Selectable1(displayName..'##'..startingPosition._filePath, selectedStartingPositionIndex == idx) then
          selectedStartingPositionIndex = idx
@/lua/ge/extensions/editor/autoSave.lua
      imgui.PushID1(tostring(k))
      if imgui.Selectable1(autosaves[k].displayPath .. " @ " ..  autosaves[k].datetime, k == selectedAutosaveIndex) then
        selectedAutosaveIndex  = k
@/lua/ge/extensions/editor/drivePathEditor.lua
          local flag = i == selectedSplineIdx
          if im.Selectable1("###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
            selectedSplineIdx = i
          local flag = i == selectedVehicleIdx
          if im.Selectable1("###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
            selectedVehicleIdx = i
@/lua/ge/extensions/editor/roadSpline.lua
          local flag = i == selectedGroupIdx
          if im.Selectable1("###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
            selectedGroupIdx = i
                  local flag = (layer.id == selectedLayerId)
                  if im.Selectable1("###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
                    selectedLayerId = layer.id
@/lua/ge/extensions/editor/dragRaceEditor/waypoints.lua

    if im.Selectable1(label, isSelected) then
      M.selectWaypoint(i)
@/lua/ge/extensions/editor/gen/ui.lua
					local selected = (o == W.out.curselect)
					if im.Selectable1(tostring(s), selected) then
							lo('?? UI.sel2:'..o..':'..tostring(W)..':'..tostring(meshType))
@/lua/ge/extensions/editor/dataBlockEditor.lua
        for _, dataBlock in ipairs(dataBlockClasses[newDataBlockClass]) do
          if im.Selectable1(dataBlock:__tostring()) then
            dataBlockToCopyID = dataBlock:getID()
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/customVehicleGetter.lua
    for _, fun in ipairs(functions) do
      if im.Selectable1(fun.name, fun.fun == self.data.fun) then
        self.data.fun = fun.fun
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/trafficCustomGroup.lua
  if im.BeginCombo('Mode', modes[self.mode]) then
    if im.Selectable1('Parameters', self.mode == 'settings') then
      self.mode = 'settings'
    end
    if im.Selectable1('Custom', self.mode == 'custom') then
      self.mode = 'custom'
@/lua/ge/extensions/flowgraph/nodes/debug/comment.lua
      for _, mode in ipairs(self.moveModes) do
        if im.Selectable1(moveModesPrettyNames[mode], mode == self.moveMode) then
          self.moveMode = mode
@/lua/ge/extensions/editor/crawlEditor/trails.lua

    if im.Selectable1(displayName, isSelected) then
      if selection.index == i then
      local isSelected = currentPath and currentPath._filePath == path._filePath
      if im.Selectable1(path._filePath or "Unnamed Path", isSelected) then
        trail.pathId = path._filePath
      local isSelected = currentBoundary and currentBoundary._filePath == boundary._filePath
      if im.Selectable1(boundary._filePath or "Unnamed Boundary", isSelected) then
        trail.boundaryId = boundary._filePath
      local isSelected = currentStartingPosition and currentStartingPosition._filePath == startingPosition._filePath
      if im.Selectable1(startingPosition._filePath or "Unnamed Starting Position", isSelected) then
        trail.startingPositionId = startingPosition._filePath
        local isSelected = currentReversedStartingPosition and currentReversedStartingPosition._filePath == startingPosition._filePath
        if im.Selectable1(startingPosition._filePath or "Unnamed Starting Position", isSelected) then
          trail.startingPositionIdReversed = startingPosition._filePath
        local fileName = filename
        if im.Selectable1(fileName, j-1 == selectedIndex[0]) then
          selectedIndex[0] = j-1
      local fileName = filename
      if im.Selectable1(fileName, i-1 == addSelectedIndex[0]) then
        addSelectedIndex[0] = i-1
@/lua/ge/extensions/editor/missionEditor/issues.lua
        end
        if im.Selectable1(name..'##'..name..'-'..issue.idx) then
          self.missionEditor.setMissionById(issue.missionId)
@/lua/ge/extensions/editor/missionEditor/dev.lua
    for _, mode in ipairs(modes) do
      if im.Selectable1(mode,mode == self.mission.devNotes.mode) then
        self.mission.devNotes.mode = mode
@/lua/ge/extensions/editor/flowgraph/overview.lua
          local clicked = false
          im.Selectable1(txt)
          if im.IsItemClicked() then clicked = true end
@/lua/ge/extensions/editor/raceEditor/trackLayout.lua
  if im.BeginCombo(name..'##'..fieldName, objects.objects[self.path[fieldName]].name) then
    if im.Selectable1('#'..0 .. " - None", objects.objects[self.path[fieldName]].id == -1) then
      self:changeField(fieldName,-1)
    for i, sp in ipairs(objects.sorted) do
      if im.Selectable1('#'..i .. " - " .. sp.name, objects.objects[self.path[fieldName]].id == sp.id) then
        self:changeField(fieldName,sp.id)
@/lua/ge/extensions/editor/vehicleEditor/staticEditor/veJBeamModifierLeakVis.lua
        im.TableSetColumnIndex(0)
        if im.Selectable1(partName) then
          vEditor.selectedPart = partName

                if im.Selectable1(modValStr .. "##" .. partIdx .. "," .. sectionModIdx) then
                  vEditor.selectedPart = partName
              else
                if im.Selectable1("##" .. partIdx .. "," .. sectionModIdx) then
                end
@/lua/ge/extensions/editor/preferences.lua
    local cPos = imgui.GetCursorPos()
    if imgui.Selectable1("  " .. pageLabel, currentCategoryName == pageName) then
      currentCategoryName = pageName
@/lua/ge/extensions/flowgraph/nodes/vehicle/beamstate/beamstate.lua
    for _, fun in ipairs(self.functions) do
      if im.Selectable1(fun, fun == self.selected) then
        self.selected = fun
@/lua/ge/extensions/editor/flowgraph/main.lua
                if editor.getPreference("flowgraph.debug.displayIds") then txt = string.format("[%d] " .. sib.name, sib.id) end
                if im.Selectable1(txt) then
                  self.mgr:selectGraph(sib)
              for _, m in ipairs(drawmodesSorted) do
                if im.Selectable1(drawmodeNames[m], m == drawmode) then
                  editor.setPreference("flowgraph.debug.viewMode", m)
@/lua/ge/extensions/flowgraph/nodes/input/blacklistAction.lua
        end
        if im.Selectable1("----- Category: " .. cat .. " -----", allSelected, im.SelectableFlags_DontClosePopups) then
          for i, name in ipairs(allCategories[cat]) do
@/lua/ge/extensions/editor/missionEditor/conditions.lua
    --if self.field == 'visible' then
      if im.Selectable1("automatic", "automatic" == condition.type) then
        condition.type = "automatic"
    for _, cType in ipairs(getConditionsSorted()) do
      if im.Selectable1(cType, cType == condition.type) then
        condition.type = cType
    for _, branch in ipairs(career_branches.getSortedBranches()) do
      if im.Selectable1(branch.id, branch.id == condition.branchId) then
        self.mission._dirty = true
    for _,i in ipairs({ "4WD", "AWD", "FWD", "Other", "RWD" }) do
      if im.Selectable1(i..'##'..index, i == condition.value) then
        condition.value = i
    for _,i in ipairs({ "Electric", "ICE" }) do
      if im.Selectable1(i..'##'..index, i == condition.value) then
        condition.value = i
    for _, c in ipairs(comparisonOps) do
      if im.Selectable1(c.opSymbol..'##'..index..self.name, c.opSymbol == condition.comparator) then
        condition.comparator = c.opSymbol
    for _, c in ipairs({"A","B","C","D","E"}) do
      if im.Selectable1(c..'##'..index..self.name, c == condition.value) then
        condition.value = c
    for idx, man in ipairs(self.manufacturerList) do
      if im.Selectable1(man..'##ManSelect'..idx..self.name, man == condition.value) then
        self.fields[name] = im.ArrayChar(1024, man)
@/lua/ge/extensions/editor/missionEditor/careerSetup.lua
    for _, key in ipairs(self.attributeOptions) do
      if im.Selectable1(key,false) then
        ret = key
    for _, skill in ipairs(self.skillOptions) do
      if im.Selectable1(skill, skill == self.mission.careerSetup.skill) then
        self.mission.careerSetup.skill = skill
@/lua/ge/extensions/editor/toolUtilities/meshAuditionMgr.lua
          local flag = i == selectedMeshIdx
          if im.Selectable1(name .. "###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
            selectedMeshIdx = i
@/lua/ge/extensions/editor/rallyEditor/measurementsTab.lua

    if im.Selectable1(displayText, isSelected) then
      self:selectMeasurement(measurement.id)

        if im.Selectable1(pointText, isPointSelected) then
          self.selectedPointIndex = i
@/lua/ge/extensions/editor/rallyEditor/pacenotes/pacenoteForm.lua
    for _, mode in ipairs(RallyEnums.pacenoteAudioModeNames) do
      if im.Selectable1(mode, mode == pacenoteAudioModeSetting) then
        pacenote:setAudioMode(RallyEnums.pacenoteAudioMode[mode])
      local v = triggerType[2]
      if im.Selectable1(v, k == currReleaseType) then
        pacenote:setSlowCornerReleaseType(k)
      local v = triggerType[2]
      if im.Selectable1(v, k == currTriggerType) then
        pacenote:setTriggerType(k)
@/lua/ge/extensions/editor/sensorConfigurationEditor.lua
        local vName = tostring(vehicle.vid .. ": " .. vehicle.name .. " - " .. vehicle.jBeam)
        if im.Selectable1(vName, i == selectedVehicleIdx, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
          if i ~= selectedVehicleIdx then
          local sensor = sensors[i]
          if im.Selectable1(sensor.name, i == selectedSensorIdx, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
            if i ~= selectedSensorIdx then
@/lua/ge/extensions/editor/flowgraph/references.lua
    for _, modeData in ipairs(filterModes) do
      if im.Selectable1(modeData.mode) then
        self.filterMode = modeData.mode
      im.SameLine()
      if im.Selectable1(tostring(rowCount) .. ". ", columnsBasic.selected[0] == rowCount, im.SelectableFlags_SpanAllColumns) then
        columnsBasic.selected[0] = rowCount
        im.SameLine()
        if im.Selectable1(tostring(rowCount) .. ". ", columnsBasic.selected[0] == rowCount, im.SelectableFlags_SpanAllColumns) then
          columnsBasic.selected[0] = rowCount
@/lua/ge/extensions/flowgraph/nodes/util/customLua.lua
    for _, name in ipairs(sortedNames) do
      if im.Selectable1(name, name == self.name) then
        local data = deepcopy(customNodes[name])
@/lua/ge/extensions/flowgraph/nodes/gameplay/dragRace/setDragVehicle.lua
      if fun.name ~= 'readOnly' then
        if im.Selectable1(fun.name, fun.name == self.mode) then
          self.mode = fun.name
@/lua/ge/extensions/editor/crawlEditor/paths.lua

    if im.Selectable1(displayName, isSelected) then
      if selection.index == i then

    if im.Selectable1(displayName, isSelected) then
      self:selectPathnode(i)
@/lua/common/extensions/ui/imguiUtils.lua
      imgui.SetCursorPosX(curX + 20 * imgui.uiscale[0])
      if imgui.Selectable1(item.label .. "##", nil, imgui.ImGuiSelectableFlags_DontClosePopups) then
        if item.active[0] == true then item.active[0] = false else item.active[0] = true end
@/lua/ge/extensions/editor/dynamicDecals/layerTypes/decal.lua
          im.SameLine()
          if im.Selectable1(string.format("%s##%s_shapeMesh_%d_selectable", name, widgetId, i), enabled) then
            setMeshEnable(name, not enabled)
@/lua/ge/extensions/flowgraph/nodes/ui/customUiLayout.lua
    for _, key in ipairs(sorted) do
      if im.Selectable1(key) then
        self.storedLayout = deepcopy(layouts[key])
@/lua/common/extensions/ui/imgui_gen_luaintf.lua
  if string_label == nil then log("E", "", "Parameter 'string_label' of function 'Selectable1' cannot be nil, as the c type is 'const char *'") ; return end
  return imgui.Selectable1(string_label, bool_selected, ImGuiSelectableFlags_flags, ImVec2_size)
end
@/lua/ge/extensions/flowgraph/nodes/types/color.lua
    for _, m in ipairs(self.modes) do
      if im.Selectable1(m, m == self.mode) then
        self.mode = m
@/lua/ge/extensions/editor/materialEditor.lua

    if im.Selectable1("Open in Explorer"..suffix) then
      local p = resolvePath(res)

    if im.Selectable1("Preview"..suffix) then
      local p = resolvePath(res)

    if im.Selectable1("Copy"..suffix) then
      im.SetClipboardText(tostring(res))
      im.SameLine()
      if im.Selectable1(annotations[n], isSelected) then
        value = annotations[n]
      for _, matName in ipairs(pickingFromObjectMaterials) do
        if im.Selectable1(matName) then
          if pickingFromObjectMode == pickingFromObjectMode_enum.new_material then
@/lua/ge/extensions/flowgraph/nodes/scene/camera/setCameraPosition.lua
    for _, m in ipairs(self.modes) do
      if im.Selectable1(m, m == self.mode) then
        self.mode = m
@/lua/ge/extensions/editor/missionEditor/additionalAttributes.lua

      if im.Selectable1(noneVal.label, val.key == nil) then
        self.mission.additionalAttributes[attKey] = nil
      for _, v in ipairs(attribute.valuesSorted) do
        if im.Selectable1(v.label, val.key == v.key) then
          self.mission.additionalAttributes[attKey] = v.key
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/scriptAI/followPath.lua
    for _, mode in ipairs({"neverReset","alwaysReset","startReset"}) do
      if im.Selectable1(mode, mode==self.loopMode) then
        self.loopMode = mode
@/lua/ge/extensions/editor/util/vehicleSelectUtil.lua
    for _, t in ipairs(self.allowedTypes) do
      if im.Selectable1(t.."##vehicleSelectorTypeNames"..dumps(self.id), t == self.vehType) then
        self.vehType = t
      local label = m.Name and (m.Name.." ["..m.key.."]")
      if im.Selectable1(label.."##vehicleSelectorModelNames"..dumps(self.id) or m.key, m.key == self.model) then
        self.model = m.key

        if im.Selectable1("(Default)##vehicleSelectorConfigNames"..dumps(self.id), self.config == nil) then
          self.config = nil
          local label = dumps(c.Name).." ["..dumps(c.key).."]"
          if im.Selectable1(label.."##vehicleSelectorConfigNames"..dumps(self.id), c.key == self.config) then
            self.config = c.key
        if im.BeginCombo("##vehicleSelectorPaints"..dumps(self.id).."_"..i, label) then
          if im.Selectable1("(Default)##vehicleSelectorPaintNames"..dumps(self.id).."_"..i, self[key] == nil) then
            self[key] = nil
          for _, paint in ipairs(self.paintKeys) do
            if im.Selectable1(paint.."##vehicleSelectorPaintNames"..dumps(self.id).."_"..i, self[key] == paint) then
              self[key] = paint
@/lua/ge/extensions/editor/undoHistory.lua
      imgui.PushID1(tostring(k))
      if imgui.Selectable1(tostring(k) .. ": " .. action.name, isSel) then selectedIndex = k end
      if imgui.IsItemHovered() then
      imgui.PushID1(tostring(k) .. "redo")
      if imgui.Selectable1(tostring(k) .. ": " .. action.name, isSel) then selectedIndex2 = k end
      if imgui.IsItemHovered() then
@/lua/ge/extensions/editor/flowgraph/properties.lua
                  im.SameLine()
                  if im.Selectable1(typename, typename==pin.type) then
                    -- History
                    im.SameLine()
                    if im.Selectable1(typename) then
                      item:_setHardcodedDummyInputPin(pin, fg_utils.getDefaultValueForType(typename), typename)
            im.SameLine()
            if im.Selectable1(p.name, false) then
              item:createPin('in', p.type, p.name, nil, "", 0)
                  im.SameLine()
                  if im.Selectable1(typename, typename==pin.type) then
                    pin.type = typename
            im.SameLine()
            if im.Selectable1(p.name, false) then
              item:createPin('out', p.type, p.name, nil, "", true)
    if pin.allowFiles then
      if im.Selectable1("Select File...") then
        extensions.editor_fileDialog.openFile(function(data)
              local shortPath = file:sub(pin.node.mgr.savedDir:len()+1,-1)
              if im.Selectable1(shortPath) then
                selected = shortPath
    for i, ht in ipairs(pin.hardTemplates or {}) do
      if im.Selectable1(ht.label or dumps(ht.value)) then
        selected = ht.value
                    im.SameLine()
                    if im.Selectable1(typename) then
                      item:_setHardcodedDummyInputPin(pin, fg_utils.getDefaultValueForType(typename), typename)
@/lua/ge/extensions/editor/slotTrafficEditor.lua
                  im.PushStyleColor2(im.Col_Text, im.ImVec4(roadColor.r, roadColor.g, roadColor.b, 1))
                  if im.Selectable1(roadId, roadId == selectedRoad, im.SelectableFlags_SpanAllColumns) then
                    selectRoad(roadId)
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/scriptAI/pathStored.lua
      for id, rec in pairs(editor_scriptAIManager.getCurrentRecordings()) do
        if im.Selectable1(tostring(id), tostring(id) == self.currentID) then
          self.currentID = id
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/scriptAI/pathFromFile.lua
      fnShort = string.sub(fnShort, 1, string.len(fnShort) - string.len(trackFileExt))
      if im.Selectable1(fnShort, fnShort==self.fnShort) then
        self.fnShort = fnShort
@/lua/ge/extensions/editor/inspector.lua
          imgui.SetCursorPosX(imgui.GetCursorPos().x + fontSize)
          if imgui.Selectable1(val.name, false) then
            groundCoverUVHandleColorIndex = index
          imgui.SetCursorPosX(imgui.GetCursorPos().x + fontSize)
          if imgui.Selectable1(val.name, false) then
            groundCoverUVBgColorIndex = index
@/lua/ge/extensions/editor/raceEditor/timeTrials.lua
    for i, d in ipairs(difficulties) do
      if im.Selectable1(d, d == intDiffToString(self.path.difficulty)) then
        self:changeField("difficulty", (i - 1) * 25 + 12)
@/lua/ge/extensions/editor/missionEditor/progressMulti.lua
    for _, k in ipairs(progressKeys) do
      if im.Selectable1(k, k==self.currentProgressKey) then
        self.currentProgressKey = k
@/lua/ge/extensions/editor/raceEditor/segments.lua
    local problem = (segment:getFrom().missing or segment:getTo().missing) and " (!)" or ""
    if im.Selectable1(segment.name .. problem, segment.id == self.index) then
      self:selectSegment(segment.id)
  im.Separator()
  if im.Selectable1('Create', false) then
    editor.history:commitAction("Create Segment",
        for i, node in ipairs(self.path.pathnodes.sorted) do
          if im.Selectable1('#'..i .. " - " .. node.name, segment:getFrom().id == node.id) then
            local old = segment:onSerialize()
        for i, node in ipairs(self.path.pathnodes.sorted) do
          if im.Selectable1('#'..i .. " - " .. node.name, segment:getTo().id == node.id) then
            local old = segment:onSerialize()
        local newMode = nil
        if im.Selectable1('waypoint', segment.mode == 'waypoint') then
          newMode = 'waypoint'
        end
        if im.Selectable1('capsules', segment.mode == 'capsules') then
          newMode = 'capsules'
        end
        if segment:getBeNavpath() and im.Selectable1('navpath', segment.mode == 'navpath') then
          newMode = 'navpath'
        for i, cap in ipairs(segment.capsulePoints) do
          if im.Selectable1("# " .. i, i == self.capsuleIndex) then
            self:selectCapsule(i)
        if #segment.capsulePoints == 0 then
          if im.Selectable1("Create", false) then
            local old = segment:onSerialize()
@/lua/ge/extensions/flowgraph/nodes/states/stateNode.lua
    for _, graph in pairs(rootGraphs) do
      if im.Selectable1(graph.id .. "-"..graph.name, graph.id == id) then
        self:setTargetGraph(graph)
@/lua/ge/extensions/editor/util/vehicleFilterUtil.lua
    for _, filterUiInfo in ipairs(e.filterUiData) do
      if im.Selectable1(filterUiInfo.propName) then
        local newFilter = {
    for _, filterUiInfo in ipairs(e.filterUiData) do
      if im.Selectable1(filterUiInfo.propName) then
        local newFilter = {
      for _, filterUiInfo in ipairs(e.filterUiData) do
        if im.Selectable1(filterUiInfo.propName) then
          local newFilter = {
      for _, filterUiInfo in ipairs(e.filterUiData) do
        if im.Selectable1(filterUiInfo.propName) then
          local newFilter = {
    for _, modelKey in ipairs(allModels) do
      if im.Selectable1(modelKey, modelKey == selectedModel) then
        e._tempSelectedModel = modelKey
        for _, configKey in ipairs(configs) do
          if im.Selectable1(configKey, configKey == selectedConfig) then
            e._tempSelectedConfig = configKey
@/lua/ge/extensions/flowgraph/nodes/logic/compare.lua
    for _,comparison in ipairs(comparisonOps) do
      if im.Selectable1(comparison.opName, comparison.opName == self.comparison.opName) then
        self.comparison = comparison
@/lua/ge/extensions/editor/decalSpline.lua
          local flag = i == selectedSplineIdx
          if im.Selectable1("###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
            selectedSplineIdx = i
@/lua/ge/extensions/editor/flowgraph/events.lua
    for _, format in ipairs({'Project Time','Global Time','Frame'}) do
      if im.Selectable1(format, format == timeFormat) then
        timeFormat = format
@/lua/ge/extensions/editor/audioEventsList.lua
  if im.BeginPopup("rightClickPopupMenu" .. event.id) then
    if im.Selectable1("Copy to clipboard") then
      im.SetClipboardText(event.eventName)
  -- Right clicking opens popup menu
  im.Selectable1(event.eventName, nil, im.SelectableFlags_SpanAllColumns)
  local selectableHovered = im.IsItemHovered()
    im.SameLine()
    if im.Selectable1("..", nil, im.SelectableFlags_SpanAllColumns) then
      table.remove(currDir, currDirLen)
      im.SameLine()
      if im.Selectable1(v.name, nil, im.SelectableFlags_SpanAllColumns) then
        table.insert(currDir, k)
@/lua/ge/extensions/editor/vehicleEditor/liveEditor/veFlexbodyDebug.lua
      local name = flexbody ~= nil and flexbody.mesh or "None"
      if im.Selectable1(name) then
        selectFlexbody(i)
          if string.find(name, input, 1, true) then
            if im.Selectable1(name) then
              selectFlexbody(i)
          -- on clicking suggestion, select node!
          if im.Selectable1(nodeName) then
            ffi.copy(nodeInputTextInput, "")
          -- on clicking suggestion, select vertex!
          if im.Selectable1(vertName) then
            ffi.copy(vertexInputTextInput, "")
@/lua/ge/extensions/career/modules/linearTutorial.lua
  if im.BeginMenu("> Intro Popups...") then
    if im.Selectable1("View All In Order") then
      for _,  file in ipairs(introPopupFiles) do
    end
    if im.Selectable1("Un-view all") then
      for _,  file in ipairs(introPopupFiles) do
        im.SameLine()
        if im.Selectable1("View " .. folder) then
          M.introPopup(folder, true)
@/lua/ge/extensions/editor/mapSensorEditor.lua
        local sensor = sensors[i]
        if im.Selectable1(sensor.name, i == selectedSensorIdx, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
          if i ~= selectedSensorIdx then
@/lua/ge/extensions/editor/crawlEditor/boundaries.lua

    if im.Selectable1(displayName, isSelected) then
      if selection.index == i then
@/lua/ge/extensions/editor/dynamicDecals/history.lua
    im.PushID1(tostring(k))
    if im.Selectable1(tostring(k) .. ": " .. action.name, isSel) then undoStackSelectedIndex = k end
    if im.IsItemHovered() then
    im.PushID1(tostring(k) .. "redo")
    if im.Selectable1(tostring(k) .. ": " .. action.name, isSel) then redoStackSelectedIndex = k end
    if im.IsItemHovered() then
@/lua/ge/extensions/editor/sceneTree.lua
  end
  imgui.Selectable1("##" .. label, node.selected or node.dragSelected, imgui.SelectableFlags_SpanAllColumns)
  imgui.SetItemAllowOverlap()
    if node.className == "Prefab" then
      if imgui.Selectable1("Convert to V2") then
        local objects = editor.selection.object or {}
    elseif node.className == "PrefabInstance" then
      if imgui.Selectable1("Unpackage") then
        local groups = editor.unpackageSelectedPrefabInstance()
    else
      if imgui.Selectable1("Package") then
        local saveFileDialogCallback = function(data)
      end
      if imgui.Selectable1("Package as level dressing") then
        local saveFileDialogCallback = function(data)
    end
    if imgui.Selectable1("Select Children") then
      if tableSize(instance.selectedNodes) == 1 then
    end
    if imgui.Selectable1("Duplicate Selection") then
      editor.duplicate()
    end
    if imgui.Selectable1("Delete Selection") then
      if not tableIsEmpty(instance.selectedNodes) then
    imgui.Separator()
    if imgui.Selectable1("Create New Group") then
      local grp = addNewGroupToSceneTree(instance)
    end
    if imgui.Selectable1("Put Into New Group") then
      local grp = addNewGroupToSceneTreeFromSelection(instance)
    end
    if imgui.Selectable1("Collapse Parent Group") then
      local parentNode = node.parent
    if not tableIsEmpty(instance.selectedNodes) then
      if imgui.Selectable1("Hide Selection") then
        hideSelectionClicked = true
      end
      if imgui.Selectable1("Show Selection") then
        showSelectionClicked = true
    if not tableIsEmpty(instance.selectedNodes) then
      if imgui.Selectable1("Lock Selection") then
        lockSelectionClicked = true
      end
      if imgui.Selectable1("Unlock Selection") then
        unlockSelectionClicked = true
    imgui.Separator()
    if imgui.Selectable1("Collapse All Scene Tree") then
      collapseAllSceneTree(instance)
    end
    if imgui.Selectable1("Select Children") then
      if tableSize(instance.selectedNodes) == 1 then
    end
    if imgui.Selectable1("New Group") then
      local grp = addNewGroupToSceneTree(instance)
    end
    if imgui.Selectable1("Duplicate Selection") then
      editor.duplicate()
    end
    if imgui.Selectable1("Delete Selection") then
      if not tableIsEmpty(instance.selectedNodes) then
    end
    if imgui.Selectable1("Put Into New Group") then
      local grp = addNewGroupToSceneTreeFromSelection(instance)
    if not tableIsEmpty(instance.selectedNodes) then
      if imgui.Selectable1("Hide Selection") then
        hideSelectionClicked = true
      end
      if imgui.Selectable1("Show Selection") then
        showSelectionClicked = true
    if not tableIsEmpty(instance.selectedNodes) then
      if imgui.Selectable1("Lock Selection") then
        lockSelectionClicked = true
      end
      if imgui.Selectable1("Unlock Selection") then
        unlockSelectionClicked = true
    imgui.Separator()
    if imgui.Selectable1("Sort Group") then
      sortGroupNode(instance, node)
    end
    if imgui.Selectable1("Sort Group Recursive") then
      sortGroupNode(instance, node, true)
    if object and node.className ~= "Prefab" then
      if imgui.Selectable1("Pack Prefab") then
        --TODO: check JSON save, load, replace cs to json save load
    imgui.Separator()
    if imgui.Selectable1("Collapse Parent Group") then
      local parentNode = node.parent
    end
    if imgui.Selectable1("Collapse All Scene Tree") then
      collapseAllSceneTree(instance)

    if imgui.Selectable1("Bulk Rename...") then
      editor.showWindow("bulkRename")
    end
    if imgui.Selectable1("Duplicate Selection") then
      if not tableIsEmpty(instance.selectedNodes) then
    end
    if imgui.Selectable1("Delete Selection") then
      if not tableIsEmpty(instance.selectedNodes) then
    if not tableIsEmpty(instance.selectedNodes) then
      if imgui.Selectable1("Hide Selection") then
        hideSelectionClicked = true
      end
      if imgui.Selectable1("Show Selection") then
        showSelectionClicked = true
    if not tableIsEmpty(instance.selectedNodes) then
      if imgui.Selectable1("Lock Selection") then
        lockSelectionClicked = true
      end
      if imgui.Selectable1("Unlock Selection") then
        unlockSelectionClicked = true

    if imgui.Selectable1("Bulk Rename...") then
      editor.showWindow("bulkRename")
    imgui.Separator()
    if imgui.Selectable1("Put Into New Group") then
      local grp = addNewGroupToSceneTreeFromSelection(instance)
    end
    if imgui.Selectable1("Pack Into Prefab") then
      extensions.editor_fileDialog.saveFile(function(data)
    if node.className == "Prefab" then
      if imgui.Selectable1("Unpack Prefab") then
        local groups = editor.explodeSelectedPrefab()
    imgui.Separator()
    if imgui.Selectable1("Collapse Parent Group") then
      local parentNode = node.parent
    end
    if imgui.Selectable1("Collapse All Scene Tree") then
      collapseAllSceneTree(instance)

    if imgui.Selectable1("Inspect in new Window") then
      editor.addInspectorInstance(editor.selection)
          for _, item in ipairs(items) do
            if item.title and imgui.Selectable1(item.title) and item.extendedSceneTreeObjectMenuItems then
              item.extendedSceneTreeObjectMenuItems(node)
@/lua/ge/extensions/editor/trafficDebug.lua
      im.PushStyleColor2(im.Col_Text, colors.yellow)
      if im.Selectable1("["..id.."] "..veh.model, id == currId) then
        currId = id
    im.PushStyleColor2(im.Col_Text, txtColor)
    if im.Selectable1("["..id.."] "..veh.model, id == currId) then
      currId = id
    im.PushStyleColor2(im.Col_Text, colors.silver)
    if im.Selectable1("["..id.."] "..getObjectByID(id).jbeam, id == currId) then
      currId = id
@/lua/ge/extensions/editor/util/editorElementHelper.lua
      for _, v in ipairs(e.displayOptions.dropdownValues) do
        if im.Selectable1(v, v == ctd[e.fieldName]) then
          e.ac = im.ArrayChar(e.len, v)
    for _, layer in ipairs(container.layers or {{dir = container.missionFolder}}) do
      if im.Selectable1("Show layer in Explorer: "..layer.dir) then
        Engine.Platform.exploreFolder(layer.dir)
    end
    if not e.foundFile and im.Selectable1("Check for File again") then
      e.foundFile = nil
      im.Separator()
      if im.Selectable1("Open Race Editor") then
        if editor_raceEditor then
      if not e.foundFile then im.BeginDisabled() end
      if im.Selectable1("Load File into Race Editor") then
        if editor_raceEditor then
      im.Separator()
      if im.Selectable1("Open Cam Path Editor") then
        editor.selectEditMode(editor.editModes.camPathEditMode)
      if not e.foundFile then im.BeginDisabled() end
      if im.Selectable1("Load File into Cam Path Editor") then
        editor.selectEditMode(editor.editModes.camPathEditMode)
      for _, fl in ipairs(e.filepathsInfolder) do
        if im.Selectable1("Save current campath from editor to " .. fl) then
          local cedit = editor_camPathEditor
      im.Separator()
      if im.Selectable1("Open Sites Editor") then
        if editor_sitesEditor then
      if not e.foundFile then im.BeginDisabled() end
      if im.Selectable1("Load File into Sites Editor") then
        if editor_sitesEditor then
      for _, fl in ipairs(e.filepathsInfolder) do
        if im.Selectable1("Save current sites file from editor to " .. fl) then
          editor_sitesEditor.saveSites(editor_sitesEditor.getCurrentSites(), container.missionFolder .. fl)
    if e.fileTags['prefab.json'] or e.fileTags['prefab'] then
      if im.Selectable1("Open Scenetree") then
        editor_sceneTree.openSceneTree()
      if not e.foundFile then im.BeginDisabled() end
      if im.Selectable1("Spawn Prefab at Origin") then
        local prefab = spawnPrefab(Sim.getUniqueName(e.label..e._id),e.foundFile,"0 0 0","0 0 1 0","1 1 1")
    if e.fileTags['flow.json'] then
      if im.Selectable1("Open Flowgraph Editor") then
        editor_flowgraphEditor.open()
      if not e.foundFile then im.BeginDisabled() end
      if im.Selectable1("Open Flowgraph Project in Flowgraph Editor") then
        editor_flowgraphEditor.open()
        if im.BeginMenu("Create New and Open Flowgraph Project...") then
          if im.Selectable1("Empty Project") then template = "empty" end
          if im.Selectable1("Barebones Mission Template") then template = "barebonesTemplate.flow.json" end
          if im.Selectable1("Empty Project") then template = "empty" end
          if im.Selectable1("Barebones Mission Template") then template = "barebonesTemplate.flow.json" end
          if im.Selectable1("Simple Scenariolike Template") then template = "simpleScenarioTemplate.flow.json" end
          if im.Selectable1("Barebones Mission Template") then template = "barebonesTemplate.flow.json" end
          if im.Selectable1("Simple Scenariolike Template") then template = "simpleScenarioTemplate.flow.json" end
          im.EndMenu()
      im.Separator()
      if im.Selectable1("Open Vehicle Group Manager") then
        if editor_multiSpawnManager then
      if not e.foundFile then im.BeginDisabled() end
      if im.Selectable1("Load File into Vehicle Group Manager") then
        if editor_multiSpawnManager then
    for _, v in ipairs(e.values) do
      if im.Selectable1(v, v == ctd[e.fieldName]) then
        ctd[e.fieldName] = v
@/lua/ge/extensions/editor/sitesEditor/tags.lua
  for i, tag in ipairs(self.sortedTags) do
    if im.Selectable1(tag..'##'..i, self.tag == tag) then
      self:selectTag(tag)
    for i, elem in ipairs(self.hasTag) do
      if im.Selectable1(elem.name..'##'..i) then
        flip = {elem = elem, dir = 'rem', i = i}
    for i, elem in ipairs(self.noTag) do
      if im.Selectable1(elem.name..'##'..i) then
        flip = {elem = elem, dir = 'add', i = i}
@/lua/ge/extensions/editor/rallyEditor/missionSettings.lua
      local current = self.settings.notebook.filename == notebookBasename
      if im.Selectable1(notebookBasename, current) then
        if self.settings.notebook.filename ~= notebookBasename then
      local current = self.settings.notebook.codriver == codriver
      if im.Selectable1(codriver, current) then
        if self.settings.notebook.codriver ~= codriver then
      local current = self.recce_settings:getCornerCallStyleName() == style_name
      if im.Selectable1(((current and '[current] ') or '')..style_name, current) then
        self.recce_settings:setCornerCallStyleName(style_name)
@/lua/ge/extensions/editor/vehicleEditor/staticEditor/vePartList.lua
              im.TableNextColumn()
              im.Selectable1("##part" .. tostring(k), true, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap))
              if im.IsItemHovered() then
@/lua/ge/extensions/editor/camPathEditor.lua
        im.PushStyleColor2(im.Col_Header, isSelected and im.ImVec4(0.3, 0.6, 0.9, 0.8) or im.ImVec4(0, 0, 0, 0))
        if im.Selectable1(tostring(index), isSelected) then
          selectMarker(index)
        im.PushStyleColor2(im.Col_Header, isSelected and im.ImVec4(0.3, 0.6, 0.9, 0.8) or im.ImVec4(0, 0, 0, 0))
        if im.Selectable1(string.format('%.1fs', marker.time), isSelected) then
          selectMarker(index)
        for i, modeName in ipairs(overlayModes) do
          if im.Selectable1(modeName, overlayMode[0] == (i - 1)) then
            overlayMode[0] = i - 1
      for _, path in ipairs(core_paths.getPaths()) do
        if im.Selectable1(path.name .. '##' .. path.id) then
          selectPath(path)
          for _, recording in ipairs(files) do
            if im.Selectable1(recording.filename, nil) then
              replayToBeLoaded = recording.filename
@/lua/ge/extensions/gameplay/rally/tools/loopToolbox.lua
    for i, missionName in ipairs(self.missionDropdownItems) do
      if im.Selectable1(missionName, i == self.selectedMissionIndex[0] + 1) then
        self.selectedMissionIndex[0] = i - 1
@/lua/ge/extensions/editor/flowgraph/garbageDebug.lua
      for _, key in ipairs(valueKeys) do
        if im.Selectable1(valueLabels[key], key == editor.getPreference("flowgraph.debug.garbageSort")) then
          editor.setPreference("flowgraph.debug.garbageSort", key)
@/lua/ge/extensions/editor/missionEditor.lua
  else
    im.Selectable1(name, clickedMission == missionData)
  end
      for _, mType in ipairs(missionTypeWindow.missionTypes) do
        if im.Selectable1(mType, mType == newMissionData.type) then
          newMissionData.type = mType
        for _, gr in ipairs(groupingNamesSorted) do
          if im.Selectable1(gr.name, gr.key == grouping.mode) then
            grouping.mode = gr.key
@/lua/common/extensions/ui/flowgraph/editor.lua
              im.SameLine()
              if im.Selectable1(type.name, type.name == variable.type) then
                source:updateType(name, type.name)
            for _, strat in ipairs(source:getMergeStrats(variable.type)) do
              if im.Selectable1(strat.name, variable.mergeStrat == strat.name) then
                source:setMergeStrat(name, strat.name)
      for _, t in ipairs({ 'Car', 'Truck', 'Prop', 'Trailer', 'Utility', 'Unknown', 'Any'}) do
        if im.Selectable1(t, t == self.vehType) then
          if t ~= self.vehType then
        if m.Type == self.vehType or self.vehType == 'Any' then
          if im.Selectable1(m.Name and (m.Name .. " [" .. m.key .. "]") or m.key, m.key == self.model) then
            if self.model ~= m.key then
          for _, m in ipairs(self.configs) do
            if im.Selectable1((dumps(m.value.Name) .. " [" .. m.key .. "]"), m.key == self.config) then
              self.config = m.key
@/lua/ge/extensions/editor/aiTests.lua
    else
      if im.Selectable1(obj.jbeam.." ["..id.."]", currId == id) then
        selectVehicle(id)
  im.Separator()
  if im.Selectable1("Setup All Vehicles...", true) then -- sets up all other vehicles
    for _, v in ipairs(getAllVehiclesByType()) do
@/lua/ge/extensions/editor/crawlEditor/waypoints.lua

    if im.Selectable1(displayText, isSelected) then
      self:selectPathnode(pathnode.id)
@/lua/ge/extensions/ui/apps/minimap/minimap.lua
            for i, v in ipairs(debugSettingsData[key]) do
              if im.Selectable1(v.name) then
                debugSettings[key] = i
@/lua/ge/extensions/editor/sitesEditor/parkingSpots.lua
    for name, vehScale in pairs(psVehScales) do
      if im.Selectable1(name) then
        currScale = name
      for _, dir in ipairs({ "Left", "Right", "Front", "Back" }) do
        if im.Selectable1(dir) then
          self.multiSpotData.spotDirection = dir
@/lua/ge/extensions/editor/assetBrowser.lua
          if entry.filterFn() then
            if im.Selectable1(entry.name .. "##" .. dir.path) then
              entry.fn(dir)
        else
          if im.Selectable1(entry.name .. "##" .. dir.path) then
            entry.fn(dir)
        if entry.filterFn(asset) then
          if im.Selectable1(entry.name .. "##" .. asset.path) then
            entry.fn(asset)
      else
        if im.Selectable1(entry.name .. "##" .. asset.path) then
          entry.fn(asset)
        if entry.filterFn(material) then
          if im.Selectable1(entry.name) then
            entry.fn(material)
      else
        if im.Selectable1(entry.name) then
          entry.fn(material)
        if entry.filterFn() then
          if im.Selectable1(entry.name .. "##" .. set.dir.path) then
            entry.fn(set)
      else
        if im.Selectable1(entry.name .. "##" .. set.dir.path) then
          entry.fn(set)

      im.Selectable1(type.label .. "##FileTypeDropdownItem", nil, im.SelectableFlags_DontClosePopups)
      if im.IsItemHovered() then
    im.Separator()
    if im.Selectable1("Enable all##FileTypeDropdownItem", nil, im.SelectableFlags_DontClosePopups) then
      enableAllFilterTypes()
    end
    if im.Selectable1("Disable all##FileTypeDropdownItem", nil, im.SelectableFlags_DontClosePopups) then
      disableAllFilterTypes()
  if im.BeginPopup("FilterByTypeDropdown_rmb") then
    if im.Selectable1("Enable all##FileTypeDropdownItemRMB", nil, im.SelectableFlags_DontClosePopups) then
      enableAllFilterTypes()
    end
    if im.Selectable1("Disable all##FileTypeDropdownItemRMB", nil, im.SelectableFlags_DontClosePopups) then
      disableAllFilterTypes()
    im.Bullet()
    if im.Selectable1(matName) then
      if editor_materialEditor then
@/lua/ge/extensions/flowgraph/nodes/math/ease.lua
    for _, fun in ipairs(easeFuncNameList) do
      if im.Selectable1(fun, fun == self.easeFuncName) then
        self.easeFuncName = fun
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/vehicleAction.lua
        local action = modelA.actions[name]
        if im.Selectable1(action.title, self.action == action) then
          self.action = action
      local action = allA.actions[name]
      if im.Selectable1(action.title, self.action == action) then
        self.action = action
@/lua/ge/extensions/editor/vehicleEditor/staticEditor/vePartTree.lua
    end
    local clicked = im.Selectable1(label .. '##treeSelData' .. tostring(node), node.__selected, 0)
    if node.__selected then
@/lua/ge/extensions/editor/assemblySpline.lua
          local flag = i == selectedSplineIdx
          if im.Selectable1("###" .. tostring(wCtr), flag, bit.bor(im.SelectableFlags_SpanAllColumns, im.SelectableFlags_AllowItemOverlap)) then
            selectedSplineIdx = i
@/lua/ge/extensions/editor/trafficSignalsEditor.lua
    for i, name in ipairs(signalCtrlDefinitions.typesSorted) do
      if im.Selectable1(name.."##ctrlDefinitionType", selected.ctrlDefType == i) then
        selected.ctrlDefType = i
        for _, state in ipairs(signalCtrlDefinitions.tempStatesSorted) do
          if im.Selectable1(state.."##ctrlDefinitionTypeData"..i, currData.states[i] == state) then
            currData.states[i] = state
    for i, name in ipairs(signalCtrlDefinitions.statesSorted) do
      if im.Selectable1(name.."##ctrlDefinitionState", selected.ctrlDefState == i) then
        selected.ctrlDefState = i
      for _, action in ipairs(tableKeysSorted(signalCtrlDefinitions.signalActions)) do
        if im.Selectable1(action.."##ctrlDefinitionState", currData.action == action) then
          currData.action = action
        for _, color in ipairs(tableKeysSorted(signalCtrlDefinitions.signalColors)) do
          if im.Selectable1(color.."##ctrlDefinitionStateLight"..i, currData.flashingLights[selected.flashingLight][i] == color) then
            currData.flashingLights[selected.flashingLight][i] = color
  for i, instance in ipairs(instances) do
    if im.Selectable1(instance.name, selected.signal == i or groupInstances[instance.name]) then
      selectInstance(i)

  if im.Selectable1("New...##instance", false) then -- if this is clicked, creates a new signal instance at the current camera position
    local act = {controllerId = lastUsed.controllerId, sequenceId = lastUsed.sequenceId}
    if im.BeginCombo("Sequence##instance", name) then
      if im.Selectable1("Basic##instanceSequenceBasic", not elem) then
        currInstance:setSequence(0)
      for _, sequence in ipairs(sequences) do
        if im.Selectable1(sequence.name.."##instanceSequence", sequence.name == name) then
          currInstance:setSequence(sequence.id)
    if im.BeginCombo("Controller##instance", name) then
      if im.Selectable1("(None)##instanceController", not elem) then
        currInstance:setController(0)
      for _, ctrl in ipairs(selectableControllers) do
        if im.Selectable1(ctrl.name, ctrl.name == name) then
          currInstance:setController(ctrl.id)
          local _, shapeName = path.split(obj.shapeName)
          if im.Selectable1(string.format("[%d] %s", oid, shapeName), selectedObject == oid) then
            editor.selectObjects({oid})
  for i, ctrl in ipairs(controllers) do
    if im.Selectable1(ctrl.name, selected.controller == i) then
      selectController(i)
  im.Separator()
  if im.Selectable1("Create...##controller", false) then
    editor.history:commitAction("Create Controller", {}, createControllerActionUndo, createControllerActionRedo)
      for _, k in ipairs(tableKeysSorted(signalTypes)) do
        if im.Selectable1(signalTypes[k].name, k == currController.type) then
          currController.type = k
  for i, sequence in ipairs(sequences) do
    if im.Selectable1(sequence.name, selected.sequence == i) then
      selectSequence(i)
  im.Separator()
  if im.Selectable1("Create...##sequence", false) then
    editor.history:commitAction("Create Sequence", {}, createSequenceActionUndo, createSequenceActionRedo)
            for _, ctrl in ipairs(controllers) do
              if not currSequence.tempControllers[ctrl.id] and im.Selectable1(ctrl.name, cid == ctrl.id) then -- prevents duplicates by limiting controller selection
                phase.controllerIds[j] = ctrl.id
@/lua/ge/extensions/flowgraph/nodes/states/stateExit.lua
      if im.BeginCombo("Transition Name", self.transitionName) then
        if im.Selectable1("(None)", self.transitionName == nil) then
          self.transitionName = nil
        for _, tName in ipairs(target:getTransitionNames()) do
          if im.Selectable1(tName, tName == self.transitionName) then
            self.transitionName = tName
@/lua/ge/extensions/editor/toolUtilities/materialSelectionMgr.lua

          if onSelectMaterialFunct and (im.Selectable1(objId, false) or clickedImage) then
            onSelectMaterialFunct(objId) -- Call the callback function for handling the material selection event, if it exists.