GE Lua Documentation

Press F to search!

CalcTextSize

Definition


-- @/lua/common/extensions/ui/imgui_gen_luaintf.lua:1114
function M.CalcTextSize(string_text, string_text_end, bool_hide_text_after_double_hash, float_wrap_width)
  -- string_text_end is optional and can be nil
  if bool_hide_text_after_double_hash == nil then bool_hide_text_after_double_hash = false end
  if float_wrap_width == nil then float_wrap_width = -1 end
  if string_text == nil then log("E", "", "Parameter 'string_text' of function 'CalcTextSize' cannot be nil, as the c type is 'const char *'") ; return end
  return imgui.CalcTextSize(string_text, string_text_end, bool_hide_text_after_double_hash, float_wrap_width)
end

Callers

@/lua/ge/extensions/editor/levelValidator.lua
          im.PushStyleColor2(im.Col_Text, logColor)
          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
@/lua/ge/extensions/flowgraph/nodes/debug/comment.lua
    min.y = min.y - im.GetTextLineHeightWithSpacing() + 2
    local itemSize = im.CalcTextSize(self.commentTitle)
@/lua/ge/extensions/editor/gen/lib/ui.lua
        if lbl then
            shift = -im.CalcTextSize(lbl).x - 6
        else
    if not c then c = im.ImVec4(0.8, 0.8, 0.8, 1) end
    local sz = im.CalcTextSize(txt)
    if not dim then
	end
	labelHide(-(im.CalcTextSize(id).x+10))
--  im.Unindent(conf.inputMargin)
                local k,v = c[1],c[2]
                local sz = im.CalcTextSize(k)
                local cur = im.GetCursorPos()
--                    im.SameLine()
					local sz = im.CalcTextSize(k)
					local cur = im.GetCursorPos()
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/countdownSynced.lua
        local txt = string.format("Waiting: %.1fs", timeUntilStart)
        local tWidth = im.CalcTextSize(txt)
        if tWidth.x < avail.x then
      local txt = " - " .. (math.ceil(old)+1) .. " - "
      local tWidth = im.CalcTextSize(txt)
      if tWidth.x < avail.x then
@/lua/ge/extensions/editor/resourceChecker.lua
local function drawRectBg(text, color, hover, smol)
  local textSize = im.CalcTextSize(text)
  local leftT = im.GetCursorScreenPos()
  im.Text(text)
  local textSize = im.CalcTextSize(text)
  im.Separator()
@/lua/ge/extensions/editor/extensionsEditor.lua
    if imgui.BeginTable('##extensionstable', colCount, tableFlags) then
      local textBaseWidth = imgui.CalcTextSize('W').x
      imgui.TableSetupScrollFreeze(0, 1) -- Make top row always visible
@/lua/ge/extensions/editor/assetBrowser.lua
      im.SetCursorPos(im.ImVec2(startCursorPos.x + var.minThumbnailSize, startCursorPos.y))
      local buttonWidth = im.CalcTextSize(file.fullFileName).x + 2 * var.style.FramePadding.x
      if im.Button("##" .. tostring(file.id), im.ImVec2(buttonWidth,var.fontSize)) then
  local popupPos = im.ImVec2(
    cursorX + var.windowPos.x + var.inputFieldSize - (var.fontSize + var.style.ItemSpacing.x + 2 * var.style.ItemSpacing.x + 2 * var.style.WindowPadding.x + im.CalcTextSize("prefab").x),
    cursorY + var.windowPos.y + var.inputFieldSize + var.style.ItemSpacing.y
  local popupPosRmb = im.ImVec2(
    cursorX + var.windowPos.x + var.inputFieldSize - (im.CalcTextSize("Disable all").x + 2 * var.style.WindowPadding.x) ,
    cursorY + var.windowPos.y + var.inputFieldSize + var.style.ItemSpacing.y
      local directorySelectionGroupWidth = (
        ((var.selectedDirectory) and (im.CalcTextSize("ALL").x + im.CalcTextSize(var.selectedDirectory.name).x) or 20) +
        4 * var.style.FramePadding.x +
      local directorySelectionGroupWidth = (
        ((var.selectedDirectory) and (im.CalcTextSize("ALL").x + im.CalcTextSize(var.selectedDirectory.name).x) or 20) +
        4 * var.style.FramePadding.x +
      local directorySelectionGroupWidthTruncated = (
        ((var.selectedDirectory) and (im.CalcTextSize("ALL").x + im.CalcTextSize("SEL").x) or 20) +
        4 * var.style.FramePadding.x +
      local directorySelectionGroupWidthTruncated = (
        ((var.selectedDirectory) and (im.CalcTextSize("ALL").x + im.CalcTextSize("SEL").x) or 20) +
        4 * var.style.FramePadding.x +
      local numberOfDirsText = string.format('Folders: %d', var.filteredDirsCount)
      local numberOfDirsTextWidth = im.CalcTextSize(string.format('Folders: %d', var.filteredDirsCount)).x
      local numberOfDirsTextTruncated = string.format('F: %d', var.filteredDirsCount)
      local numberOfDirsTextTruncated = string.format('F: %d', var.filteredDirsCount)
      local numberOfDirsTextTruncatedWidth = im.CalcTextSize(string.format('F: %d', var.filteredDirsCount)).x
      local numberOfAssetsText = string.format('Assets: %d', var.filteredAssetsCount)
      local numberOfAssetsTextWidth = im.CalcTextSize(string.format('Assets: %d', var.filteredAssetsCount)).x
      local numberOfAssetsTextTruncated = string.format('A: %d', var.filteredAssetsCount)
      local numberOfAssetsTextTruncated = string.format('A: %d', var.filteredAssetsCount)
      local numberOfAssetsTextTruncatedWidth = im.CalcTextSize(string.format('A: %d', var.filteredAssetsCount)).x
      local numberOfTextureSetsText = string.format('Sets: %d', var.filteredTextureSetsCount)
      local numberOfTextureSetsTextWidth = im.CalcTextSize(string.format('Sets: %d', var.filteredTextureSetsCount)).x
      local numberOfTextureSetsTextTruncated = string.format('S: %d', var.filteredTextureSetsCount)
      local numberOfTextureSetsTextTruncated = string.format('S: %d', var.filteredTextureSetsCount)
      local numberOfTextureSetsTextTruncatedWidth = im.CalcTextSize(string.format('S: %d', var.filteredTextureSetsCount)).x
    local pressed = false
    if im.GetContentRegionAvailWidth() > (im.CalcTextSize("Show in ShapeEditor").x + 2 * var.style.FramePadding.x) then
      pressed = editor.uiButtonRightAlign("Show in ShapeEditor", nil, true)
      im.TextUnformatted(assetName)
      if maxWidth < im.CalcTextSize(assetName).x then
        im.tooltip(assetName)
      im.TextUnformatted(inspector_selectedAsset.path)
      if maxWidth < im.CalcTextSize(inspector_selectedAsset.path).x then
        im.tooltip(inspector_selectedAsset.path)
        im.TextUnformatted(inspector_selectedAsset.filestats.accesstimeString)
        if maxWidth < im.CalcTextSize(inspector_selectedAsset.filestats.accesstimeString).x then
          im.tooltip(inspector_selectedAsset.filestats.accesstimeString)
        im.TextUnformatted(inspector_selectedAsset.filestats.createtimeString)
        if maxWidth < im.CalcTextSize(inspector_selectedAsset.filestats.createtimeString).x then
          im.tooltip(inspector_selectedAsset.filestats.createtimeString)
        im.TextUnformatted(inspector_selectedAsset.filestats.modtimeString)
        if maxWidth < im.CalcTextSize(inspector_selectedAsset.filestats.modtimeString).x then
          im.tooltip(inspector_selectedAsset.filestats.modtimeString)
@/lua/ge/extensions/editor/materialEditor.lua
  local pos = im.GetCursorScreenPos()
  local ts  = im.CalcTextSize(text)
  local x1  = pos.x - 2
        if im.IsItemHovered() then
          if maxWidth < (im.CalcTextSize(matName).x + 2 * v.style.WindowPadding.x) then
            im.SetTooltip(matName)
    else
      im.PushItemWidth(im.GetContentRegionAvailWidth() - (v.inputWidgetHeight * im.uiscale[0] + 3 * v.style.ItemSpacing.x + im.CalcTextSize("Pick from TSStatic").x + 10))
    end
    im.SameLine()
    im.PushItemWidth(im.GetContentRegionAvailWidth() - (v.style.ItemSpacing.x + 2 * v.style.FramePadding.x + im.CalcTextSize("...").x))
    im.InputText("##NewMatPath", newMatPath, nil, im.flags(im.InputTextFlags_CharsNoBlank))

    im.SetCursorPosX(im.GetCursorPosX() + im.GetContentRegionAvailWidth() - (v.style.ItemSpacing.x + 4 * v.style.FramePadding.x + im.CalcTextSize("Create").x + im.CalcTextSize("Cancel").x))
    if createMaterialError then im.BeginDisabled() end

    im.SetCursorPosX(im.GetCursorPosX() + im.GetContentRegionAvailWidth() - (v.style.ItemSpacing.x + 4 * v.style.FramePadding.x + im.CalcTextSize("Create").x + im.CalcTextSize("Cancel").x))
    if createMaterialError then im.BeginDisabled() end
      im.SameLine()
      im.PushItemWidth(size - (im.CalcTextSize("Preview Meshes(?)").x + 3 * v.style.ItemSpacing.x + 24))
      if im.Combo1("##MaterialPreviewMeshCombo", previewMeshIndex, previewMeshNamesPtr) then
@/lua/ge/extensions/editor/mainToolbar.lua
          if val and val.iconTooltip then
            local textSize = (im.CalcTextSize(val.iconTooltip).x)*uiScaling+im.GetStyle().FramePadding.x*2
            if textSize > buttonWidthMax then
@/lua/ge/extensions/flowgraph/basenode.lua

  builder:setExpectedHeaderSize(im.CalcTextSize(displayedName).x + 6 +iconWidth)
    local txt = string.format("(+%d)",hiddenCount)
    local xOff = outPinWidth - im.CalcTextSize(txt).x - 3
    im.Dummy(im.ImVec2(xOff, 1)) im.SameLine()
@/lua/ge/extensions/editor/terrainMaterialsEditor.lua
  local cursorPosX = im.GetCursorPosX()
  local itemWidth = childWidth - cursorPosX - editor_terrainEditor.getVars().style.WindowPadding.x / 2 - im.CalcTextSize("Parallax Scale").x - editor_terrainEditor.getVars().style.ItemInnerSpacing.x - editor_terrainEditor.getVars().style.ScrollbarSize
  im.PushItemWidth(itemWidth)
      local posX = im.GetCursorPosX()
      im.SetCursorPosX(posX + im.GetContentRegionAvailWidth() - ((2 * im.GetStyle().FramePadding.x) + im.CalcTextSize("Reload Terrain Materials").x))
      if im.SmallButton("Reload Terrain Materials") then

              im.SetCursorPosX(im.GetContentRegionAvailWidth() - ((2 * im.GetStyle().FramePadding.x) + im.CalcTextSize("Apply Changes").x))
              if im.Button("Apply Changes") then
@/lua/ge/extensions/editor/mainMenu.lua

  local txtSize = imgui.CalcTextSize("FPS: 999 ").y + imgui.CalcTextSize("GpuWait: 00.0f ").y + imgui.CalcTextSize("Poly: 123456789").y
  imgui.SetCursorPosX(imgui.GetCursorPosX() + imgui.GetContentRegionAvailWidth() - txtSize*4)

  local txtSize = imgui.CalcTextSize("FPS: 999 ").y + imgui.CalcTextSize("GpuWait: 00.0f ").y + imgui.CalcTextSize("Poly: 123456789").y
  imgui.SetCursorPosX(imgui.GetCursorPosX() + imgui.GetContentRegionAvailWidth() - txtSize*4)

  local txtSize = imgui.CalcTextSize("FPS: 999 ").y + imgui.CalcTextSize("GpuWait: 00.0f ").y + imgui.CalcTextSize("Poly: 123456789").y
  imgui.SetCursorPosX(imgui.GetCursorPosX() + imgui.GetContentRegionAvailWidth() - txtSize*4)
@/lua/ge/extensions/editor/forestEditor.lua
      im.SetCursorPos(im.ImVec2(
        cursorPos.x + im.CalcTextSize("BrushesMeshes").x + 4 * var.style.FramePadding.x + var.style.ItemInnerSpacing.x + 2*var.style.ItemSpacing.x,
        cursorPos.y
@/lua/ge/extensions/editor/sitesEditor/sortedListDisplay.lua
    for t, _ in pairs(self.sharedSelectedTags or {}) do
      if im.GetCursorPosX() + im.CalcTextSize(t).x + 10 > totalWidth then
        im.EndChild()
@/lua/ge/extensions/editor/gen/ui.lua
    if lbl then
      shift = -im.CalcTextSize(lbl).x - 6
    else
  if center then
    local len = im.CalcTextSize(text).x
    local ds = (dim.x - len)/2 + (shift or 0)
--        path = 't_shape'
--    local width = im.CalcTextSize(t).x
	--                if im.ColorButton('ib'..i, im.ImVec4(0.6, 0.0, 0.0, 1)) then
					im.BeginGroup()
						local width = im.CalcTextSize(t).x
		--                if im.ColorButton('ib'..i, im.ImVec4(0.6, 0.0, 0.0, 1)) then
	--                    im.SameLine()
						local sz = im.CalcTextSize(k)
						local cur = im.GetCursorPos()
--                    im.SameLine()
					local sz = im.CalcTextSize(k)
					local cur = im.GetCursorPos()
			local t, i = 'Hidden', 6
			local width = im.CalcTextSize(t).x
			if im.InvisibleButton('ib'..i, im.ImVec2(width + 5, 20)) then
@/lua/ge/extensions/editor/dynamicDecalsTool.lua
      for _, section in ipairs(sections) do
        im.PushItemWidth(im.CalcTextSize("Texture Fill Layer Properties").x + 2 * im.GetStyle().FramePadding.x)
        im.InputText(string.format("##sectionsOrderPrefs_%s_nameInput", section.name), editor.getTempCharPtr(section.name), nil, im.InputTextFlags_ReadOnly)
@/lua/ge/extensions/editor/util/plotHelperUtil.lua
      end
      txtSize = im.CalcTextSize(txt)

      txtSize = im.CalcTextSize(txt)
@/lua/ge/extensions/editor/missionPlaybook/missionTreeViewer.lua
  im.SameLine()
  local width = math.max(im.CalcTextSize(node.name).x+20, nodeSize.x)
  local text = "BL  " .. mission.unlocks.maxBranchlevel
    local txtSize = im.CalcTextSize(text)
    txtSize.x = txtSize.x + 6
@/lua/ge/extensions/ui/console.lua

    local fsize = 24--*uiScale--im.CalcTextSize("test").y
    if gui.uiIconImageButton(gui.icons.delete, {x=fsize, y=fsize}, iconButtonFgColor.Value, nil, iconButtonBgColor.Value) then

    local imgsize = (im.CalcTextSize("yes_texture.dds").y + im.GetStyle().FramePadding.y * 2) / uiScale
      --       im.TextColored(lcol,"%s",tostring(v) )
      --       if v ~= 2 and im.GetContentRegionAvailWidth() < im.CalcTextSize(tostring(v)).x then
      --         im.tooltip(tostring(v))
      --       im.TextColored(lcol,"%s",tostring(v) )
      --       if v ~= 2 and im.GetContentRegionAvailWidth() < im.CalcTextSize(tostring(v)).x then
      --         im.tooltip(tostring(v))
              -- im.TextColored(lcol,"%s",tostring(v))
              local txtwidth = im.CalcTextSize(tostring(v)).x
              if v ~= 2 and im.GetContentRegionAvailWidth() < txtwidth then
  --   menuToolbar(uiScale)
  --   local imgsize = (im.CalcTextSize("yes_texture.dds").y + im.GetStyle().FramePadding.y * 2) / uiScale
@/lua/ge/extensions/flowgraph/nodes/gameplay/countdown.lua
      local txt = " - " .. (math.ceil(old)+1) .. " - "
      local tWidth = im.CalcTextSize(txt)
      if tWidth.x < avail.x then
@/lua/ge/extensions/editor/sceneTree.lua
  drewDragSeparator = false
  entrySize = round(math.max(imgui.CalcTextSize("W").y, smallIconSize.y * imgui.uiscale[0]) + imgui.GetStyle().FramePadding.y + 1) + 4
  for index, instance in pairs(guiInstancer.instances) do
        -- The first column will use the default _WidthStretch when ScrollX is Off and _WidthFixed when ScrollX is On
        local textBaseWidth = imgui.CalcTextSize('A').x
        imgui.TableSetupScrollFreeze(0, 1) -- Make top row always visible
@/lua/ge/extensions/editor/dynamicDecals/docs.lua
    im.PushFont3("cairo_regular_medium")
    local titleSize = im.CalcTextSize(windowName)
    im.SetCursorPosX(im.GetCursorPosX() + im.GetContentRegionAvailWidth() / 2 - titleSize.x / 2)
        im.PushFont3("cairo_regular_medium")
        local titleSize = im.CalcTextSize(currentSection.name)
        im.SetCursorPosX(im.GetCursorPosX() + im.GetContentRegionAvailWidth() / 2 - titleSize.x / 2)
@/lua/ge/extensions/editor/dynamicDecals/fonts.lua
  im.SameLine()
  im.PushItemWidth(im.GetContentRegionAvailWidth() - (im.GetStyle().ItemSpacing.x + im.CalcTextSize("Preview").x + 2 * im.GetStyle().FramePadding.x))
  if #generatedFontAtlases == 0 then im.BeginDisabled() end
@/lua/ge/extensions/editor/vehicleEditor/staticEditor/veStaticRenderView.lua
  -- Button to switch between ortho and perspective
  local btnWidth = im.CalcTextSize(">>>").x
  im.SetCursorPos(im.ImVec2(mainRVSize.x - btnWidth - 30, 200))
@/lua/ge/extensions/editor/audioEventsList.lua

    local stopButtonSize = im.CalcTextSize("Stop Current Sound")
@/lua/ge/extensions/editor/shortcutLegend.lua
        local controlName = prettyNames[action.control] or action.control
        completeNeededSpace = completeNeededSpace + (im.CalcTextSize(controlName).x + 2 * padding.x) + im.CalcTextSize(action.title).x + 25
      end
        local controlName = prettyNames[action.control] or action.control
        completeNeededSpace = completeNeededSpace + (im.CalcTextSize(controlName).x + 2 * padding.x) + im.CalcTextSize(action.title).x + 25
      end
        local controlName = prettyNames[action.control] or action.control
        local spaceNeeded = (im.CalcTextSize(controlName).x + 2 * padding.x) + im.CalcTextSize(action.title).x
        if spaceNeeded > restOfSpace then
        local controlName = prettyNames[action.control] or action.control
        local spaceNeeded = (im.CalcTextSize(controlName).x + 2 * padding.x) + im.CalcTextSize(action.title).x
        if spaceNeeded > restOfSpace then
        local topLeft = im.ImVec2(im.GetWindowPos().x + im.GetCursorPos().x - padding.x, im.GetWindowPos().y + im.GetCursorPos().y - im.GetScrollY())
        local bottomRight = im.ImVec2(topLeft.x + im.CalcTextSize(controlName).x + 2 * padding.x, topLeft.y + im.CalcTextSize(controlName).y + padding.y)
        local topLeft = im.ImVec2(im.GetWindowPos().x + im.GetCursorPos().x - padding.x, im.GetWindowPos().y + im.GetCursorPos().y - im.GetScrollY())
        local bottomRight = im.ImVec2(topLeft.x + im.CalcTextSize(controlName).x + 2 * padding.x, topLeft.y + im.CalcTextSize(controlName).y + padding.y)
@/lua/ge/extensions/editor/terrainEditor.lua
    local mtlName = mtl:getInternalName()
    local mtlNameWidth = im.CalcTextSize(mtlName).x
    paintMaterialProxies[k] = createMaterialProxy(k, mtl:getOrCreatePersistentID(), mtl, mtlName)
        im.SetCursorPosX(bottomButtonPosX)
        local autoPaintButtonPosX = im.GetCursorPosX() + im.GetContentRegionAvailWidth() - im.GetStyle().ItemSpacing.x - im.GetStyle().FramePadding.x - im.GetStyle().ItemInnerSpacing.x - im.CalcTextSize("Auto Paint").x
        if im.Button("Terrain Material Library...") then
        end
        if btnWidth < im.CalcTextSize(map.path).x + 2*var.style.ItemSpacing.x then
          im.tooltip(map.path)
    local winSize = im.GetWindowSize()
    local textWidthLeftBound = (im.CalcTextSize("Hard").x + var.style.ItemSpacing.x)
    local width = winSize.x-2*var.style.WindowPadding.x - textWidthLeftBound

    if editor.uiButtonRightAlign("Default", nil, true, "brushSoftnessCurve", (var.sc_curveWidgetSize - im.GetContentRegionAvailWidth()) - (im.CalcTextSize("Reset").x + var.style.ItemSpacing.x + 2*var.style.FramePadding.x) + textWidthLeftBound) then
      brushSoftnessCurve_Default()
  var.inputWidgetHeight = var.menuBarHeight
  var.channelComboWidth = im.CalcTextSize("R").x + 2*var.style.FramePadding.x + var.inputWidgetHeight
  var.materialComboWidth = var.maxMaterialNameWidth + 2*var.style.FramePadding.x + var.inputWidgetHeight
@/lua/ge/extensions/editor/dynamicDecals/helper.lua
  if not string_label then return end
  im.SetCursorPosX(im.GetCursorPosX() + im.GetContentRegionAvailWidth() / 2 - im.CalcTextSize(string_label).x / 2)
  im.TextUnformatted(string_label)
  if not string_label then return end
  im.SetCursorPosX(im.GetCursorPosX() + im.GetContentRegionAvailWidth() / 2 - im.CalcTextSize(string_label).x / 2)
  im.TextColored(color, string_label)
@/lua/ge/extensions/editor/flowgraph/references.lua
    if im.BeginTable("", 2) then
      im.TableSetupColumn("Behaviour", 0, im.CalcTextSize("Behaviour").x + 10)
      im.TableSetupColumn("Description", 0, im.GetContentRegionAvailWidth())
@/lua/common/extensions/ui/imgui_gen_luaintf.lua
  if string_text == nil then log("E", "", "Parameter 'string_text' of function 'CalcTextSize' cannot be nil, as the c type is 'const char *'") ; return end
  return imgui.CalcTextSize(string_text, string_text_end, bool_hide_text_after_double_hash, float_wrap_width)
end
@/lua/ge/extensions/editor/inspector.lua

        imgui.SetCursorPosX(size.x - (imgui.CalcTextSize("1.0").x) + 2*fontSize)
        imgui.TextUnformatted("1.0")
          local cursorPos = imgui.GetCursorPos()
          local uvValueWidgetWidth = imgui.CalcTextSize("Height").x
      for propertyIndex = 0, 3 do
        imgui.PushItemWidth(imgui.GetContentRegionAvailWidth() - imgui.CalcTextSize(metallicLabels[3]).x)
        if editor.getPreference("ui.general.useSlidersInInspector") then
  local coloredBGHeight = math.ceil(imgui.GetFontSize())
  local textWidth = imgui.CalcTextSize("W").x
  local textPadding = imgui.GetFontSize() - textWidth
@/lua/ge/extensions/gameplay/race/race.lua
  local eventLog = self.states[id].eventLog or {}
  local colWidth = im.CalcTextSize("99:99:999").x + 15 * im.uiscale[0]
  im.Text("Vehicle " .. id)
  local state = self.states[id]
  local colWidth = im.CalcTextSize("Total 99").x + 15 * im.uiscale[0]
  local ret = false
@/lua/ge/extensions/editor/api/valueInspector.lua
  local coloredBGHeight = math.ceil(imgui.GetFontSize())
  local textWidth = imgui.CalcTextSize("X").x
  local textPadding = imgui.GetFontSize() - textWidth
@/lua/ge/extensions/editor/flowgraph/properties.lua
      if pin.direction == 'in' then
        colWidth = math.max(colWidth, im.CalcTextSize(pin.name).x )
      end
      if pin.direction == 'out' then
        colWidth = math.max(colWidth, im.CalcTextSize(pin.name).x )
      end
@/lua/ge/extensions/flowgraph/pin.lua
    if not hide then
      local dnWidth = im.CalcTextSize(displayName)
      im.SetCursorPosX(xStart + outWidth - 16 - dnWidth.x - 3)
  if not hide then
    textWidth = im.CalcTextSize(displayName).x
    fixedPadding = 16
@/lua/ge/extensions/editor/api/gui.lua
  end
  imgui.SetCursorPosX(imgui.GetCursorPosX() + imgui.GetContentRegionAvailWidth() - imgui.CalcTextSize(string_label).x + ((offset) and offset or 0))
  imgui.TextUnformatted(string_label)
  end
  imgui.SetCursorPosX(imgui.GetCursorPosX() + imgui.GetContentRegionAvailWidth() - ((ImVec2_size and ImVec2_size.x > 0) and ImVec2_size.x or (imgui.CalcTextSize(string_label).x +  2*imgui.GetStyle().FramePadding.x)) + ((offset) and offset or 0))
  if imgui.Button((id) and string_label .. "##" .. id or string_label, ImVec2_size) then
    if textBG then
      local textSize = imgui.CalcTextSize(label)
      local topLeft = imgui.GetCursorScreenPos()
  local uiScale = ui_imgui.GetIO().FontGlobalScale --editor.getPreference("ui.general.scale")
  local imgsize = (imgui.CalcTextSize("yes").y + style.FramePadding.y * 2)
  imgui.BeginChild1("##InputSearch", imgui.ImVec2(width, imgsize + 2), false)
    if auto_resize then
      ImVec2_graph_size = imgui.ImVec2(imgui.GetWindowSize().x - 2*imgui.GetStyle().WindowPadding.x - imgui.CalcTextSize(string_label).x, imgui.GetWindowSize().y - 5*imgui.GetStyle().WindowPadding.y)
    else
@/lua/ge/extensions/editor/missionEditor.lua
    im.PopStyleVar()
    im.SetColumnWidth(0, im.CalcTextSize("MissionType").x +5)
    im.Text("Name: ")
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/countdown.lua
      local txt = " - " .. (math.ceil(old)+1) .. " - "
      local tWidth = im.CalcTextSize(txt)
      if tWidth.x < avail.x then
@/lua/ge/extensions/editor/dynamicDecals/news.lua
    im.PushFont3("cairo_regular_medium")
    local titleSize = im.CalcTextSize("Vehicle Livery Creator")
    im.SetCursorPosX(im.GetCursorPosX() + im.GetContentRegionAvailWidth() / 2 - titleSize.x / 2)
    im.SameLine()
    im.SetCursorPosX(im.GetCursorPosX() + im.GetContentRegionAvailWidth() - (im.CalcTextSize("Do not show again").x + 2*im.GetStyle().ItemSpacing.x + tool.getIconSize()))
    im.TextUnformatted("Do not show again")
@/lua/ge/extensions/editor/scriptAIManager.lua

    local colsize_1 = im.CalcTextSize("00000 - thePlayer - vehicleName -----")
    local colsize_2 = im.CalcTextSize("playing - 100% --")
    local colsize_1 = im.CalcTextSize("00000 - thePlayer - vehicleName -----")
    local colsize_2 = im.CalcTextSize("playing - 100% --")
    im.SetColumnWidth(0, colsize_1.x)
@/lua/ge/extensions/flowgraph/link.lua
    --ui_flowgraph_editor.Suspend()
    local txtSize = im.CalcTextSize(self.label)
    txtSize.x = txtSize.x + 6
@/lua/ge/extensions/editor/visualization.lua
    local avail = im.GetContentRegionAvailWidth()
    im.Dummy(vec2(math.max(1, avail - im.CalcTextSize(right).x - _uiScale(6)), 1))
    im.SameLine()
@/lua/ge/extensions/editor/veMain.lua

  local txtSize = im.CalcTextSize("FPS: 999 ").y + im.CalcTextSize("GpuWait: 00.0f ").y + im.CalcTextSize("Poly: 123456789").y
  im.SetCursorPosX(im.GetCursorPosX() + im.GetContentRegionAvailWidth() - txtSize*4)

  local txtSize = im.CalcTextSize("FPS: 999 ").y + im.CalcTextSize("GpuWait: 00.0f ").y + im.CalcTextSize("Poly: 123456789").y
  im.SetCursorPosX(im.GetCursorPosX() + im.GetContentRegionAvailWidth() - txtSize*4)

  local txtSize = im.CalcTextSize("FPS: 999 ").y + im.CalcTextSize("GpuWait: 00.0f ").y + im.CalcTextSize("Poly: 123456789").y
  im.SetCursorPosX(im.GetCursorPosX() + im.GetContentRegionAvailWidth() - txtSize*4)
@/lua/ge/extensions/flowgraph/utils.lua
  im.SetCursorPosY(im.GetCursorPosY() - im.GetTextLineHeight())
  local size = im.CalcTextSize(label)
@/lua/ge/extensions/editor/dynamicDecals/layerStack.lua
    local text = string.format("%.4fs", layer.status.bakingTime or -99)
    local textWidth = im.CalcTextSize(text).x
    im.SetCursorPosX(im.GetCursorPosX() + im.GetContentRegionAvailWidth() - textWidth)
  im.SameLine()
  if im.GetContentRegionAvailWidth() <= (im.GetStyle().ItemSpacing.x + 2*im.GetStyle().FramePadding.x + im.CalcTextSize("Add Texture Fill Layer").x - im.GetStyle().WindowPadding.x) then
    im.NewLine()
  im.SameLine()
  if im.GetContentRegionAvailWidth() <= (im.GetStyle().ItemSpacing.x + 2*im.GetStyle().FramePadding.x + im.CalcTextSize("Add Group").x - im.GetStyle().WindowPadding.x) then
    im.NewLine()
  im.SameLine()
  if im.GetContentRegionAvailWidth() <= (im.GetStyle().ItemSpacing.x + 2*im.GetStyle().FramePadding.x + im.CalcTextSize("Add Linked Set Layer").x - im.GetStyle().WindowPadding.x) then
    im.NewLine()

  if im.GetContentRegionAvailWidth() < im.CalcTextSize(layerCountText).x then
    im.NewLine()
    local topLayerText = "↓ Top Layer ↓"
    local topLayerTextSize = im.CalcTextSize(topLayerText)
    im.SetCursorPosX(im.GetCursorPosX() +  im.GetContentRegionAvailWidth() / 2 - topLayerTextSize.x / 2)
    local bottomLayerText = "↑ Bottom Layer ↑"
    local bottomLayerTextSize = im.CalcTextSize(bottomLayerText)
    im.SetCursorPosX(im.GetCursorPosX() +  im.GetContentRegionAvailWidth() / 2 - bottomLayerTextSize.x / 2)
    local bottomLayerText = "↓ Bottom Layer ↓"
    local bottomLayerTextSize = im.CalcTextSize(bottomLayerText)
    im.SetCursorPosX(im.GetCursorPosX() +  im.GetContentRegionAvailWidth() / 2 - bottomLayerTextSize.x / 2)
    local topLayerText = "↑ Top Layer ↑"
    local topLayerTextSize = im.CalcTextSize(topLayerText)
    im.SetCursorPosX(im.GetCursorPosX() +  im.GetContentRegionAvailWidth() / 2 - topLayerTextSize.x / 2)
@/lua/ge/extensions/editor/flowgraph/nodelibrary.lua
  im.SetCursorPos(cursor)
  local itemSize = im.CalcTextSize((read and "Get " or "Set ")..var.name)
  itemSize.x = itemSize.x + im.GetFontSize() + padding.x * 3
  im.SetCursorPos(cursor)
  local itemSize = im.CalcTextSize(macroName)
  itemSize.x = itemSize.x + im.GetFontSize() + padding.x * 3
  im.SetCursorPos(cursor)
  local itemSize = im.CalcTextSize(btnText)
  itemSize.x = itemSize.x + im.GetFontSize() + padding.x * 3
  im.SetCursorPos(cursor)
  local itemSize = im.CalcTextSize(btnText)
  itemSize.x = itemSize.x + im.GetFontSize() + padding.x * 3
  im.SetCursorPos(cursor)
  local itemSize = im.CalcTextSize(stateName)
  itemSize.x = itemSize.x + im.GetFontSize() + padding.x * 3
    im.SetCursorPos(cursor)
    local itemSize = im.CalcTextSize(nodeName)
    itemSize.x = itemSize.x + im.GetFontSize() + padding.x * 3
@/lua/ge/extensions/editor/flowgraph/garbageDebug.lua
  local valueText = tostring(entry.value) .. " " .. self.valueUnit
  local valueTextSize = im.CalcTextSize(valueText)
  im.SameLine()
@/lua/ge/extensions/editor/textEditor.lua
    if editor.beginWindow(wndName, "Text Editor " .. idsToString(instance.objIds) .. " " .. instance.fieldName .. "##" .. index) then
      if editor.uiInputTextMultiline('##text' .. index, instance.textInput, textInputSize, imgui.ImVec2(imgui.GetContentRegionAvailWidth(), imgui.GetWindowSize().y - imgui.CalcTextSize('Cancel Ok').y * 4), imgui.InputTextFlags_AllowTabInput, nil, nil, nil) then
      end
@/lua/ge/extensions/editor/dynamicDecals/layerTypes/decal.lua
    im.SameLine()
    im.SetCursorPosX(im.GetCursorPosX() + im.GetContentRegionAvailWidth() - (im.CalcTextSize("Do not show again").x + 2*im.GetStyle().ItemSpacing.x + tool.getIconSize()))
    im.TextUnformatted("Do not show again")
  local style = im.GetStyle()
  local widgetWidth = im.GetContentRegionAvailWidth() - (style.ItemSpacing.x + 2 * style.FramePadding.x + im.CalcTextSize("Inv").x)
  if widgets.draw(api.getDecalRotation(), api.propertiesMap["decalRotation"], guiId, nil, {widthMod = -(style.ItemSpacing.x + 2 * style.FramePadding.x + im.CalcTextSize("Inv").x)}) then
  local widgetWidth = im.GetContentRegionAvailWidth() - (style.ItemSpacing.x + 2 * style.FramePadding.x + im.CalcTextSize("Inv").x)
  if widgets.draw(api.getDecalRotation(), api.propertiesMap["decalRotation"], guiId, nil, {widthMod = -(style.ItemSpacing.x + 2 * style.FramePadding.x + im.CalcTextSize("Inv").x)}) then
    api.setDecalRotation(api.propertiesMap["decalRotation"].value)
  local style = im.GetStyle()
  local widthMod = im.CalcTextSize("Debug").x + 4 * style.ItemSpacing.x + 3 * tool.getIconSize() + 4 * style.FramePadding.x
  if widgets.draw(api.getMirrorOffset(), mirrorOffsetProperty, guiId, editor.getTempBool_BoolBool(false), {widthMod = -widthMod}) then
    im.SameLine()
    im.PushItemWidth(im.GetContentRegionAvailWidth() - (im.CalcTextSize("Select").x + 3 * im.GetStyle().ItemSpacing.x))
    if im.InputText(string.format("##%s_%s", guiId, "decalLayerFontCharacter"), editor.getTempCharPtr(api.getDecalLayerFontCharacter()), nil, im.InputTextFlags_AutoSelectAll) then
@/lua/ge/extensions/editor/camPathEditor.lua

        local text_size = im.CalcTextSize(text)
        local x_position = (window_width - text_size.x) / 2
@/lua/ge/extensions/editor/vehicleEditor/veToolbar.lua
local function getCameraTodSlidersSize()
  return camSpeedSliderSize + todSliderSize + im.CalcTextSize(" Camera Speed  Time of day ").x
end
@/lua/ge/extensions/editor/biomeTool.lua
  local fieldData = getFieldByNameFunc("LayerName", layerType, layerID)
  local textSize = imgui.CalcTextSize("Blending Method:").x
  local posX = imgui.GetCursorPosX()
    if getTerrLayerMask(layerID) == "" then
      local textSize = imgui.CalcTextSize("No Mask Selected!")
      local posX = 100 - textSize.x/2
  if noBrushSelected then
    local noBrushTextSize = imgui.CalcTextSize("No Brush Selected!")
    imgui.SetCursorPos(imgui.ImVec2(90 - noBrushTextSize.x/2, 50 - noBrushTextSize.y/2))
  else
    imgui.SetCursorPosX(posXCol2 + imgui.CalcTextSize("Density:").x + 25)
  end
  if noBrushSelected then
    local noBrushTextSize = imgui.CalcTextSize("No Brush Selected!")
    imgui.SetCursorPos(imgui.ImVec2(90 - noBrushTextSize.x/2, 50 - noBrushTextSize.y/2))
  if not shouldWrap then
    imgui.SetCursorPosX(posXCol2 + imgui.CalcTextSize("Density:").x + 25)
  else
    if noBrushSelected then
      local noBrushTextSize = imgui.CalcTextSize("No Brush Selected!")
      imgui.SetCursorPos(imgui.ImVec2(90 - noBrushTextSize.x/2, 50 - noBrushTextSize.y/2))
    local noAreaText = "N O   L A S S O   A R E A   A V A I L A B L E !"
    imgui.SetCursorPos(imgui.ImVec2(imgui.GetContentRegionAvail().x/2 - imgui.CalcTextSize(noAreaText).x/2, imgui.GetContentRegionAvail().y/2))
    imgui.PushStyleColor2(imgui.Col_Text, imgui.ImVec4(1, 0, 0, 1));
  if isDrawingLassoArea then
    local txtSize = imgui.CalcTextSize("Please draw the area on map")
    imgui.SetCursorPosX(cursorPosMsg - math.abs(buttonSize.x - txtSize.x)/2)
    local noAreaText = "N O   T E R R A I N   L A Y E R   A V A I L A B L E !"
    imgui.SetCursorPos(imgui.ImVec2(imgui.GetContentRegionAvail().x/2 - imgui.CalcTextSize(noAreaText).x/2, imgui.GetContentRegionAvail().y/2))
    imgui.PushStyleColor2(imgui.Col_Text, imgui.ImVec4(1, 0, 0, 1));
    local noAreaText = "N O   L A Y E R   S E L E C T E D !"
    imgui.SetCursorPos(imgui.ImVec2(imgui.GetContentRegionAvail().x/2 - imgui.CalcTextSize(noAreaText).x/2, imgui.GetContentRegionAvail().y/2))
    imgui.PushStyleColor2(imgui.Col_Text, imgui.ImVec4(1, 0, 0, 1));
    local noAreaText = "N O   A R E A   L A Y E R   A V A I L A B L E !"
    imgui.SetCursorPos(imgui.ImVec2(imgui.GetContentRegionAvail().x/2 - imgui.CalcTextSize(noAreaText).x/2, imgui.GetContentRegionAvail().y/2))
    imgui.PushStyleColor2(imgui.Col_Text, imgui.ImVec4(1, 0, 0, 1));
    local noAreaText = "N O   L A Y E R   S E L E C T E D !"
    imgui.SetCursorPos(imgui.ImVec2(imgui.GetContentRegionAvail().x/2 - imgui.CalcTextSize(noAreaText).x/2, imgui.GetContentRegionAvail().y/2))
    imgui.PushStyleColor2(imgui.Col_Text, imgui.ImVec4(1, 0, 0, 1));