срочная помощь с imgui

Tema05

Известный
Автор темы
1,474
439
Версия MoonLoader
.026-beta
Как в input text можно получить текст после курсора мыши? Неважно в какой момент можно получить эти данные и в каком месте.
нашёл вроде как то что мне нужно в imgui.lua не пока не пойму как это использовать
C++:
// Shared state of InputText(), passed to callback when a ImGuiInputTextFlags_Callback* flag is used and the corresponding callback is triggered.
struct ImGuiTextEditCallbackData
{
    ImGuiInputTextFlags EventFlag;      // One of ImGuiInputTextFlags_Callback* // Read-only
    ImGuiInputTextFlags Flags;          // What user passed to InputText()      // Read-only
    void*               UserData;       // What user passed to InputText()      // Read-only
    bool                ReadOnly;       // Read-only mode                       // Read-only

    // CharFilter event:
    ImWchar             EventChar;      // Character input                      // Read-write (replace character or set to zero)

    // Completion,History,Always events:
    // If you modify the buffer contents make sure you update 'BufTextLen' and set 'BufDirty' to true.
    ImGuiKey            EventKey;       // Key pressed (Up/Down/TAB)            // Read-only
    char*               Buf;            // Current text buffer                  // Read-write (pointed data only, can't replace the actual pointer)
    int                 BufTextLen;     // Current text length in bytes         // Read-write
    int                 BufSize;        // Maximum text length in bytes         // Read-only
    bool                BufDirty;       // Set if you modify Buf/BufTextLen!!   // Write
    int                 CursorPos;      //                                      // Read-write
    int                 SelectionStart; //                                      // Read-write (== to SelectionEnd when no selection)
    int                 SelectionEnd;   //                                      // Read-write

    // NB: Helper functions for text manipulation. Calling those function loses selection.
    IMGUI_API void    DeleteChars(int pos, int bytes_count);
    IMGUI_API void    InsertChars(int pos, const char* text, const char* text_end = NULL);
    bool    HasSelection() const { return SelectionStart != SelectionEnd; }
};
 
Последнее редактирование:

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,656
2,541
Можно парочку примеров очень хороших изменений

IMGUI_API bool BeginTabBar(const char* str_id, ImGuiTabBarFlags flags = 0); // create and append into a TabBar
IMGUI_API void EndTabBar(); // only call EndTabBar() if BeginTabBar() returns true!
IMGUI_API bool BeginTabItem(const char* label, bool* p_open = NULL, ImGuiTabItemFlags flags = 0); // create a Tab. Returns true if the Tab is selected.
IMGUI_API void EndTabItem(); // only call EndTabItem() if BeginTabItem() returns true!
IMGUI_API bool TabItemButton(const char* label, ImGuiTabItemFlags flags = 0); // create a Tab behaving like a button. return true when clicked. cannot be selected in the tab bar.
IMGUI_API void SetTabItemClosed(const char* tab_or_docked_window_label); // notify TabBar or Docking system of a closed tab/window ahead (useful to reduce visual flicker on reorderable tab bars). For tab-bar: call after BeginTabBar() and before Tab submissions. Otherwise call with a window name.

1. никакия из этих функций не будет работать
2. нет подгрузки данных из памяти (base85)

и ещё вот этих приколов нет, это то самое, о чём ты спросил тут

void SelectAll() { SelectionStart = 0; SelectionEnd = BufTextLen; }
void ClearSelection() { SelectionStart = SelectionEnd = BufTextLen; }
 

Tema05

Известный
Автор темы
1,474
439
IMGUI_API bool BeginTabBar(const char* str_id, ImGuiTabBarFlags flags = 0); // create and append into a TabBar
IMGUI_API void EndTabBar(); // only call EndTabBar() if BeginTabBar() returns true!
IMGUI_API bool BeginTabItem(const char* label, bool* p_open = NULL, ImGuiTabItemFlags flags = 0); // create a Tab. Returns true if the Tab is selected.
IMGUI_API void EndTabItem(); // only call EndTabItem() if BeginTabItem() returns true!
IMGUI_API bool TabItemButton(const char* label, ImGuiTabItemFlags flags = 0); // create a Tab behaving like a button. return true when clicked. cannot be selected in the tab bar.
IMGUI_API void SetTabItemClosed(const char* tab_or_docked_window_label); // notify TabBar or Docking system of a closed tab/window ahead (useful to reduce visual flicker on reorderable tab bars). For tab-bar: call after BeginTabBar() and before Tab submissions. Otherwise call with a window name.

1. никакия из этих функций не будет работать
2. нет подгрузки данных из памяти (base85)

и ещё вот этих приколов нет, это то самое, о чём ты спросил тут

void SelectAll() { SelectionStart = 0; SelectionEnd = BufTextLen; }
void ClearSelection() { SelectionStart = SelectionEnd = BufTextLen; }
Как может быть плюсом отсутствие этого?
 

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,656
2,541
Аааа ну с tab ой как согласен, нехватает. А что с либами по тиму addon piemenu? Есть аналоги под mimgui?
перепиши, там в нескольких местах нужно слегка переписать, ничего сложного
запусти, где ошибка -- там измени так, как нужно, не бойся, никаких синусов, косинусов не нужно редактировать
 
  • Нравится
Реакции: Tema05

Tema05

Известный
Автор темы
1,474
439
перепиши, там в нескольких местах нужно слегка переписать, ничего сложного
запусти, где ошибка -- там измени так, как нужно, не бойся, никаких синусов, косинусов не нужно редактировать
Я прост щас делают невероятно продуманный редактор бинда и тяжело вникать ещё раз. Пока что мне понравилось combostr frame с условием и несколько фреймов. Топ по оптимизации. Правда не понял что это после функции фрейма. end).HideCursor = true
 

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,656
2,541
Я прост щас делают невероятно продуманный редактор бинда и тяжело вникать ещё раз. Пока что мне понравилось combostr frame с условием и несколько фреймов. Топ по оптимизации. Правда не понял что это после функции фрейма. end).HideCursor = true
 

Tema05

Известный
Автор темы
1,474
439

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,656
2,541
Я как раз там это увидел, нужно время чтобы понять всё это.
frame.HideCursor = not imgui.ShowCursor
frame.LockPlayer = этого вообще нет в мунимгуи, ток в мимгуи
для каждого фрейма свои переменные, они работают только когда фрейм активен
 

Tema05

Известный
Автор темы
1,474
439
в старом имгуи название структуры другое, должно работать:
Lua:
function edit_callback(data)
    sampAddChatMessage('test', -1)
    return 0
end

local edit_callback = ffi.cast('int (*)(ImGuiTextEditCallbackData* data)', edit_callback)


они (плюсы) имеются, и все, кто используют мунимгуи -- показывают, что либо они новички, либо они не умеют изучать что-то без документации.
к слову, в мимгуи мало изменений в части кода, но очень удобные изменения и оптимизация лучше (Проверено)
крашится declaration specifier expected near 'ImGuiTextEditCallbackData'
 

Tema05

Известный
Автор темы
1,474
439
Знач беги на мимгуи
Я хочу доделать и выпустить скрипт, на изучение mimgui переделывание скрипта и подзагрузок уйдёт много времени.
Это можно как-то сделать раз оно есть в файле.
Делаю вердикт что в moonimgui не возможно реализовать задуманное, буду переходить на mimgui.
 
Последнее редактирование:

Tema05

Известный
Автор темы
1,474
439
[QUOTE = "Pelemexa, post: 583185, member: 277576"]
Посмотрел в imgui.lua (mimgui), там нет TabItemButton, но есть BeginTabBar, BeginTabItem они отлично работают, но не TabItemButton. Как можно добавить/обновить?
[/ QUOTE]
Скорее всего табличные данные взяты не из mimgui поищи tab
 

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,656
2,541