HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 02.11.2019, 16:27
ImPasha
Познавший АНТИЧАТ
Регистрация: 28.10.2017
Сообщений: 1,778
С нами: 4495573

Репутация: 183


По умолчанию

Простенькая функция, которая позволяет рисовать поле для ввода в ImGUI с текстовой подсказкой на нём. Подсказка пропадает, если пользователь выделяет поле для ввода нажатием на него, либо вводит какую-либо информацию. Может быть проблема с Y-смещением, рекомендуется использовать стандартный стиль ImGUI.

C++:





Код:
static
bool
InputTextWithPH
(
const
char
*
placeholder
,
const
char
*
text
,
char
*
buf
,
size_t buf_size
,
ImGuiInputTextFlags flags
=
0
,
ImGuiInputTextCallback callback
=
(
ImGuiInputTextCallback
)
0
,
void
*
user_data
=
(
void
*
)
0
)
{
ImVec2 cursor
[
2
]
;
cursor
[
0
]
=
ImGui
::
GetCursorPos
(
)
;
bool
result
=
ImGui
::
InputText
(
text
,
buf
,
buf_size
,
flags
,
callback
,
user_data
)
;
if
(
placeholder
!=
NULL
&&
strlen
(
placeholder
)
>
0
)
{
if
(
!
ImGui
::
IsItemActive
(
)
&&
strlen
(
buf
)
==
0
)
{
cursor
[
1
]
=
ImGui
::
GetCursorPos
(
)
;
ImGui
::
SetCursorPos
(
ImVec2
(
cursor
[
0
]
.
x
+
5
,
cursor
[
0
]
.
y
+
2
)
)
;
ImGui
::
Text
(
placeholder
)
;
ImGui
::
SetCursorPos
(
cursor
[
1
]
)
;
}
}
return
result
;
}
// Пример использования
InputTextWithPH
(
u8
"Любой текст"
,
"##t1"
,
testText
,
sizeof
testText
)
;


В новых версиях ImGUI есть стандартная функция InputTextWithHint, использовать лучше её!
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.