4#define FUCK_API_VERSION 2
168 return static_cast<WindowFlags>(
static_cast<int>(a) |
static_cast<int>(b));
172 return (
static_cast<int>(a) &
static_cast<int>(b)) != 0;
176 return static_cast<TableFlags>(
static_cast<int>(a) |
static_cast<int>(b));
180 return static_cast<TableColumnFlags>(
static_cast<int>(a) |
static_cast<int>(b));
184 return static_cast<DragDropFlags>(
static_cast<int>(a) |
static_cast<int>(b));
188 return (
static_cast<int>(a) &
static_cast<int>(b)) != 0;
192 return static_cast<ItemFlags>(
static_cast<int>(a) |
static_cast<int>(b));
196 return (
static_cast<int>(a) &
static_cast<int>(b)) != 0;
210 return static_cast<HotkeyFlags>(
static_cast<int>(a) |
static_cast<int>(b));
214 return (
static_cast<int>(a) &
static_cast<int>(b)) != 0;
249 virtual const char*
Name()
const = 0;
250 virtual const char*
Group()
const {
return nullptr; }
269 virtual const char*
Id()
const = 0;
277 virtual const char*
Title()
const = 0;
346 void (*
CalcTextSize)(
const char*,
const char*, bool, float,
float*,
float*);
366 const char* (*GetTranslation)(
const char*);
369 void (*
LoadPluginINI)(
const char* pluginName,
void* userdata, void (*callback)(CSimpleIniA&,
void*));
370 void (*
SavePluginINI)(
const char* pluginName,
void* userdata, void (*callback)(CSimpleIniA&,
void*));
372 void (*
LoadPluginKeybinds)(
const char* pluginName,
void* userdata, void (*callback)(CSimpleIniA&,
void*));
373 void (*
SavePluginKeybinds)(
const char* pluginName,
void* userdata, void (*callback)(CSimpleIniA&,
void*));
384 void (*
AddMenuListener)(
void* userdata, void (*callback)(
const char* menuName,
bool opening,
void* userdata));
388 void* (*LoadImage)(
const char*, bool);
391 void* (*GetIconForKey)(std::uint32_t);
393 void (*
Spinner)(
const char*, float, float,
const ImVec4&);
409 const char* (*GetKeyName)(std::uint32_t);
447 const ImGuiPayload* (*AcceptDragDropPayload)(
const char*, int);
451 void (*
DrawRect)(
const ImVec2&,
const ImVec2&,
const ImVec4&, float, float);
453 void (*
DrawLine)(
const ImVec2&,
const ImVec2&,
const ImVec4&, float);
454 void (*
DrawImage)(
void*,
const ImVec2&,
const ImVec2&,
const ImVec2&,
const ImVec4&);
455 void (*
DrawImageQuad)(
void*,
const ImVec2&,
const ImVec2&,
const ImVec2&,
const ImVec2&,
const ImVec2&,
456 const ImVec2&,
const ImVec2&,
const ImVec2&,
const ImVec4&);
457 void (*
AddImage)(
void*,
const ImVec2&,
const ImVec2&,
const ImVec2&,
const ImVec2&,
const ImVec4&);
488 bool (*
Hotkey)(
const char*, std::uint32_t, std::int32_t, std::int32_t, bool, bool, bool);
493 bool (*
SliderFloat)(
const char*,
float*, float, float,
const char*);
494 bool (*
SliderInt)(
const char*,
int*, int, int,
const char*);
495 bool (*
DragInt)(
const char*,
int*, float, int, int,
const char*);
496 bool (*
DragFloat)(
const char*,
float*, float, float, float,
const char*);
497 bool (*
DragFloat2)(
const char*,
float[2], float, float, float,
const char*);
498 bool (*
DragFloat3)(
const char*,
float[3], float, float, float,
const char*);
499 bool (*
DragFloat4)(
const char*,
float[4], float, float, float,
const char*);
500 bool (*
Combo)(
const char*,
int*,
const char*
const*, int);
502 bool (*
ComboForm)(
const char*, std::uint32_t*, std::uint8_t);
505 ImGuiTableSortSpecs* (*GetTableSortSpecs)();
516 bool (*
ImageButton)(
const char*,
void*, float, float,
const ImVec4*);
517 void (*
Stepper)(
const char*,
const char*,
bool*,
bool*);
524 bool (*
BeginTable)(
const char*, int, int,
const ImVec2&, float);
582 if (!pluginName || pluginName[0] ==
'\0')
584 SKSE::log::error(
"FUCK API Connection failed: You must provide a valid pluginName.");
588 auto handle = GetModuleHandleW(L
"FUCK.dll");
591 auto fetcher = (
void* (*)())GetProcAddress(handle,
"RequestFUCK");
595 if (!iface || iface->version < a_minVersion)
597 SKSE::log::error(
"FUCK API Version Mismatch: Expected {}, found {}", a_minVersion, iface ? iface->version : 0);
607 SKSE::log::info(
"Connected to FUCK API version {}", iface->version);
614 i->RegisterTool(tool);
619 i->RegisterWindow(window);
624 i->UnregisterWindow(window);
655inline ImVec2
Scale(
float x,
float y)
659inline ImVec2
Scale(
const ImVec2& value)
683 i->GetDisplaySize(&s.x, &s.y);
695 i->TranslateScaleformToScreen(stageX, stageY, &screenPos.x, &screenPos.y);
709 i->SuspendRendering(suspend);
714 i->SetMenuOpen(open);
719 return i->IsMenuOpen();
727inline void PushFont(ImFont* font,
float size = 0.0f)
730 i->PushFont(font, size);
740 i->SetWindowFontScale(scale);
746 i->PushStyleColor(idx, col);
751 i->PopStyleColor(count);
756 i->PushStyleVar(idx, val);
761 i->PushStyleVarVec(idx, val);
766 i->PopStyleVar(count);
777 i->GetStyleVarVec(idx, &v.x, &v.y);
782 ImVec4 v(0, 0, 0, 0);
784 i->GetStyleColorVec4(idx, &v.x, &v.y, &v.z, &v.w);
823 i->GetCursorPos(&p.x, &p.y);
829 i->SetCursorPos(pos.x, pos.y);
835 i->GetCursorScreenPos(&p.x, &p.y);
841 i->SetCursorScreenPos(pos.x, pos.y);
846 i->AlignTextToFramePadding();
852 i->GetContentRegionAvail(&s.x, &s.y);
859inline ImVec2
CalcTextSize(
const char* text,
const char* text_end =
nullptr,
bool hide_text_after_double_hash =
false,
860 float wrap_width = -1.0f)
864 i->CalcTextSize(text, text_end, hide_text_after_double_hash, wrap_width, &s.x, &s.y);
872 i->GetItemRectMin(&p.x, &p.y);
879 i->GetItemRectMax(&p.x, &p.y);
886 return ImVec2(max.x - min.x, max.y - min.y);
891 i->SetNextItemWidth(width);
896 i->SetNextItemOpen(is_open, cond);
899inline void Dummy(
const ImVec2& size)
902 i->Dummy(size.x, size.y);
908 for (
int k = 0; k < count; ++k)
922inline void SameLine(
float offset_from_start_x = 0.0f,
float spacing = -1.0f)
925 i->SameLine(offset_from_start_x, spacing);
940 i->SeparatorText(label);
956 i->BeginDisabled(disabled);
966 i->PushID_Str(str_id);
971 i->PushID_Int(int_id);
976 i->PushID_Ptr(ptr_id);
986 i->PushItemFlag(flag, enabled);
1010 i->GetMouseDelta(&p.x, &p.y);
1017 i->GetMousePos(&p.x, &p.y);
1027 i->SetGameTimeFrozen(frozen);
1032 i->SetAutoVanityBlocked(blocked);
1037 i->SetHardPause(paused);
1042 i->SetSoftPause(paused);
1047 i->ForceCursor(force);
1088inline void StartBinding(std::uint32_t key, std::int32_t mod1, std::int32_t mod2,
bool disallowModifiers =
false)
1091 i->StartBinding(key, mod1, mod2, disallowModifiers);
1094 std::int32_t* outMod2)
1099 std::int32_t* outMod2)
1176 i->SetKeyboardFocusHere(offset);
1181 i->SetItemDefaultFocus();
1199 i->EndDragDropSource();
1212 i->EndDragDropTarget();
1223inline bool Checkbox(
const char* label,
bool* v,
bool alignFar =
true,
bool labelLeft =
true)
1227inline bool Hotkey(
const char* label, std::uint32_t key, std::int32_t modifier, std::int32_t modifier2,
1228 bool alignFar =
true,
bool labelLeft =
true,
bool flashing =
false)
1233inline bool ToggleButton(
const char* label,
bool* v,
bool alignFar =
true,
bool labelLeft =
true)
1237inline bool InputText(
const char* label,
char* buf,
size_t buf_size,
int flags = 0)
1241inline bool ColorEdit3(
const char* label,
float col[3],
int flags = 0)
1245inline bool ColorEdit4(
const char* label,
float col[4],
int flags = 0)
1249inline bool SliderFloat(
const char* label,
float* v,
float min,
float max,
const char* fmt =
"%.3f")
1253inline bool SliderInt(
const char* label,
int* v,
int min,
int max,
const char* fmt =
"%d")
1257inline bool DragInt(
const char* label,
int* v,
float speed = 1.0f,
int min = 0,
int max = 0,
const char* fmt =
"%d")
1261inline bool DragFloat(
const char* label,
float* v,
float speed = 1.0f,
float min = 0.0f,
float max = 0.0f,
1262 const char* fmt =
"%.3f")
1266inline bool DragFloat2(
const char* label,
float v[2],
float speed = 1.0f,
float min = 0.0f,
float max = 0.0f,
1267 const char* fmt =
"%.3f")
1271inline bool DragFloat3(
const char* label,
float v[3],
float speed = 1.0f,
float min = 0.0f,
float max = 0.0f,
1272 const char* fmt =
"%.3f")
1276inline bool DragFloat4(
const char* label,
float v[4],
float speed = 1.0f,
float min = 0.0f,
float max = 0.0f,
1277 const char* fmt =
"%.3f")
1281inline bool Combo(
const char* label,
int* current_item,
const char*
const* items,
int items_count)
1285inline bool ComboWithFilter(
const char* label,
int* current_item,
const char*
const* items,
int items_count,
1286 int popup_max_height_in_items = -1)
1292inline bool ComboForm(
const char* label, std::uint32_t* currentFormID, std::uint8_t formType)
1296inline bool ComboForm(
const char* label, std::string* currentEdid, std::uint8_t formType)
1301 strncpy_s(buf,
sizeof(buf), currentEdid->c_str(), _TRUNCATE);
1302 if (
GetInterface()->ComboFormStr(label, buf,
sizeof(buf), formType))
1310inline bool Selectable(
const char* label,
bool selected =
false,
int flags = 0,
const ImVec2& size = ImVec2(0, 0))
1328 i->LeftLabel(label);
1333 i->CenteredText(label, vertical);
1343 i->HelpMarker(desc);
1352 va_start(args, fmt);
1354 vsnprintf(buf, 1024, fmt, args);
1356 i->TextColored(color, buf);
1364 va_start(args, fmt);
1366 vsnprintf(buf, 1024, fmt, args);
1368 i->TextColoredWrapped(col, buf);
1376 va_start(args, fmt);
1378 vsnprintf(buf, 1024, fmt, args);
1380 i->TextDisabled(buf);
1382inline void Text(
const char* fmt, ...)
1388 va_start(args, fmt);
1390 vsnprintf(buf, 1024, fmt, args);
1400 va_start(args, fmt);
1402 vsnprintf(buf, 1024, fmt, args);
1404 i->TextWrapped(buf);
1409 i->TextUnformatted(text, text_end);
1412inline bool ButtonIconWithLabel(
const char* label, ImTextureID textureID,
const ImVec2& size,
bool alignFar =
true,
1413 bool labelLeft =
true)
1416 size.y, alignFar, labelLeft)
1419inline bool ImageButton(
const char* str_id, ImTextureID user_texture_id,
const ImVec2& image_size,
1420 const ImVec4* tint =
nullptr)
1426inline void Stepper(
const char* label,
const char* text,
bool* outLeft,
bool* outRight)
1429 i->Stepper(label, text, outLeft, outRight);
1436inline bool BeginWindow(
const char* name,
bool* p_open =
nullptr,
int flags = 0)
1448 i->ExtendWindowPastBorder();
1455 i->GetWindowPos(&p.x, &p.y);
1458 return ImVec2(0, 0);
1465 i->GetWindowSize(&p.x, &p.y);
1468 return ImVec2(0, 0);
1473 i->SetWindowPos(pos.x, pos.y, cond);
1478 i->SetWindowSize(size.x, size.y, cond);
1480inline void SetNextWindowPos(
const ImVec2& pos,
int cond = 0,
const ImVec2& pivot = ImVec2(0, 0))
1483 i->SetNextWindowPos(pos.x, pos.y, cond, pivot.x, pivot.y);
1488 i->SetNextWindowSize(size.x, size.y, cond);
1491inline void BeginChild(
const char* str_id,
const ImVec2& size = ImVec2(0, 0),
bool border =
false,
int flags = 0)
1494 i->BeginChild(str_id, size.x, size.y, border, flags);
1507 float p =
Scale(padding);
1508 PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(p, p));
1569 const ImVec2& outer_size = ImVec2(0.0f, 0.0f),
float inner_width = 0.0f)
1583 i->TableSetBgColor(
static_cast<int>(target), color, column_n);
1599 float newWeight = childWidth / totalWidth;
1600 if (std::abs(inOutWeight - newWeight) > 0.01f)
1602 inOutWeight = newWeight;
1610 float init_width_or_weight = 0.0f, std::uint32_t user_id = 0)
1613 i->TableSetupColumn(label,
static_cast<int>(flags), init_width_or_weight, user_id);
1618 i->TableNextRow(row_flags, min_row_height);
1627 i->TableHeadersRow();
1630inline void Columns(
int count = 1,
const char*
id =
nullptr,
bool border =
true)
1633 i->Columns(count,
id, border);
1650 i->GetIconSizeForKey(key, &outSize->x, &outSize->y);
1651 return reinterpret_cast<ImTextureID
>(i->GetIconForKey(key));
1653 return static_cast<ImTextureID
>(0);
1655inline void Spinner(
const char* label,
float radius,
float thickness,
const ImVec4& color)
1658 i->Spinner(label, radius, thickness, color);
1660inline void DrawOverlay(
Overlay type,
float thickness = 1.0f, ImU32 color = 0,
float paramA = 0.0f,
float paramB = 0.0f,
1661 float paramC = 0.0f,
float paramD = 0.0f)
1664 i->DrawOverlay(type, thickness, color, paramA, paramB, paramC, paramD);
1666inline void DrawGrid(
float thickness = 0.0f, ImU32 color = 0,
float rows = 3.0f,
float cols = 3.0f,
1667 float rotationDeg = 0.0f)
1671inline void DrawCrosshair(
float thickness = 1.0f, ImU32 color = 0,
float rows = 1.0f,
float cols = 1.0f)
1675inline void DrawGoldenSpiral(
float thickness = 1.0f, ImU32 color = 0,
int anchorIndex = 0,
float turns = 6.0f,
1676 float rotationDeg = 0.0f,
float scale = 1.0f,
bool showSquares =
false)
1678 float pA =
static_cast<float>(anchorIndex) + (showSquares ? 10.0f : 0.0f);
1681inline void DrawGoldenGrid(
float thickness = 1.0f, ImU32 color = 0,
int subdivisions = 0)
1685inline void DrawTriangle(
float thickness = 1.0f, ImU32 color = 0,
bool mirror =
false)
1690inline void DrawRect(
const ImVec2& min,
const ImVec2& max,
const ImVec4& col,
float rounding = 0.0f,
1691 float thickness = 1.0f)
1694 i->DrawRect(min, max, col, rounding, thickness);
1696inline void DrawRectFilled(
const ImVec2& min,
const ImVec2& max,
const ImVec4& col,
float rounding = 0.0f)
1699 i->DrawRectFilled(min, max, col, rounding);
1701inline void DrawLine(
const ImVec2& p1,
const ImVec2& p2,
const ImVec4& col,
float thickness = 1.0f)
1704 i->DrawLine(p1, p2, col, thickness);
1706inline void DrawImage(ImTextureID textureId,
const ImVec2& size,
const ImVec2& uv0 = ImVec2(0, 0),
1707 const ImVec2& uv1 = ImVec2(1, 1),
const ImVec4& tint_col = ImVec4(1, 1, 1, 1))
1710 i->DrawImage((
void*)textureId, size, uv0, uv1, tint_col);
1712inline void DrawImageQuad(ImTextureID textureId,
const ImVec2& p1,
const ImVec2& p2,
const ImVec2& p3,
const ImVec2& p4,
1713 const ImVec2& uv1,
const ImVec2& uv2,
const ImVec2& uv3,
const ImVec2& uv4,
1714 const ImVec4& tint_col = ImVec4(1, 1, 1, 1))
1717 i->DrawImageQuad((
void*)textureId, p1, p2, p3, p4, uv1, uv2, uv3, uv4, tint_col);
1719inline void AddImage(ImTextureID textureId,
const ImVec2& min,
const ImVec2& max,
const ImVec2& uv0 = ImVec2(0, 0),
1720 const ImVec2& uv1 = ImVec2(1, 1),
const ImVec4& col = ImVec4(1, 1, 1, 1))
1723 i->AddImage((
void*)textureId, min, max, uv0, uv1, col);
1728 i->DrawBackgroundImage((
void*)tex, alpha);
1733 i->DrawBackgroundLine(p1.x, p1.y, p2.x, p2.y, col, thickness);
1738 i->DrawBackgroundRect(min, max, col, thickness);
1740inline void DrawScreenRect(
const ImVec2& min,
const ImVec2& max, ImU32 col,
float rounding = 0.0f,
1741 float thickness = 1.0f)
1744 i->DrawScreenRect(min, max, col, rounding, thickness);
1749 i->DrawScreenRectFilled(min, max, col, rounding);
1751inline void DrawScreenLine(
const ImVec2& p1,
const ImVec2& p2, ImU32 col,
float thickness = 1.0f)
1754 i->DrawScreenLine(p1.x, p1.y, p2.x, p2.y, col, thickness);
1768 i->LoadTranslation(pluginName);
1773 i->SanitizePath(dest, source, size);
1778 i->GetPluginConfigPath(pluginName, dest, size);
1781inline void AddMenuListener(
void* userdata,
void (*callback)(
const char* menuName,
bool opening,
void* userdata))
1784 i->AddMenuListener(userdata, callback);
1789 i->RemoveMenuListener(userdata);
1801 Image(
const char* a_path,
bool a_resizeToScreen =
false)
1805 _handle = i->LoadImage(a_path, a_resizeToScreen);
1816 other._handle =
nullptr;
1817 other._width = 0.0f;
1818 other._height = 0.0f;
1828 other._handle =
nullptr;
1829 other._width = 0.0f;
1830 other._height = 0.0f;
1839 operator ImTextureID()
const {
return (ImTextureID)
_handle; }
1874 using INIFunc = std::function<void(CSimpleIniA&)>;
1882 [](CSimpleIniA& ini,
void* ud) { (*
static_cast<INIFunc*
>(ud))(ini); });
1891 [](CSimpleIniA& ini,
void* ud) { (*
static_cast<INIFunc*
>(ud))(ini); });
1901 [](CSimpleIniA& ini,
void* ud) { (*
static_cast<INIFunc*
>(ud))(ini); });
1910 [](CSimpleIniA& ini,
void* ud) { (*
static_cast<INIFunc*
>(ud))(ini); });
1919 [](CSimpleIniA& ini,
void* ud) { (*
static_cast<INIFunc*
>(ud))(ini); });
1927 i->LoadPluginKeybindsDefaults(
_pluginName, &a_func,
1928 [](CSimpleIniA& ini,
void* ud) { (*
static_cast<INIFunc*
>(ud))(ini); });
1935 char buf[512] = {0};
1937 i->GetPluginConfigPath(
_pluginName, buf,
sizeof(buf));
1938 return std::string(buf);
1954 strncpy_s(dest, N, source, _TRUNCATE);
1958inline void StringCopy(
char (&dest)[N],
const std::string& source)
1960 strncpy_s(dest, N, source.c_str(), _TRUNCATE);
1966inline bool LoadBool(
const CSimpleIniA& ini,
const char* sec,
const char* key,
bool defVal)
1968 return ini.GetBoolValue(sec, key, defVal);
1971inline float LoadFloat(
const CSimpleIniA& ini,
const char* sec,
const char* key,
float defVal)
1973 return static_cast<float>(ini.GetDoubleValue(sec, key,
static_cast<double>(defVal)));
1977template <
typename T>
1978inline T
LoadInt(
const CSimpleIniA& ini,
const char* sec,
const char* key, T defVal)
1980 static_assert(std::is_integral_v<T> || std::is_enum_v<T>,
"FUCK::INI::LoadInt requires integral or enum types.");
1981 return static_cast<T
>(ini.GetLongValue(sec, key,
static_cast<long>(defVal)));
1984inline void SaveBool(CSimpleIniA& ini,
const char* sec,
const char* key,
bool val,
bool defVal)
1987 ini.Delete(sec, key,
true);
1989 ini.SetBoolValue(sec, key, val);
1993template <
typename T,
typename U>
1994inline void SaveInt(CSimpleIniA& ini,
const char* sec,
const char* key, T val, U defVal)
1996 static_assert(std::is_integral_v<T> && std::is_integral_v<U>,
"FUCK::INI::SaveInt requires integral types.");
1997 if (val ==
static_cast<T
>(defVal))
1999 ini.Delete(sec, key,
true);
2003 ini.SetLongValue(sec, key,
static_cast<long>(val));
2007inline void SaveDouble(CSimpleIniA& ini,
const char* sec,
const char* key,
double val,
double defVal,
2008 const char* fmt =
"%.2f")
2010 if (std::abs(val - defVal) < 0.00001)
2012 ini.Delete(sec, key,
true);
2017 snprintf(buf,
sizeof(buf), fmt, val);
2018 ini.SetValue(sec, key, buf);
2022inline void SaveString(CSimpleIniA& ini,
const char* sec,
const char* key,
const char* val,
const char* defVal)
2024 if (strcmp(val, defVal) == 0)
2025 ini.Delete(sec, key,
true);
2027 ini.SetValue(sec, key, val);
2031inline void LoadString(
const CSimpleIniA& ini,
const char* sec,
const char* key,
char (&dest)[N],
const char* defVal)
2033 const char* val = ini.GetValue(sec, key, defVal);
2034 strncpy_s(dest, N, val, _TRUNCATE);
2042 using Callback = std::function<void(
const char* menuName,
bool opening)>;
2069 other._callback =
nullptr;
2076 static void Dispatch(
const char* menuName,
bool opening,
void* userdata)
2085 float iconScale = 1.0f,
float labelScale = 1.0f)
2088 return i->DrawManagedHotkey(label, &h,
static_cast<int>(flags), iconScale, labelScale);
2122 float thickness = 2.0f,
bool screenSpace =
false,
const ImVec2* customAnchor =
nullptr)
2128 boundsColor = IM_COL32(150, 150, 150, 150);
2131 boundsColor = IM_COL32(51, 204, 51, 255);
2134 boundsColor = IM_COL32(0, 255, 0, 255);
2138 boundsColor = IM_COL32(204, 51, 255, 255);
2148 ImVec4 colV4 = ImGui::ColorConvertU32ToFloat4(boundsColor);
2149 DrawRect(min, max, colV4, 0.0f, thickness);
2153 customAnchor ? *customAnchor : ImVec2(min.x + (max.x - min.x) * 0.5f, min.y + (max.y - min.y) * 0.5f);
2154 float crossSize =
Scale(10.0f);
2155 ImU32 anchorColor = IM_COL32(255, 0, 0, 204);
2159 DrawScreenLine({anchor.x - crossSize, anchor.y}, {anchor.x + crossSize, anchor.y}, anchorColor, 2.0f);
2160 DrawScreenLine({anchor.x, anchor.y - crossSize}, {anchor.x, anchor.y + crossSize}, anchorColor, 2.0f);
2164 ImVec4 anchorV4 = ImGui::ColorConvertU32ToFloat4(anchorColor);
2165 DrawLine({anchor.x - crossSize, anchor.y}, {anchor.x + crossSize, anchor.y}, anchorV4, 2.0f);
2166 DrawLine({anchor.x, anchor.y - crossSize}, {anchor.x, anchor.y + crossSize}, anchorV4, 2.0f);
2175 if (displaySize.x <= 0.0f || displaySize.y <= 0.0f)
2180 bool changed =
false;
2181 float tolerance =
Scale(outOfBoundsTolerance);
2184 if (pos.x > displaySize.x - tolerance)
2186 pos.x = std::max(0.0f, displaySize.x - tolerance);
2189 else if (pos.x < 0.0f)
2196 if (pos.y > displaySize.y - tolerance)
2198 pos.y = std::max(0.0f, displaySize.y - tolerance);
2201 else if (pos.y < 0.0f)
2220 float tolerance = 50.0f)
2223 if (displaySize.x <= 100.0f || displaySize.y <= 100.0f)
2228 bool changed =
false;
2230 if (pos.x < 0.0f || pos.y < 0.0f)
2235 else if (!outHasClamped)
2241 outHasClamped =
true;
2248inline bool WASDNudge(
float& outDeltaX,
float& outDeltaY,
bool isActiveOrHovered,
float step = 1.0f,
2249 float sprintMult = 10.0f)
2261 outDeltaY -= moveStep;
2263 outDeltaY += moveStep;
2265 outDeltaX -= moveStep;
2267 outDeltaX += moveStep;
2269 return (outDeltaX != 0.0f || outDeltaY != 0.0f);
2272inline bool Combo(
const char* label,
int* current_item,
const std::vector<std::string>& items)
2274 std::vector<const char*> ptrs(items.size());
2275 for (
size_t i = 0; i < items.size(); ++i)
2276 ptrs[i] = items[i].c_str();
2277 return Combo(label, current_item, ptrs.data(),
static_cast<int>(ptrs.size()));
2280inline bool ComboWithFilter(
const char* label,
int* current_item, std::span<const std::string> items,
2281 int popup_max_height_in_items = -1)
2283 std::vector<const char*> ptrs(items.size());
2284 for (
size_t i = 0; i < items.size(); ++i)
2285 ptrs[i] = items[i].c_str();
2287 static_cast<int>(ptrs.size()), popup_max_height_in_items)
2291inline bool InputText(
const char* label, std::string* str,
int flags = 0)
2296 strncpy_s(buf,
sizeof(buf), str->c_str(), _TRUNCATE);
2297 const bool changed =
InputText(label, buf,
sizeof(buf), flags);
2303template <
typename T>
2304bool EnumStepper(
const char* label, T* current_val,
const std::vector<std::string>& items,
bool a_translate =
true)
2309 int idx =
static_cast<int>(*current_val);
2312 if (idx >=
static_cast<int>(items.size()))
2313 idx =
static_cast<int>(items.size()) - 1;
2315 bool l =
false, r =
false;
2317 const char* displayText = a_translate ?
Translate(items[idx].c_str()) : items[idx].c_str();
2319 Stepper(label, displayText, &l, &r);
2323 *current_val =
static_cast<T
>((idx - 1 +
static_cast<int>(items.size())) %
static_cast<int>(items.size()));
2328 *current_val =
static_cast<T
>((idx + 1) %
static_cast<int>(items.size()));
2341 i->SeparatorVertical();
2347 i->PushItemWidth(item_width);
2359 return i->BeginTooltip();
2372 i->SetScrollHereY(center_y_ratio);
2375inline bool InputTextMultiline(
const char* label,
char* buf,
size_t buf_size,
const ImVec2& size = ImVec2(0, 0),
2379 return i->InputTextMultiline(label, buf, buf_size, size, flags);
2383inline bool InputTextMultiline(
const char* label, std::string* str,
const ImVec2& size = ImVec2(0, 0),
int flags = 0)
2389 strncpy_s(buf,
sizeof(buf), str->c_str(), _TRUNCATE);
2403inline const char*
operator""_T(
const char* str, std::size_t)
#define FUCK_API_VERSION
Definition FUCK_API.h:4
Implement this to add a floating, independent Window to the FUCK framework.
Definition FUCK_API.h:262
virtual bool IsOpen() const =0
virtual WindowFlags GetFlags() const
Definition FUCK_API.h:283
virtual const char * PluginName() const
The exact name of your SKSE plugin.
Definition FUCK_API.h:273
virtual void SetOpen(bool a_open)=0
virtual bool OnAsyncInput(const void *)
Definition FUCK_API.h:287
virtual ImVec2 GetDefaultSize() const
Definition FUCK_API.h:284
virtual const char * Id() const =0
Unique identifier for this specific window within your plugin.
virtual ~IWindow()=default
virtual void RenderOverlay()
Definition FUCK_API.h:280
virtual ImVec2 GetDefaultPos() const
Definition FUCK_API.h:285
virtual const char * Title() const =0
Display title shown on the Window chrome. Translates natively if a localized string key is passed.
float GetWidth() const
Definition FUCK_API.h:1842
Image & operator=(Image &&other) noexcept
Definition FUCK_API.h:1820
Image(const char *a_path, bool a_resizeToScreen=false)
Definition FUCK_API.h:1801
Image & operator=(const Image &)=delete
bool IsLoaded() const
Definition FUCK_API.h:1837
float _width
Definition FUCK_API.h:1860
Image(Image &&other) noexcept
Definition FUCK_API.h:1811
ImVec2 GetSize() const
Definition FUCK_API.h:1844
float GetHeight() const
Definition FUCK_API.h:1843
float _height
Definition FUCK_API.h:1861
void * _handle
Definition FUCK_API.h:1859
ImTextureID GetID() const
Definition FUCK_API.h:1838
void Reset()
Definition FUCK_API.h:1846
Image(const Image &)=delete
~Image()
Definition FUCK_API.h:1810
void SaveKeybinds(INIFunc a_func) const
Definition FUCK_API.h:1913
const char * _pluginName
Definition FUCK_API.h:1942
std::function< void(CSimpleIniA &)> INIFunc
Definition FUCK_API.h:1874
void LoadKeybindsDefaults(INIFunc a_func) const
Definition FUCK_API.h:1922
std::string GetConfigDirectory() const
Returns the absolute path string pointing to this plugin's dedicated config folder.
Definition FUCK_API.h:1933
void LoadKeybinds(INIFunc a_func) const
Definition FUCK_API.h:1904
void LoadDefaults(INIFunc a_func) const
Loads the default shipped INI, ignoring user settings.
Definition FUCK_API.h:1895
void Save(INIFunc a_func) const
Definition FUCK_API.h:1885
PluginSettings(const char *a_pluginName=FUCK::g_pluginName)
Definition FUCK_API.h:1869
void Load(INIFunc a_func) const
Definition FUCK_API.h:1876
Delta save/load INI values.
Definition FUCK_API.h:1965
float LoadFloat(const CSimpleIniA &ini, const char *sec, const char *key, float defVal)
Definition FUCK_API.h:1971
void SaveDouble(CSimpleIniA &ini, const char *sec, const char *key, double val, double defVal, const char *fmt="%.2f")
Definition FUCK_API.h:2007
void LoadString(const CSimpleIniA &ini, const char *sec, const char *key, char(&dest)[N], const char *defVal)
Definition FUCK_API.h:2031
bool LoadBool(const CSimpleIniA &ini, const char *sec, const char *key, bool defVal)
Definition FUCK_API.h:1966
void SaveString(CSimpleIniA &ini, const char *sec, const char *key, const char *val, const char *defVal)
Definition FUCK_API.h:2022
void SaveInt(CSimpleIniA &ini, const char *sec, const char *key, T val, U defVal)
Definition FUCK_API.h:1994
T LoadInt(const CSimpleIniA &ini, const char *sec, const char *key, T defVal)
Definition FUCK_API.h:1978
void SaveBool(CSimpleIniA &ini, const char *sec, const char *key, bool val, bool defVal)
Definition FUCK_API.h:1984
PosInitResult InitializeCustomPosition(ImVec2 &pos, const ImVec2 &defaultPos, bool &outHasClamped, float tolerance=50.0f)
Handles first-frame initialization, default loading, and screen clamping for custom-positioned window...
Definition FUCK_API.h:2219
void SuspendRendering(bool suspend)
Definition FUCK_API.h:706
void SanitizePath(char *dest, const char *source, size_t size)
Definition FUCK_API.h:1770
float GetDeltaTime()
Definition FUCK_API.h:998
void AddMenuListener(void *userdata, void(*callback)(const char *menuName, bool opening, void *userdata))
Definition FUCK_API.h:1781
bool UpdateProportionalWeight(float &inOutWeight, float totalWidth)
Utility to capture a Table Column's width ratio upon releasing the mouse. Returns true when the weigh...
Definition FUCK_API.h:1594
bool EnumStepper(const char *label, T *current_val, const std::vector< std::string > &items, bool a_translate=true)
Definition FUCK_API.h:2304
void PushStyleVar(ImGuiStyleVar idx, float val)
Definition FUCK_API.h:753
void EndPanelFrame(float padding=8.0f)
Closes the panel opened by BeginPanelFrame.
Definition FUCK_API.h:1516
void EndTabBar()
Definition FUCK_API.h:1553
void TableSetBgColor(TableBgTarget target, ImU32 color, int column_n=-1)
Definition FUCK_API.h:1580
void SeparatorVertical()
Definition FUCK_API.h:2338
bool IsKeyPressed(ImGuiKey key, bool repeat=true)
Definition FUCK_API.h:1168
bool IsPopupOpen(const char *str_id=nullptr, PopupFlags flags=PopupFlags::kNone)
Definition FUCK_API.h:1108
bool BeginTabItem(const char *label, int flags=0)
Definition FUCK_API.h:1558
void BeginGroup()
Definition FUCK_API.h:943
float GetFrameHeight()
Definition FUCK_API.h:796
bool WASDNudge(float &outDeltaX, float &outDeltaY, bool isActiveOrHovered, float step=1.0f, float sprintMult=10.0f)
WASD key widget nudging.
Definition FUCK_API.h:2248
ImVec2 GetWindowPos()
Definition FUCK_API.h:1450
void TreePop()
Definition FUCK_API.h:1529
bool BeginWindow(const char *name, bool *p_open=nullptr, int flags=0)
Definition FUCK_API.h:1436
void SetGameTimeFrozen(bool frozen)
Definition FUCK_API.h:1024
bool TreeNode(const char *label)
Definition FUCK_API.h:1525
void Columns(int count=1, const char *id=nullptr, bool border=true)
Definition FUCK_API.h:1630
TableBgTarget
Definition FUCK_API.h:59
@ kRowBg1
Definition FUCK_API.h:62
@ kCellBg
Definition FUCK_API.h:63
@ kRowBg0
Definition FUCK_API.h:61
bool TableNextColumn()
Definition FUCK_API.h:1620
bool IsItemFocused()
Definition FUCK_API.h:1124
const char * GetKeyName(std::uint32_t k)
Definition FUCK_API.h:1070
bool IsGamepadKey(std::uint32_t k)
Definition FUCK_API.h:1074
bool IsModifierPressed(Modifier mod)
Definition FUCK_API.h:1062
void PopFont()
Definition FUCK_API.h:732
void SetMenuOpen(bool open)
Definition FUCK_API.h:711
bool DragFloat3(const char *label, float v[3], float speed=1.0f, float min=0.0f, float max=0.0f, const char *fmt="%.3f")
Definition FUCK_API.h:1271
bool SliderInt(const char *label, int *v, int min, int max, const char *fmt="%d")
Definition FUCK_API.h:1253
void Indent(float width=0.0f)
Definition FUCK_API.h:912
ImVec2 GetMousePos()
Definition FUCK_API.h:1013
bool InputText(const char *label, char *buf, size_t buf_size, int flags=0)
Definition FUCK_API.h:1237
void DrawScreenRectFilled(const ImVec2 &min, const ImVec2 &max, ImU32 col, float rounding=0.0f)
Definition FUCK_API.h:1746
bool BeginTable(const char *str_id, int column, TableFlags flags=TableFlags::kNone, const ImVec2 &outer_size=ImVec2(0.0f, 0.0f), float inner_width=0.0f)
Definition FUCK_API.h:1568
void Unindent(float width=0.0f)
Definition FUCK_API.h:917
ImVec2 GetItemRectMax()
Definition FUCK_API.h:875
void Header(const char *label)
Definition FUCK_API.h:1320
float GetColumnWidth(int column_index=-1)
Definition FUCK_API.h:1586
void TextColored(const ImVec4 &color, const char *fmt,...)
Definition FUCK_API.h:1346
bool InvisibleButton(const char *str_id, const ImVec2 &size, int flags=0)
Definition FUCK_API.h:1219
Modifier
Definition FUCK_API.h:37
@ kAlt
Definition FUCK_API.h:40
@ kShift
Definition FUCK_API.h:38
@ kCtrl
Definition FUCK_API.h:39
bool IsAnyItemActive()
Definition FUCK_API.h:1136
ImVec2 TranslateScaleformToScreen(float stageX, float stageY)
Converts standard 1280x720 Flash Stage coordinates into physical screen pixels (accounting for Aspect...
Definition FUCK_API.h:691
void TextWrapped(const char *fmt,...)
Definition FUCK_API.h:1394
bool BeginTooltip()
Definition FUCK_API.h:2356
void CenteredText(const char *label, bool vertical=false)
Definition FUCK_API.h:1330
const ImGuiPayload * AcceptDragDropPayload(const char *type, DragDropFlags flags=DragDropFlags::kNone)
Definition FUCK_API.h:1205
InputDevice
Definition FUCK_API.h:31
@ kGamepad
Definition FUCK_API.h:33
@ kMouseKeyboard
Definition FUCK_API.h:32
bool UpdateManagedHotkey(const void *e, ManagedHotkey &h)
Definition FUCK_API.h:2092
void DrawEditorBounds(const ImVec2 &min, const ImVec2 &max, EditorBoundsState state=EditorBoundsState::kNormal, float thickness=2.0f, bool screenSpace=false, const ImVec2 *customAnchor=nullptr)
Visual for UI widget editing. Handles Screen-Space and Window-Space.
Definition FUCK_API.h:2121
float GetResolutionScale()
Gets the physical screen resolution scale multiplier (Base 1080p).
Definition FUCK_API.h:632
void DrawGoldenSpiral(float thickness=1.0f, ImU32 color=0, int anchorIndex=0, float turns=6.0f, float rotationDeg=0.0f, float scale=1.0f, bool showSquares=false)
Definition FUCK_API.h:1675
ImVec2 GetCursorScreenPos()
Definition FUCK_API.h:831
void ForceCursor(bool force)
Definition FUCK_API.h:1044
void RegisterTool(ITool *tool)
Definition FUCK_API.h:611
void SetNextItemOpen(bool is_open, int cond=0)
Definition FUCK_API.h:893
ImTextureID GetIconForKey(std::uint32_t key, ImVec2 *outSize=nullptr)
Definition FUCK_API.h:1645
void EndTabItem()
Definition FUCK_API.h:1562
bool ComboForm(const char *label, std::uint32_t *currentFormID, std::uint8_t formType)
Definition FUCK_API.h:1292
EditorBoundsState
Definition FUCK_API.h:51
@ kNormal
Definition FUCK_API.h:53
@ kHovered
Definition FUCK_API.h:55
@ kSelected
Definition FUCK_API.h:54
@ kLocked
Definition FUCK_API.h:52
void RegisterWindow(IWindow *window)
Definition FUCK_API.h:616
void SetCursorPosY(float y)
Definition FUCK_API.h:814
bool SliderFloat(const char *label, float *v, float min, float max, const char *fmt="%.3f")
Definition FUCK_API.h:1249
TableColumnFlags
Definition FUCK_API.h:112
@ kWidthFixed
Definition FUCK_API.h:118
@ kNoSortAscending
Definition FUCK_API.h:124
@ kNoHeaderLabel
Definition FUCK_API.h:126
@ kNone
Definition FUCK_API.h:113
@ kIndentDisable
Definition FUCK_API.h:131
@ kIndentEnable
Definition FUCK_API.h:130
@ kNoReorder
Definition FUCK_API.h:120
@ kNoSortDescending
Definition FUCK_API.h:125
@ kDisabled
Definition FUCK_API.h:114
@ kNoHeaderWidth
Definition FUCK_API.h:127
@ kPreferSortDescending
Definition FUCK_API.h:129
@ kNoSort
Definition FUCK_API.h:123
@ kDefaultSort
Definition FUCK_API.h:116
@ kNoHide
Definition FUCK_API.h:121
@ kDefaultHide
Definition FUCK_API.h:115
@ kWidthStretch
Definition FUCK_API.h:117
@ kPreferSortAscending
Definition FUCK_API.h:128
@ kNoClip
Definition FUCK_API.h:122
void StringCopy(char(&dest)[N], const char *source)
String copy utility.
Definition FUCK_API.h:1947
PosInitResult
Definition FUCK_API.h:2211
@ kUnchanged
Definition FUCK_API.h:2213
@ kChanged
Definition FUCK_API.h:2214
@ kNotReady
Definition FUCK_API.h:2212
void DrawRectFilled(const ImVec2 &min, const ImVec2 &max, const ImVec4 &col, float rounding=0.0f)
Definition FUCK_API.h:1696
bool IsBinding()
Definition FUCK_API.h:1084
void BeginDisabled(bool disabled=true)
Definition FUCK_API.h:953
bool IsMenuOpen()
Definition FUCK_API.h:716
void SetWindowSize(const ImVec2 &size, int cond=0)
Definition FUCK_API.h:1475
void TextColoredWrapped(const ImVec4 &col, const char *fmt,...)
Definition FUCK_API.h:1358
bool InputTextMultiline(const char *label, char *buf, size_t buf_size, const ImVec2 &size=ImVec2(0, 0), int flags=0)
Definition FUCK_API.h:2375
ImVec2 GetStyleVarVec(ImGuiStyleVar idx)
Definition FUCK_API.h:773
void SetScrollHereY(float center_y_ratio=0.5f)
Definition FUCK_API.h:2369
HotkeyFlags
Definition FUCK_API.h:200
@ kNone
Definition FUCK_API.h:201
@ kCtrlToRebind
Definition FUCK_API.h:204
@ kLabelRight
Definition FUCK_API.h:203
@ kAlwaysHighlight
Definition FUCK_API.h:205
@ kNoModifiers
Definition FUCK_API.h:206
@ kAlignNear
Definition FUCK_API.h:202
void PopStyleColor(int count=1)
Definition FUCK_API.h:748
void DrawGrid(float thickness=0.0f, ImU32 color=0, float rows=3.0f, float cols=3.0f, float rotationDeg=0.0f)
Definition FUCK_API.h:1666
void Stepper(const char *label, const char *text, bool *outLeft, bool *outRight)
Definition FUCK_API.h:1426
const char * Translate(const char *key)
Definition FUCK_API.h:1761
void SetCursorPos(const ImVec2 &pos)
Definition FUCK_API.h:826
void DrawBackgroundRect(const ImVec2 &min, const ImVec2 &max, ImU32 col, float thickness)
Definition FUCK_API.h:1735
void SeparatorText(const char *label)
Definition FUCK_API.h:937
void LoadTranslation(const char *pluginName)
Definition FUCK_API.h:1765
WindowFlags
Definition FUCK_API.h:68
@ kNoDecoration
Definition FUCK_API.h:78
@ kAutoResize
Definition FUCK_API.h:83
@ kCustomPosition
Definition FUCK_API.h:85
@ kCloseOnEsc
Definition FUCK_API.h:76
@ kNone
Definition FUCK_API.h:69
@ kExtendBorder
Definition FUCK_API.h:80
@ kPauseHard
Definition FUCK_API.h:70
@ kBlurBackground
Definition FUCK_API.h:74
@ kPassInputToGame
Definition FUCK_API.h:75
@ kPauseSoft
Definition FUCK_API.h:71
@ kBlockVanity
Definition FUCK_API.h:72
@ kHideHUD
Definition FUCK_API.h:73
@ kNoBackground
Definition FUCK_API.h:79
@ kNoMove
Definition FUCK_API.h:82
@ kNoResize
Definition FUCK_API.h:81
@ kIgnoreUserScale
Definition FUCK_API.h:84
@ kCloseOnGameMenu
Definition FUCK_API.h:77
void GetPluginConfigPath(const char *pluginName, char *dest, size_t size)
Definition FUCK_API.h:1775
void EndDragDropSource()
Definition FUCK_API.h:1196
void SetTooltip(const char *fmt)
Definition FUCK_API.h:1335
float GetTextLineHeight()
Definition FUCK_API.h:788
void EndTooltip()
Definition FUCK_API.h:2363
ImVec2 GetWindowSize()
Definition FUCK_API.h:1460
void RemoveMenuListener(void *userdata)
Definition FUCK_API.h:1786
void DrawScreenLine(const ImVec2 &p1, const ImVec2 &p2, ImU32 col, float thickness=1.0f)
Definition FUCK_API.h:1751
void DrawImageQuad(ImTextureID textureId, const ImVec2 &p1, const ImVec2 &p2, const ImVec2 &p3, const ImVec2 &p4, const ImVec2 &uv1, const ImVec2 &uv2, const ImVec2 &uv3, const ImVec2 &uv4, const ImVec4 &tint_col=ImVec4(1, 1, 1, 1))
Definition FUCK_API.h:1712
void BeginChild(const char *str_id, const ImVec2 &size=ImVec2(0, 0), bool border=false, int flags=0)
Definition FUCK_API.h:1491
bool Hotkey(const char *label, std::uint32_t key, std::int32_t modifier, std::int32_t modifier2, bool alignFar=true, bool labelLeft=true, bool flashing=false)
Definition FUCK_API.h:1227
void AbortManagedHotkey(ManagedHotkey &h)
Definition FUCK_API.h:2107
float GetMouseWheel()
Definition FUCK_API.h:1020
void AbortBinding()
Definition FUCK_API.h:1079
void DrawLine(const ImVec2 &p1, const ImVec2 &p2, const ImVec4 &col, float thickness=1.0f)
Definition FUCK_API.h:1701
bool IsAnyItemHovered()
Definition FUCK_API.h:1140
void PopItemWidth()
Definition FUCK_API.h:2350
void TableSetupColumn(const char *label, TableColumnFlags flags=TableColumnFlags::kNone, float init_width_or_weight=0.0f, std::uint32_t user_id=0)
Definition FUCK_API.h:1609
bool IsInputPressed(const void *inputEvent, std::uint32_t keyId)
Definition FUCK_API.h:1050
bool SetDragDropPayload(const char *type, const void *data, size_t sz, int cond=0)
Definition FUCK_API.h:1192
bool DrawManagedHotkey(const char *label, ManagedHotkey &h, HotkeyFlags flags=HotkeyFlags::kNone, float iconScale=1.0f, float labelScale=1.0f)
Used for assigning Hotkeys within the FUCK interface.
Definition FUCK_API.h:2084
void EndTable()
Definition FUCK_API.h:1574
bool Combo(const char *label, int *current_item, const char *const *items, int items_count)
Definition FUCK_API.h:1281
DragDropFlags
Definition FUCK_API.h:135
@ kAcceptNoPreviewTooltip
Definition FUCK_API.h:145
@ kAcceptBeforeDelivery
Definition FUCK_API.h:143
@ kNone
Definition FUCK_API.h:136
@ kSourceNoHoldToOpenOthers
Definition FUCK_API.h:139
@ kSourceAllowNullID
Definition FUCK_API.h:140
@ kSourceNoDisableHover
Definition FUCK_API.h:138
@ kSourceNoPreviewTooltip
Definition FUCK_API.h:137
@ kAcceptNoDrawDefaultRect
Definition FUCK_API.h:144
@ kSourceAutoExpirePayload
Definition FUCK_API.h:142
@ kAcceptPeekOnly
Definition FUCK_API.h:146
@ kSourceExtern
Definition FUCK_API.h:141
Overlay
Definition FUCK_API.h:22
@ kTriangle
Definition FUCK_API.h:27
@ kGoldenSpiral
Definition FUCK_API.h:25
@ kCrosshair
Definition FUCK_API.h:24
@ kGoldenRatio
Definition FUCK_API.h:26
@ kGrid
Definition FUCK_API.h:23
bool IsWindowFocused(int flags=0)
Definition FUCK_API.h:1144
bool Button(const char *label)
Definition FUCK_API.h:1215
void TableHeadersRow()
Definition FUCK_API.h:1624
void PushItemWidth(float item_width)
Definition FUCK_API.h:2344
void PushStyleColor(ImGuiCol idx, const ImVec4 &col)
Definition FUCK_API.h:743
ImVec2 GetDisplaySize()
Definition FUCK_API.h:678
ImGuiTableSortSpecs * GetTableSortSpecs()
Definition FUCK_API.h:1315
void Dummy(const ImVec2 &size)
Definition FUCK_API.h:899
float GetAnalogInput(std::uint32_t keyId)
Definition FUCK_API.h:1058
void EndWindow()
Definition FUCK_API.h:1440
bool ImageButton(const char *str_id, ImTextureID user_texture_id, const ImVec2 &image_size, const ImVec4 *tint=nullptr)
Definition FUCK_API.h:1419
bool ColorEdit4(const char *label, float col[4], int flags=0)
Definition FUCK_API.h:1245
float UIScale(float value)
Scales by both Resolution and the User's UI Size slider.
Definition FUCK_API.h:665
WindowFlags operator|(WindowFlags a, WindowFlags b)
Definition FUCK_API.h:166
void NextColumn()
Definition FUCK_API.h:1635
bool IsItemDeactivated()
Definition FUCK_API.h:1128
FUCK_Interface *& GetInterface()
Definition FUCK_API.h:571
void DrawImage(ImTextureID textureId, const ImVec2 &size, const ImVec2 &uv0=ImVec2(0, 0), const ImVec2 &uv1=ImVec2(1, 1), const ImVec4 &tint_col=ImVec4(1, 1, 1, 1))
Definition FUCK_API.h:1706
bool DragFloat4(const char *label, float v[4], float speed=1.0f, float min=0.0f, float max=0.0f, const char *fmt="%.3f")
Definition FUCK_API.h:1276
float CalcItemWidth()
Definition FUCK_API.h:855
void UnregisterWindow(IWindow *window)
Definition FUCK_API.h:621
bool BeginPopupContextItem(const char *str_id=nullptr, int mouse_button=1)
Definition FUCK_API.h:1539
bool IsKeyDown(ImGuiKey key)
Definition FUCK_API.h:1164
bool IsItemClicked(int mouse_button=0)
Definition FUCK_API.h:1116
void SeparatorThick()
Definition FUCK_API.h:932
void SetNextWindowSize(const ImVec2 &size, int cond=0)
Definition FUCK_API.h:1485
void DrawRect(const ImVec2 &min, const ImVec2 &max, const ImVec4 &col, float rounding=0.0f, float thickness=1.0f)
Definition FUCK_API.h:1690
void SetHardPause(bool paused)
Definition FUCK_API.h:1034
BindResult GetInputBind(const void *inputEvent, std::uint32_t *outKey, std::int32_t *outMod1, std::int32_t *outMod2)
Definition FUCK_API.h:1098
ItemFlags
Definition FUCK_API.h:150
@ kNoTabStop
Definition FUCK_API.h:152
@ kNoNav
Definition FUCK_API.h:155
@ kButtonRepeat
Definition FUCK_API.h:153
bool ToggleButton(const char *label, bool *v, bool alignFar=true, bool labelLeft=true)
Definition FUCK_API.h:1233
void DrawBackgroundImage(ImTextureID tex, float alpha)
Definition FUCK_API.h:1725
bool IsWindowHovered(int flags=0)
Definition FUCK_API.h:1148
ImVec4 GetStyleColorVec4(ImGuiCol idx)
Definition FUCK_API.h:780
void TextUnformatted(const char *text, const char *text_end=nullptr)
Definition FUCK_API.h:1406
bool IsItemDeactivatedAfterEdit()
Definition FUCK_API.h:1132
BindResult
Definition FUCK_API.h:44
@ kBound
Definition FUCK_API.h:46
@ kNone
Definition FUCK_API.h:45
@ kCancelled
Definition FUCK_API.h:47
void AddImage(ImTextureID textureId, const ImVec2 &min, const ImVec2 &max, const ImVec2 &uv0=ImVec2(0, 0), const ImVec2 &uv1=ImVec2(1, 1), const ImVec4 &col=ImVec4(1, 1, 1, 1))
Definition FUCK_API.h:1719
const char * g_pluginName
Definition FUCK_API.h:12
void DrawScreenRect(const ImVec2 &min, const ImVec2 &max, ImU32 col, float rounding=0.0f, float thickness=1.0f)
Definition FUCK_API.h:1740
ImVec2 GetItemRectMin()
Definition FUCK_API.h:868
bool BeginDragDropSource(DragDropFlags flags=DragDropFlags::kNone)
Definition FUCK_API.h:1188
float GetTextLineHeightWithSpacing()
Definition FUCK_API.h:792
bool CollapsingHeader(const char *label, int flags=0)
Definition FUCK_API.h:1534
bool IsInputDown(std::uint32_t keyId)
Definition FUCK_API.h:1054
Font
Definition FUCK_API.h:16
@ kRegular
Definition FUCK_API.h:17
@ kLarge
Definition FUCK_API.h:18
float GetStyleVar(ImGuiStyleVar idx)
Definition FUCK_API.h:769
void EndDragDropTarget()
Definition FUCK_API.h:1209
void DrawGoldenGrid(float thickness=1.0f, ImU32 color=0, int subdivisions=0)
Definition FUCK_API.h:1681
TableFlags
Definition FUCK_API.h:89
@ kRowBg
Definition FUCK_API.h:97
@ kNone
Definition FUCK_API.h:90
@ kBordersOuterV
Definition FUCK_API.h:101
@ kBorders
Definition FUCK_API.h:104
@ kHideable
Definition FUCK_API.h:93
@ kBordersOuterH
Definition FUCK_API.h:99
@ kResizable
Definition FUCK_API.h:91
@ kSortable
Definition FUCK_API.h:94
@ kSizingFixedSame
Definition FUCK_API.h:106
@ kBordersInnerV
Definition FUCK_API.h:100
@ kBordersH
Definition FUCK_API.h:102
@ kNoSavedSettings
Definition FUCK_API.h:95
@ kSizingStretchSame
Definition FUCK_API.h:108
@ kContextMenuInBody
Definition FUCK_API.h:96
@ kBordersV
Definition FUCK_API.h:103
@ kSizingFixedFit
Definition FUCK_API.h:105
@ kReorderable
Definition FUCK_API.h:92
@ kSizingStretchProp
Definition FUCK_API.h:107
@ kBordersInnerH
Definition FUCK_API.h:98
bool BeginTabBar(const char *str_id, int flags=0)
Definition FUCK_API.h:1549
float GetFrameHeightWithSpacing()
Definition FUCK_API.h:800
void SetWindowFontScale(float scale)
Definition FUCK_API.h:737
PopupFlags
Definition FUCK_API.h:159
@ kNone
Definition FUCK_API.h:160
@ kAnyPopupId
Definition FUCK_API.h:161
@ kAnyPopup
Definition FUCK_API.h:163
@ kAnyPopupLevel
Definition FUCK_API.h:162
void PushItemFlag(ItemFlags flag, bool enabled)
Definition FUCK_API.h:983
bool IsItemHovered(int flags=0)
Definition FUCK_API.h:1112
void SetCursorScreenPos(const ImVec2 &pos)
Definition FUCK_API.h:838
float Scale(float value)
Scales by the Monitor Resolution.
Definition FUCK_API.h:651
void EndGroup()
Definition FUCK_API.h:948
float GetGlobalScale()
Gets the overall screen resolution combined with the user's selected UI Size Slider multiplier.
Definition FUCK_API.h:639
void PushID(const char *str_id)
Definition FUCK_API.h:963
void DrawOverlay(Overlay type, float thickness=1.0f, ImU32 color=0, float paramA=0.0f, float paramB=0.0f, float paramC=0.0f, float paramD=0.0f)
Definition FUCK_API.h:1660
void EndPopup()
Definition FUCK_API.h:1543
bool IsMouseClicked(int button, bool repeat=false)
Definition FUCK_API.h:1156
void SetItemDefaultFocus()
Definition FUCK_API.h:1178
BindResult UpdateBinding(const void *inputEvent, std::uint32_t *outKey, std::int32_t *outMod1, std::int32_t *outMod2)
Definition FUCK_API.h:1093
void PushFont(ImFont *font, float size=0.0f)
Definition FUCK_API.h:727
void PopStyleVar(int count=1)
Definition FUCK_API.h:763
ImFont * GetFont(Font font)
Definition FUCK_API.h:723
double GetTime()
Definition FUCK_API.h:1002
ImVec2 GetMouseDelta()
Definition FUCK_API.h:1006
void ExtendWindowPastBorder()
Definition FUCK_API.h:1445
ImVec2 GetCursorPos()
Definition FUCK_API.h:819
void Spinner(const char *label, float radius, float thickness, const ImVec4 &color)
Definition FUCK_API.h:1655
bool IsWidgetFocused(const char *label)
Definition FUCK_API.h:1183
bool BeginDragDropTarget()
Definition FUCK_API.h:1201
bool operator&(WindowFlags a, WindowFlags b)
Definition FUCK_API.h:170
void Separator()
Definition FUCK_API.h:927
void SetAutoVanityBlocked(bool blocked)
Definition FUCK_API.h:1029
void SetKeyboardFocusHere(int offset=0)
Definition FUCK_API.h:1173
void Text(const char *fmt,...)
Definition FUCK_API.h:1382
void AlignTextToFramePadding()
Definition FUCK_API.h:843
void LeftLabel(const char *label)
Definition FUCK_API.h:1325
void SetNextItemWidth(float width)
Definition FUCK_API.h:888
ImVec2 GetItemRectSize()
Definition FUCK_API.h:882
float GetUserScale()
Gets the user's custom UI Size Slider multiplier.
Definition FUCK_API.h:645
bool IsItemActive()
Definition FUCK_API.h:1120
void StartBinding(std::uint32_t key, std::int32_t mod1, std::int32_t mod2, bool disallowModifiers=false)
Definition FUCK_API.h:1088
void Spacing(int count=1)
Definition FUCK_API.h:904
ImVec2 CalcTextSize(const char *text, const char *text_end=nullptr, bool hide_text_after_double_hash=false, float wrap_width=-1.0f)
Definition FUCK_API.h:859
void EndChild()
Definition FUCK_API.h:1496
void TextDisabled(const char *fmt,...)
Definition FUCK_API.h:1370
void SameLine(float offset_from_start_x=0.0f, float spacing=-1.0f)
Definition FUCK_API.h:922
void EndDisabled()
Definition FUCK_API.h:958
void SetSoftPause(bool paused)
Definition FUCK_API.h:1039
void DrawCrosshair(float thickness=1.0f, ImU32 color=0, float rows=1.0f, float cols=1.0f)
Definition FUCK_API.h:1671
bool ComboWithFilter(const char *label, int *current_item, const char *const *items, int items_count, int popup_max_height_in_items=-1)
Definition FUCK_API.h:1285
bool DragFloat(const char *label, float *v, float speed=1.0f, float min=0.0f, float max=0.0f, const char *fmt="%.3f")
Definition FUCK_API.h:1261
void PopID()
Definition FUCK_API.h:978
bool Connect(const char *pluginName, unsigned int a_minVersion=FUCK_API_VERSION)
Connects to the FUCK Host Framework.
Definition FUCK_API.h:580
bool ProcessManagedHotkey(const void *e, ManagedHotkey &h)
Definition FUCK_API.h:2097
bool IsMouseDown(int button)
Definition FUCK_API.h:1152
bool ButtonIconWithLabel(const char *label, ImTextureID textureID, const ImVec2 &size, bool alignFar=true, bool labelLeft=true)
Definition FUCK_API.h:1412
void SetCursorPosX(float x)
Definition FUCK_API.h:809
bool IsMouseReleased(int button)
Definition FUCK_API.h:1160
bool Checkbox(const char *label, bool *v, bool alignFar=true, bool labelLeft=true)
Definition FUCK_API.h:1223
void DrawTriangle(float thickness=1.0f, ImU32 color=0, bool mirror=false)
Definition FUCK_API.h:1685
bool ClampPosToScreen(ImVec2 &pos, float outOfBoundsTolerance=50.0f)
Clamps a window or widget position to the screen bounds if it strays too far off-screen.
Definition FUCK_API.h:2172
void BeginPanelFrame(const char *str_id, float padding=8.0f)
Begins an inset child panel using an inside-out group margin. This prevents native ImGui window paddi...
Definition FUCK_API.h:1505
void SetWindowPos(const ImVec2 &pos, int cond=0)
Definition FUCK_API.h:1470
bool DragInt(const char *label, int *v, float speed=1.0f, int min=0, int max=0, const char *fmt="%d")
Definition FUCK_API.h:1257
void SetNextWindowPos(const ImVec2 &pos, int cond=0, const ImVec2 &pivot=ImVec2(0, 0))
Definition FUCK_API.h:1480
bool Selectable(const char *label, bool selected=false, int flags=0, const ImVec2 &size=ImVec2(0, 0))
Definition FUCK_API.h:1310
void HelpMarker(const char *desc)
Definition FUCK_API.h:1340
bool DragFloat2(const char *label, float v[2], float speed=1.0f, float min=0.0f, float max=0.0f, const char *fmt="%.3f")
Definition FUCK_API.h:1266
void TableNextRow(int row_flags=0, float min_row_height=0.0f)
Definition FUCK_API.h:1615
bool ColorEdit3(const char *label, float col[3], int flags=0)
Definition FUCK_API.h:1241
bool IsManagedHotkeyDown(ManagedHotkey &h)
Definition FUCK_API.h:2102
ImVec2 GetContentRegionAvail()
Definition FUCK_API.h:848
void DrawBackgroundLine(const ImVec2 &p1, const ImVec2 &p2, ImU32 col, float thickness)
Definition FUCK_API.h:1730
InputDevice GetInputDevice()
Definition FUCK_API.h:1066
void PopItemFlag()
Definition FUCK_API.h:988
Definition FUCK_API.h:218
bool isBinding
Definition FUCK_API.h:222
bool disallowModifiers
Definition FUCK_API.h:225
std::int32_t kMod1
Definition FUCK_API.h:220
bool wasTriggered
Definition FUCK_API.h:223
std::int32_t gMod2
Definition FUCK_API.h:221
std::uint32_t kKey
Definition FUCK_API.h:219
std::uint32_t gKey
Definition FUCK_API.h:219
std::int32_t kMod2
Definition FUCK_API.h:221
bool waitForRelease
Definition FUCK_API.h:224
void Clear()
Definition FUCK_API.h:227
std::int32_t gMod1
Definition FUCK_API.h:220
Definition FUCK_API.h:297
void(* SetNextWindowSize)(float, float, int)
Definition FUCK_API.h:469
void(* DrawImage)(void *, const ImVec2 &, const ImVec2 &, const ImVec2 &, const ImVec4 &)
Definition FUCK_API.h:454
bool(* Button)(const char *)
Definition FUCK_API.h:485
bool(* IsManagedHotkeyDown)(FUCK::ManagedHotkey *)
Definition FUCK_API.h:421
void(* EndPopup)()
Definition FUCK_API.h:482
void(* ExtendWindowPastBorder)()
Definition FUCK_API.h:476
void(* LeftLabel)(const char *)
Definition FUCK_API.h:507
void(* PushItemFlag)(FUCK::ItemFlags, bool)
Definition FUCK_API.h:375
void(* TextDisabled)(const char *)
Definition FUCK_API.h:511
bool(* IsMenuOpen)()
Definition FUCK_API.h:316
bool(* ColorEdit3)(const char *, float[3], int)
Definition FUCK_API.h:491
float(* GetFrameHeightWithSpacing)()
Definition FUCK_API.h:362
void(* SetWindowSize)(float, float, int)
Definition FUCK_API.h:473
void(* TableHeadersRow)()
Definition FUCK_API.h:529
void(* Text)(const char *)
Definition FUCK_API.h:546
void(* PopItemWidth)()
Definition FUCK_API.h:553
void(* ReleaseImage)(void *)
Definition FUCK_API.h:389
bool(* IsWindowFocused)(int)
Definition FUCK_API.h:433
void(* BeginDisabled)(bool)
Definition FUCK_API.h:539
float(* GetMouseWheel)()
Definition FUCK_API.h:323
void(* DrawLine)(const ImVec2 &, const ImVec2 &, const ImVec4 &, float)
Definition FUCK_API.h:453
FUCK::BindResult(* UpdateBinding)(const void *, std::uint32_t *, std::int32_t *, std::int32_t *)
Definition FUCK_API.h:415
void(* GetMouseDelta)(float *, float *)
Definition FUCK_API.h:321
float(* CalcItemWidth)()
Definition FUCK_API.h:345
void(* HelpMarker)(const char *)
Definition FUCK_API.h:377
void(* DrawScreenRectFilled)(const ImVec2 &, const ImVec2 &, ImU32, float)
Definition FUCK_API.h:464
void(* Spinner)(const char *, float, float, const ImVec4 &)
Definition FUCK_API.h:393
void(* TextUnformatted)(const char *, const char *)
Definition FUCK_API.h:548
void(* AddMenuListener)(void *userdata, void(*callback)(const char *menuName, bool opening, void *userdata))
Definition FUCK_API.h:384
void(* SetNextItemOpen)(bool, int)
Definition FUCK_API.h:350
void(* SetItemDefaultFocus)()
Definition FUCK_API.h:441
bool(* TreeNode)(const char *)
Definition FUCK_API.h:479
void(* SetSoftPause)(bool)
Definition FUCK_API.h:400
void(* Header)(const char *)
Definition FUCK_API.h:506
void(* ForceCursor)(bool)
Definition FUCK_API.h:401
void(* RegisterTool)(FUCK::ITool *)
Definition FUCK_API.h:301
double(* GetTime)()
Definition FUCK_API.h:320
bool(* ComboWithFilter)(const char *, int *, const char *const *, int, int)
Definition FUCK_API.h:501
void(* LoadPluginKeybinds)(const char *pluginName, void *userdata, void(*callback)(CSimpleIniA &, void *))
Definition FUCK_API.h:372
void(* PopFont)()
Definition FUCK_API.h:313
void(* EndDragDropSource)()
Definition FUCK_API.h:445
void(* CalcTextSize)(const char *, const char *, bool, float, float *, float *)
Definition FUCK_API.h:346
void(* TextWrapped)(const char *)
Definition FUCK_API.h:547
const ImGuiPayload *(* AcceptDragDropPayload)(const char *, int)
Definition FUCK_API.h:447
bool(* IsModifierPressed)(FUCK::Modifier)
Definition FUCK_API.h:407
bool(* IsMouseClicked)(int, bool)
Definition FUCK_API.h:436
void(* PopItemFlag)()
Definition FUCK_API.h:376
void(* TranslateScaleformToScreen)(float, float, float *, float *)
Definition FUCK_API.h:310
void(* SeparatorText)(const char *)
Definition FUCK_API.h:355
void(* GetContentRegionAvail)(float *, float *)
Definition FUCK_API.h:344
bool(* DragFloat4)(const char *, float[4], float, float, float, const char *)
Definition FUCK_API.h:499
void(* Separator)()
Definition FUCK_API.h:353
void(* GetWindowPos)(float *, float *)
Definition FUCK_API.h:470
float(* GetUserScale)()
Definition FUCK_API.h:308
bool(* IsMouseDown)(int)
Definition FUCK_API.h:435
const char *(* GetTranslation)(const char *)
Definition FUCK_API.h:366
void(* SetAutoVanityBlocked)(bool)
Definition FUCK_API.h:398
bool(* CollapsingHeader)(const char *, int)
Definition FUCK_API.h:536
float(* GetTextLineHeight)()
Definition FUCK_API.h:359
void(* GetImageInfo)(void *, float *, float *)
Definition FUCK_API.h:390
void(* DrawBackgroundLine)(float, float, float, float, unsigned int, float)
Definition FUCK_API.h:459
FUCK::BindResult(* GetInputBind)(const void *, std::uint32_t *, std::int32_t *, std::int32_t *)
Definition FUCK_API.h:416
void(* Spacing)()
Definition FUCK_API.h:352
void(* PushID_Ptr)(const void *)
Definition FUCK_API.h:380
void(* LoadPluginKeybindsDefaults)(const char *pluginName, void *userdata, void(*callback)(CSimpleIniA &, void *))
Definition FUCK_API.h:374
void(* DrawScreenLine)(float, float, float, float, ImU32, float)
Definition FUCK_API.h:465
bool(* InputText)(const char *, char *, size_t, int)
Definition FUCK_API.h:490
void(* SetGameTimeFrozen)(bool)
Definition FUCK_API.h:397
void(* Columns)(int, const char *, bool)
Definition FUCK_API.h:532
void(* DrawRect)(const ImVec2 &, const ImVec2 &, const ImVec4 &, float, float)
Definition FUCK_API.h:451
void(* GetPluginConfigPath)(const char *, char *, size_t)
Definition FUCK_API.h:368
bool(* ComboForm)(const char *, std::uint32_t *, std::uint8_t)
Definition FUCK_API.h:502
void(* SameLine)(float, float)
Definition FUCK_API.h:535
void(* SeparatorVertical)()
Definition FUCK_API.h:551
void(* PushID_Int)(int)
Definition FUCK_API.h:379
void(* SuspendRendering)(bool)
Definition FUCK_API.h:314
void(* Dummy)(float, float)
Definition FUCK_API.h:351
const char *(* GetKeyName)(std::uint32_t)
Definition FUCK_API.h:409
bool(* ComboFormStr)(const char *, char *, size_t, std::uint8_t)
Definition FUCK_API.h:503
bool(* DragFloat2)(const char *, float[2], float, float, float, const char *)
Definition FUCK_API.h:497
bool(* BeginTable)(const char *, int, int, const ImVec2 &, float)
Definition FUCK_API.h:524
void(* CenteredTextWithArrows)(const char *, const char *, bool *, bool *, bool *)
Definition FUCK_API.h:513
bool(* IsInputPressed)(const void *, std::uint32_t)
Definition FUCK_API.h:404
bool(* SliderInt)(const char *, int *, int, int, const char *)
Definition FUCK_API.h:494
void(* DrawImageQuad)(void *, const ImVec2 &, const ImVec2 &, const ImVec2 &, const ImVec2 &, const ImVec2 &, const ImVec2 &, const ImVec2 &, const ImVec2 &, const ImVec4 &)
Definition FUCK_API.h:455
void(* BeginChild)(const char *, float, float, bool, int)
Definition FUCK_API.h:477
bool(* BeginDragDropTarget)()
Definition FUCK_API.h:446
bool(* IsItemFocused)()
Definition FUCK_API.h:428
float(* GetDeltaTime)()
Definition FUCK_API.h:319
bool(* SetDragDropPayload)(const char *, const void *, size_t, int)
Definition FUCK_API.h:444
void(* EndTooltip)()
Definition FUCK_API.h:555
float(* GetGlobalScale)()
Definition FUCK_API.h:307
void(* PopStyleColor)(int)
Definition FUCK_API.h:327
bool(* DragFloat)(const char *, float *, float, float, float, const char *)
Definition FUCK_API.h:496
void(* PopID)()
Definition FUCK_API.h:381
bool(* ColorEdit4)(const char *, float[4], int)
Definition FUCK_API.h:492
bool(* BeginPopupContextItem)(const char *, int)
Definition FUCK_API.h:481
void(* AbortBinding)()
Definition FUCK_API.h:413
void(* LoadPluginINIDefaults)(const char *, void *, void(*)(CSimpleIniA &, void *))
Definition FUCK_API.h:371
void(* SetNextItemWidth)(float)
Definition FUCK_API.h:349
void(* LoadPluginINI)(const char *pluginName, void *userdata, void(*callback)(CSimpleIniA &, void *))
Definition FUCK_API.h:369
bool(* BeginWindow)(const char *, bool *, int)
Definition FUCK_API.h:474
bool(* IsItemDeactivated)()
Definition FUCK_API.h:429
void(* SetCursorPosY)(float)
Definition FUCK_API.h:338
void(* SetCursorPos)(float, float)
Definition FUCK_API.h:340
bool(* BeginTooltip)()
Definition FUCK_API.h:554
void(* BeginGroup)()
Definition FUCK_API.h:537
void(* UnregisterWindow)(FUCK::IWindow *)
Definition FUCK_API.h:303
float(* GetStyleVar)(ImGuiStyleVar)
Definition FUCK_API.h:331
void(* GetStyleColorVec4)(ImGuiCol, float *, float *, float *, float *)
Definition FUCK_API.h:333
bool(* ProcessManagedHotkey)(const void *, FUCK::ManagedHotkey *)
Definition FUCK_API.h:420
bool(* IsKeyDown)(ImGuiKey)
Definition FUCK_API.h:438
void(* TextColored)(const ImVec4 &, const char *)
Definition FUCK_API.h:509
void(* PushID_Str)(const char *)
Definition FUCK_API.h:378
void(* EndDisabled)()
Definition FUCK_API.h:540
bool(* DrawManagedHotkey)(const char *, FUCK::ManagedHotkey *, int, float, float)
Definition FUCK_API.h:418
bool(* BeginDragDropSource)(int)
Definition FUCK_API.h:443
void(* AlignTextToFramePadding)()
Definition FUCK_API.h:343
void(* EndWindow)()
Definition FUCK_API.h:475
bool(* InvisibleButton)(const char *, const ImVec2 &, int)
Definition FUCK_API.h:486
void(* SetWindowPos)(float, float, int)
Definition FUCK_API.h:472
float(* GetFrameHeight)()
Definition FUCK_API.h:361
void(* GetWindowSize)(float *, float *)
Definition FUCK_API.h:471
bool(* TableNextColumn)()
Definition FUCK_API.h:528
void(* LoadTranslation)(const char *)
Definition FUCK_API.h:365
void(* Unindent)(float)
Definition FUCK_API.h:545
void(* TreePop)()
Definition FUCK_API.h:480
void(* PushStyleVar)(ImGuiStyleVar, float)
Definition FUCK_API.h:328
float(* GetAnalogInput)(std::uint32_t)
Definition FUCK_API.h:406
int(* GetInputDevice)()
Definition FUCK_API.h:408
void(* TableSetupColumn)(const char *, int, float, std::uint32_t)
Definition FUCK_API.h:526
bool(* IsAnyItemActive)()
Definition FUCK_API.h:431
void(* PopStyleVar)(int)
Definition FUCK_API.h:330
bool(* ImageButton)(const char *, void *, float, float, const ImVec4 *)
Definition FUCK_API.h:516
void(* SanitizePath)(char *, const char *, size_t)
Definition FUCK_API.h:367
void(* SetNextWindowPos)(float, float, int, float, float)
Definition FUCK_API.h:468
void(* DrawRectFilled)(const ImVec2 &, const ImVec2 &, const ImVec4 &, float)
Definition FUCK_API.h:452
void(* TableNextRow)(int, float)
Definition FUCK_API.h:527
void(* PushItemWidth)(float)
Definition FUCK_API.h:552
void(* PushFont)(ImFont *, float)
Definition FUCK_API.h:312
bool(* IsWindowHovered)(int)
Definition FUCK_API.h:434
void(* SetCursorPosX)(float)
Definition FUCK_API.h:337
void(* GetItemRectMax)(float *, float *)
Definition FUCK_API.h:348
void(* DrawOverlay)(FUCK::Overlay, float, ImU32, float, float, float, float)
Definition FUCK_API.h:394
bool(* DragFloat3)(const char *, float[3], float, float, float, const char *)
Definition FUCK_API.h:498
void(* EndChild)()
Definition FUCK_API.h:478
void(* GetStyleVarVec)(ImGuiStyleVar, float *, float *)
Definition FUCK_API.h:332
bool(* ToggleButton)(const char *, bool *, bool, bool)
Definition FUCK_API.h:489
bool(* DragInt)(const char *, int *, float, int, int, const char *)
Definition FUCK_API.h:495
void(* DrawBackgroundImage)(void *, float)
Definition FUCK_API.h:458
bool(* ButtonIconWithLabel)(const char *, void *, float, float, bool, bool)
Definition FUCK_API.h:515
bool(* Combo)(const char *, int *, const char *const *, int)
Definition FUCK_API.h:500
bool(* IsPopupOpen)(const char *, int)
Definition FUCK_API.h:424
void(* StartBinding)(std::uint32_t, std::int32_t, std::int32_t, bool)
Definition FUCK_API.h:414
void(* PushStyleVarVec)(ImGuiStyleVar, const ImVec2 &)
Definition FUCK_API.h:329
void(* GetIconSizeForKey)(std::uint32_t, float *, float *)
Definition FUCK_API.h:392
void(* GetItemRectMin)(float *, float *)
Definition FUCK_API.h:347
bool(* IsAnyItemHovered)()
Definition FUCK_API.h:432
void(* RegisterWindow)(FUCK::IWindow *)
Definition FUCK_API.h:302
bool(* Selectable)(const char *, bool, int, const ImVec2 &)
Definition FUCK_API.h:504
void(* RemoveMenuListener)(void *userdata)
Definition FUCK_API.h:385
bool(* UpdateManagedHotkey)(const void *, FUCK::ManagedHotkey *)
Definition FUCK_API.h:419
bool(* BeginTabBar)(const char *, int)
Definition FUCK_API.h:519
void(* SetMenuOpen)(bool)
Definition FUCK_API.h:315
unsigned int version
Definition FUCK_API.h:298
void(* SeparatorThick)()
Definition FUCK_API.h:354
ImGuiTableSortSpecs *(* GetTableSortSpecs)()
Definition FUCK_API.h:505
void(* GetCursorPos)(float *, float *)
Definition FUCK_API.h:339
void(* SetWindowFontScale)(float)
Definition FUCK_API.h:334
void(* GetMousePos)(float *, float *)
Definition FUCK_API.h:322
float(* GetColumnWidth)(int)
Definition FUCK_API.h:356
void(* SavePluginINI)(const char *pluginName, void *userdata, void(*callback)(CSimpleIniA &, void *))
Definition FUCK_API.h:370
void(* CenteredText)(const char *, bool)
Definition FUCK_API.h:512
bool(* IsItemActive)()
Definition FUCK_API.h:427
void(* SetScrollHereY)(float)
Definition FUCK_API.h:556
void(* EndTable)()
Definition FUCK_API.h:525
void(* DrawScreenRect)(const ImVec2 &, const ImVec2 &, ImU32, float, float)
Definition FUCK_API.h:463
bool(* IsGamepadKey)(std::uint32_t)
Definition FUCK_API.h:410
void(* SetHardPause)(bool)
Definition FUCK_API.h:399
void(* TextColoredWrapped)(const ImVec4 &, const char *)
Definition FUCK_API.h:510
void(* AddImage)(void *, const ImVec2 &, const ImVec2 &, const ImVec2 &, const ImVec2 &, const ImVec4 &)
Definition FUCK_API.h:457
void(* SavePluginKeybinds)(const char *pluginName, void *userdata, void(*callback)(CSimpleIniA &, void *))
Definition FUCK_API.h:373
bool(* IsItemHovered)(int)
Definition FUCK_API.h:425
ImFont *(* GetFont)(FUCK::Font)
Definition FUCK_API.h:311
void(* SetTooltip)(const char *)
Definition FUCK_API.h:543
void(* NextColumn)()
Definition FUCK_API.h:533
void(* DrawBackgroundRect)(const ImVec2 &, const ImVec2 &, ImU32, float)
Definition FUCK_API.h:460
void(* EndDragDropTarget)()
Definition FUCK_API.h:448
bool(* IsWidgetFocused)(const char *)
Definition FUCK_API.h:542
bool(* IsKeyPressed)(ImGuiKey, bool)
Definition FUCK_API.h:439
void(* GetDisplaySize)(float *, float *)
Definition FUCK_API.h:309
bool(* IsItemDeactivatedAfterEdit)()
Definition FUCK_API.h:430
void(* SetKeyboardFocusHere)(int)
Definition FUCK_API.h:440
bool(* IsBinding)()
Definition FUCK_API.h:412
bool(* IsInputDown)(std::uint32_t)
Definition FUCK_API.h:405
bool(* SliderFloat)(const char *, float *, float, float, const char *)
Definition FUCK_API.h:493
void(* EndGroup)()
Definition FUCK_API.h:538
void(* GetCursorScreenPos)(float *, float *)
Definition FUCK_API.h:341
bool(* Hotkey)(const char *, std::uint32_t, std::int32_t, std::int32_t, bool, bool, bool)
Definition FUCK_API.h:488
void(* EndTabItem)()
Definition FUCK_API.h:522
void(* Indent)(float)
Definition FUCK_API.h:544
void(* PushStyleColor)(ImGuiCol, const ImVec4 &)
Definition FUCK_API.h:326
void(* SetCursorScreenPos)(float, float)
Definition FUCK_API.h:342
void(* Stepper)(const char *, const char *, bool *, bool *)
Definition FUCK_API.h:517
void(* EndTabBar)()
Definition FUCK_API.h:520
bool(* BeginTabItem)(const char *, int)
Definition FUCK_API.h:521
bool(* IsItemClicked)(int)
Definition FUCK_API.h:426
bool(* Checkbox)(const char *, bool *, bool, bool)
Definition FUCK_API.h:487
void(* TableSetBgColor)(int, ImU32, int)
Definition FUCK_API.h:530
bool(* InputTextMultiline)(const char *, char *, size_t, const ImVec2 &, int)
Definition FUCK_API.h:557
bool(* IsMouseReleased)(int)
Definition FUCK_API.h:437
float(* GetResolutionScale)()
Definition FUCK_API.h:306
float(* GetTextLineHeightWithSpacing)()
Definition FUCK_API.h:360