LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

Можешь представить что active это структура со следующими полями типов bool:

NK_EDIT_ACTIVE - The text field is currently focused
NK_EDIT_INACTIVE - The text field is not focused
NK_EDIT_ACTIVATED - The text field has just received focus
NK_EDIT_DEACTIVATED - The text field has just lost focus
NK_EDIT_COMMITED - The user pressed Enter to submit the text in the field
Проверить, есть ли в active поле NK_EDIT_COMMITED со значением true, можно через
if (active & NK_EDIT_COMMITED) {
  // поле NK_EDIT_COMMITED = true
}
Полей может быть одновременно несколько в состоянии true.

https://dietertack.medium.com/using-bit-flags-in-c-d39ec6e30f08


В коде nuklear.h очень хорошие комментарии, можно просто выполнять поиск по nk_edit_string и читать их, можно узнавать интересные особенности и внутреннее устройство, сам код контролов тоже очень простой.

Обрати внимание, что ты вызываешь atoi до установки '\0', делать это нужно после установки '\0', или просто можно воспользоваться функцией которую я подсказал, или скопировать ее поведение.

NK_API nk_flags
nk_edit_string_zero_terminated(struct nk_context *ctx, nk_flags flags,
    char *buffer, int max, nk_plugin_filter filter)
{
    nk_flags result;
    int len = nk_strlen(buffer);
    result = nk_edit_string(ctx, flags, buffer, &len, max, filter);
    buffer[NK_MIN(NK_MAX(max-1,0), len)] = '\0';
    return result;
}

Исправление MOPKOBKA, :

Можешь представить что active это структура со следующими полями типов bool:

NK_EDIT_ACTIVE - The text field is currently focused
NK_EDIT_INACTIVE - The text field is not focused
NK_EDIT_ACTIVATED - The text field has just received focus
NK_EDIT_DEACTIVATED - The text field has just lost focus
NK_EDIT_COMMITED - The user pressed Enter to submit the text in the field
Проверить, есть ли в active поле NK_EDIT_COMMITED со значением true, можно через
if (active & NK_EDIT_COMMITED) {
  // поле NK_EDIT_COMMITED = true
}
Полей может быть одновременно несколько в состоянии true.

https://dietertack.medium.com/using-bit-flags-in-c-d39ec6e30f08


В коде nuklear.h очень хорошие комментарии, можно просто выполнять поиск по nk_edit_string и читать их, можно узнавать интересные особенности и внутреннее устройство, сам код контролов тоже очень простой.

Исправление MOPKOBKA, :

Можешь представить что active это структура со следующими полями типов bool:

NK_EDIT_ACTIVE - The text field is currently focused
NK_EDIT_INACTIVE - The text field is not focused
NK_EDIT_ACTIVATED - The text field has just received focus
NK_EDIT_DEACTIVATED - The text field has just lost focus
NK_EDIT_COMMITED - The user pressed Enter to submit the text in the field
Проверить, есть ли в active поле NK_EDIT_COMMITED со значением true, можно через
if (active & NK_EDIT_COMMITED) {
  // поле NK_EDIT_COMMITED = true
}
Полей может быть одновременно несколько в состоянии true.

https://dietertack.medium.com/using-bit-flags-in-c-d39ec6e30f08

Исходная версия MOPKOBKA, :

Можешь представить что active это структура со следующими полями типов bool:

NK_EDIT_ACTIVE - The text field is currently focused
NK_EDIT_INACTIVE - The text field is not focused
NK_EDIT_ACTIVATED - The text field has just received focus
NK_EDIT_DEACTIVATED - The text field has just lost focus
NK_EDIT_COMMITED - The user pressed Enter to submit the text in the field
Проверить, есть ли в active поле NK_EDIT_COMMITED со значением true, можно через
if (active & NK_EDIT_COMMITED) {
  // есть поле NK_EDIT_COMMITED
}
Полей может быть одновременно несколько в состоянии true.

https://dietertack.medium.com/using-bit-flags-in-c-d39ec6e30f08