|
@@ -3432,7 +3432,7 @@ static const ImGuiCol GWindowDockStyleColors[ImGuiWindowDockStyleCol_COUNT] =
|
|
|
ImGuiCol_Text, ImGuiCol_TabHovered, ImGuiCol_Tab, ImGuiCol_TabSelected, ImGuiCol_TabSelectedOverline, ImGuiCol_TabDimmed, ImGuiCol_TabDimmedSelected, ImGuiCol_TabDimmedSelectedOverline,
|
|
|
};
|
|
|
|
|
|
-static const ImGuiDataVarInfo GStyleVarInfo[] =
|
|
|
+static const ImGuiDataVarInfo GStyleVarsInfo[] =
|
|
|
{
|
|
|
{ ImGuiDataType_Float, 1, (ImU32)offsetof(ImGuiStyle, Alpha) }, // ImGuiStyleVar_Alpha
|
|
|
{ ImGuiDataType_Float, 1, (ImU32)offsetof(ImGuiStyle, DisabledAlpha) }, // ImGuiStyleVar_DisabledAlpha
|
|
@@ -3473,15 +3473,15 @@ static const ImGuiDataVarInfo GStyleVarInfo[] =
|
|
|
const ImGuiDataVarInfo* ImGui::GetStyleVarInfo(ImGuiStyleVar idx)
|
|
|
{
|
|
|
IM_ASSERT(idx >= 0 && idx < ImGuiStyleVar_COUNT);
|
|
|
- IM_STATIC_ASSERT(IM_ARRAYSIZE(GStyleVarInfo) == ImGuiStyleVar_COUNT);
|
|
|
- return &GStyleVarInfo[idx];
|
|
|
+ IM_STATIC_ASSERT(IM_ARRAYSIZE(GStyleVarsInfo) == ImGuiStyleVar_COUNT);
|
|
|
+ return &GStyleVarsInfo[idx];
|
|
|
}
|
|
|
|
|
|
void ImGui::PushStyleVar(ImGuiStyleVar idx, float val)
|
|
|
{
|
|
|
ImGuiContext& g = *GImGui;
|
|
|
const ImGuiDataVarInfo* var_info = GetStyleVarInfo(idx);
|
|
|
- if (var_info->Type != ImGuiDataType_Float || var_info->Count != 1)
|
|
|
+ if (var_info->DataType != ImGuiDataType_Float || var_info->Count != 1)
|
|
|
{
|
|
|
IM_ASSERT_USER_ERROR(0, "Calling PushStyleVar() variant with wrong type!");
|
|
|
return;
|
|
@@ -3495,7 +3495,7 @@ void ImGui::PushStyleVarX(ImGuiStyleVar idx, float val_x)
|
|
|
{
|
|
|
ImGuiContext& g = *GImGui;
|
|
|
const ImGuiDataVarInfo* var_info = GetStyleVarInfo(idx);
|
|
|
- if (var_info->Type != ImGuiDataType_Float || var_info->Count != 2)
|
|
|
+ if (var_info->DataType != ImGuiDataType_Float || var_info->Count != 2)
|
|
|
{
|
|
|
IM_ASSERT_USER_ERROR(0, "Calling PushStyleVar() variant with wrong type!");
|
|
|
return;
|
|
@@ -3509,7 +3509,7 @@ void ImGui::PushStyleVarY(ImGuiStyleVar idx, float val_y)
|
|
|
{
|
|
|
ImGuiContext& g = *GImGui;
|
|
|
const ImGuiDataVarInfo* var_info = GetStyleVarInfo(idx);
|
|
|
- if (var_info->Type != ImGuiDataType_Float || var_info->Count != 2)
|
|
|
+ if (var_info->DataType != ImGuiDataType_Float || var_info->Count != 2)
|
|
|
{
|
|
|
IM_ASSERT_USER_ERROR(0, "Calling PushStyleVar() variant with wrong type!");
|
|
|
return;
|
|
@@ -3523,7 +3523,7 @@ void ImGui::PushStyleVar(ImGuiStyleVar idx, const ImVec2& val)
|
|
|
{
|
|
|
ImGuiContext& g = *GImGui;
|
|
|
const ImGuiDataVarInfo* var_info = GetStyleVarInfo(idx);
|
|
|
- if (var_info->Type != ImGuiDataType_Float || var_info->Count != 2)
|
|
|
+ if (var_info->DataType != ImGuiDataType_Float || var_info->Count != 2)
|
|
|
{
|
|
|
IM_ASSERT_USER_ERROR(0, "Calling PushStyleVar() variant with wrong type!");
|
|
|
return;
|
|
@@ -3547,8 +3547,8 @@ void ImGui::PopStyleVar(int count)
|
|
|
ImGuiStyleMod& backup = g.StyleVarStack.back();
|
|
|
const ImGuiDataVarInfo* info = GetStyleVarInfo(backup.VarIdx);
|
|
|
void* data = info->GetVarPtr(&g.Style);
|
|
|
- if (info->Type == ImGuiDataType_Float && info->Count == 1) { ((float*)data)[0] = backup.BackupFloat[0]; }
|
|
|
- else if (info->Type == ImGuiDataType_Float && info->Count == 2) { ((float*)data)[0] = backup.BackupFloat[0]; ((float*)data)[1] = backup.BackupFloat[1]; }
|
|
|
+ if (info->DataType == ImGuiDataType_Float && info->Count == 1) { ((float*)data)[0] = backup.BackupFloat[0]; }
|
|
|
+ else if (info->DataType == ImGuiDataType_Float && info->Count == 2) { ((float*)data)[0] = backup.BackupFloat[0]; ((float*)data)[1] = backup.BackupFloat[1]; }
|
|
|
g.StyleVarStack.pop_back();
|
|
|
count--;
|
|
|
}
|
|
@@ -3861,7 +3861,7 @@ void ImGui::RenderMouseCursor(ImVec2 base_pos, float base_scale, ImGuiMouseCurso
|
|
|
{
|
|
|
// We scale cursor with current viewport/monitor, however Windows 10 for its own hardware cursor seems to be using a different scale factor.
|
|
|
ImVec2 offset, size, uv[4];
|
|
|
- if (!font_atlas->GetMouseCursorTexData(mouse_cursor, &offset, &size, &uv[0], &uv[2]))
|
|
|
+ if (!ImFontAtlasGetMouseCursorTexData(font_atlas, mouse_cursor, &offset, &size, &uv[0], &uv[2]))
|
|
|
continue;
|
|
|
const ImVec2 pos = base_pos - offset;
|
|
|
const float scale = base_scale * viewport->DpiScale;
|
|
@@ -3874,6 +3874,13 @@ void ImGui::RenderMouseCursor(ImVec2 base_pos, float base_scale, ImGuiMouseCurso
|
|
|
draw_list->AddImage(tex_id, pos + ImVec2(2, 0) * scale, pos + (ImVec2(2, 0) + size) * scale, uv[2], uv[3], col_shadow);
|
|
|
draw_list->AddImage(tex_id, pos, pos + size * scale, uv[2], uv[3], col_border);
|
|
|
draw_list->AddImage(tex_id, pos, pos + size * scale, uv[0], uv[1], col_fill);
|
|
|
+ if (mouse_cursor == ImGuiMouseCursor_Wait || mouse_cursor == ImGuiMouseCursor_Progress)
|
|
|
+ {
|
|
|
+ float a_min = ImFmod((float)g.Time * 5.0f, 2.0f * IM_PI);
|
|
|
+ float a_max = a_min + IM_PI * 1.65f;
|
|
|
+ draw_list->PathArcTo(pos + ImVec2(14, -1) * scale, 6.0f * scale, a_min, a_max);
|
|
|
+ draw_list->PathStroke(col_fill, ImDrawFlags_None, 3.0f * scale);
|
|
|
+ }
|
|
|
draw_list->PopTextureID();
|
|
|
}
|
|
|
}
|