Гайд ImGUI - делаем элемент по центру

Тема в разделе "C/C++", создана пользователем Mozze.cpp, 11 фев 2019.

  1. Mozze.cpp

    Mozze.cpp Интересующийся

    Регистрация:
    18 фев 2017
    Сообщения:
    193
    Симпатии:
    65
    В последней версии ImGui я не нашел ImGui::Align или что-то такого, по-этому выкладываю этот способ.

    Вставляем перед элементом:
    ImGui::SetCursorPosX((ImGui::GetWindowWidth() - Ширина элемента) / 2);
    Должно получиться так:
    
    ImGui::SetCursorPosX((ImGui::GetWindowWidth() - 75) / 2);
    ImGui::Button(u8"Закрыть", ImVec2(75, 20));
    
    [​IMG]

    Так же можно использовать этот способ и с несколькими элементами.
    Только в ширину элемента вписываем уже ширину двух элементов вместе взятых.

    Должно получиться так:
    ImGui::SetCursorPosX((ImGui::GetWindowWidth() - 150 + ImGui::GetStyle().ItemSpacing.x) / 2);
    ImGui::Button(u8"Сохранить", ImVec2(75, 20));
    ImGui::SameLine();
    ImGui::Button(u8"Закрыть", ImVec2(75, 20));
    [​IMG]

    Как это проделать с текстом?
    ImGui::SetCursorPosX((ImGui::GetWindowWidth() - ImGui::CalcTextSize(u8"Какой-то текст").x) / 2);
    ImGui::Text(u8"Какой-то текст");
    Должно получиться так:
    [​IMG]
     
    #1 Mozze.cpp, 11 фев 2019
    Последнее редактирование: 14 фев 2019
    social enemy, CleanLegend, 1V4N M4RK3L0V и 4 другим нравится это.
  2. MrCreepTon

    MrCreepTon поехавший
    Проверенный

    Регистрация:
    9 авг 2015
    Сообщения:
    215
    Симпатии:
    179
    Я как истинный говнокодер выравниваю текстом пустым :angel:
     
    mr.krabs, _=Gigant=_, utmpL и 3 другим нравится это.
  3. Mozze.cpp

    Mozze.cpp Интересующийся

    Регистрация:
    18 фев 2017
    Сообщения:
    193
    Симпатии:
    65
    Если юзер будет менять размер окна, то думаю ему будет не очень приятно такое видеть))
     
  4. ShuffleBoy

    ShuffleBoy vk.com/shufflescripts
    Проверенный

    Регистрация:
    11 мар 2018
    Сообщения:
    728
    Симпатии:
    335
    можно запретить менять размер :roflanebalo:
     
    CatKnight, AppleThe, Mozze.cpp и 4 другим нравится это.
  5. TAKYS

    TAKYS Участник

    Регистрация:
    20 май 2017
    Сообщения:
    22
    Симпатии:
    3
    А если не знаешь как запретить изменять размер, то за границей окна можно сделать кнопку и подписать "вернуть как было" :)
     
    romacaddy и Mozze.cpp нравится это.
  6. social enemy

    social enemy может, хуевый лидер, но моя рука не дрогнет
    Проверенный

    Регистрация:
    2 авг 2018
    Сообщения:
    585
    Симпатии:
    184
    На луа переведет кто?)
     
  7. imring

    imring чо тут
    Всефорумный модератор

    Регистрация:
    3 авг 2016
    Сообщения:
    1.721
    Симпатии:
    1.066
    изи же
    
    local ImVec2 = imgui.ImVec2
    
    imgui.SetCursorPosX((imgui.GetWindowWidth() - 75) / 2)
    imgui.Button(u8"Закрыть", ImVec2(75, 20))
    
     
    social enemy нравится это.
  8. ufdhbi

    ufdhbi уфдхби
    Проверенный

    Регистрация:
    3 фев 2015
    Сообщения:
    789
    Симпатии:
    312
    забыл перед ImVec2 imgui
     
  9. DonHomka

    Друг

    Регистрация:
    8 ноя 2017
    Сообщения:
    2.344
    Симпатии:
    1.455
    local ImVec2 =
     
    ufdhbi нравится это.
  10. Mozze.cpp

    Mozze.cpp Интересующийся

    Регистрация:
    18 фев 2017
    Сообщения:
    193
    Симпатии:
    65
    Улучшил способ.
    Добавил текст.
     
    Barry_Bradley нравится это.
  11. JmZ

    JmZ Новичок

    Регистрация:
    5 мар 2019
    Сообщения:
    3
    Симпатии:
    2
    Нельзя ли просто сделать using namespace ImGui;?