mirror of
https://github.com/gnif/LookingGlass.git
synced 2026-08-02 13:22:02 +00:00
[client] overlay: guard ImGui table and tab bar scopes
This commit is contained in:
@@ -84,29 +84,33 @@ static void config_renderLGTab(void)
|
|||||||
{
|
{
|
||||||
igTextWrapped("%s", LG_DONATION_STR);
|
igTextWrapped("%s", LG_DONATION_STR);
|
||||||
|
|
||||||
igBeginTable("donations_split", 2, 0, (ImVec2){}, 0.0f);
|
if (igBeginTable("donations_split", 2, 0, (ImVec2){}, 0.0f))
|
||||||
igTableSetupColumn("", ImGuiTableColumnFlags_WidthFixed, fontSize, 0);
|
{
|
||||||
igTableNextColumn();
|
igTableSetupColumn("", ImGuiTableColumnFlags_WidthFixed, fontSize, 0);
|
||||||
igBulletText("");
|
igTableNextColumn();
|
||||||
igTableNextColumn();
|
igBulletText("");
|
||||||
overlayTextURL(LG_DONATION_URL, NULL);
|
igTableNextColumn();
|
||||||
|
overlayTextURL(LG_DONATION_URL, NULL);
|
||||||
igEndTable();
|
igEndTable();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (igCollapsingHeader_BoolPtr("Help & Support", NULL,
|
if (igCollapsingHeader_BoolPtr("Help & Support", NULL,
|
||||||
ImGuiTreeNodeFlags_DefaultOpen))
|
ImGuiTreeNodeFlags_DefaultOpen))
|
||||||
{
|
{
|
||||||
igBeginTable("help_support_split", 2, 0, (ImVec2){}, 0.0f);
|
if (igBeginTable("help_support_split", 2, 0, (ImVec2){}, 0.0f))
|
||||||
igTableSetupColumn("", ImGuiTableColumnFlags_WidthFixed, fontSize * 9.0f, 0);
|
|
||||||
for(const StringPair * help = LG_HELP_LINKS; help->name; ++help)
|
|
||||||
{
|
{
|
||||||
igTableNextColumn();
|
igTableSetupColumn("", ImGuiTableColumnFlags_WidthFixed,
|
||||||
igBulletText("%s", help->name);
|
fontSize * 9.0f, 0);
|
||||||
igTableNextColumn();
|
for(const StringPair * help = LG_HELP_LINKS; help->name; ++help)
|
||||||
overlayTextMaybeURL(help->value, true);
|
{
|
||||||
|
igTableNextColumn();
|
||||||
|
igBulletText("%s", help->name);
|
||||||
|
igTableNextColumn();
|
||||||
|
overlayTextMaybeURL(help->value, true);
|
||||||
|
}
|
||||||
|
igEndTable();
|
||||||
}
|
}
|
||||||
igEndTable();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (igCollapsingHeader_BoolPtr("The Looking Glass Team", NULL,
|
if (igCollapsingHeader_BoolPtr("The Looking Glass Team", NULL,
|
||||||
@@ -126,17 +130,21 @@ static void config_renderLGTab(void)
|
|||||||
"do so directly via the following platform%s:",
|
"do so directly via the following platform%s:",
|
||||||
member->donate[1].name ? "s" : "");
|
member->donate[1].name ? "s" : "");
|
||||||
|
|
||||||
igBeginTable("member_donations_split", 2, 0, (ImVec2){}, 0.0f);
|
if (igBeginTable("member_donations_split", 2, 0,
|
||||||
igTableSetupColumn("", ImGuiTableColumnFlags_WidthFixed,
|
(ImVec2){}, 0.0f))
|
||||||
fontSize * 10.0f, 0);
|
|
||||||
for(const StringPair * donate = member->donate; donate->name; ++donate)
|
|
||||||
{
|
{
|
||||||
igTableNextColumn();
|
igTableSetupColumn("", ImGuiTableColumnFlags_WidthFixed,
|
||||||
igBulletText("%s", donate->name);
|
fontSize * 10.0f, 0);
|
||||||
igTableNextColumn();
|
for(const StringPair * donate = member->donate;
|
||||||
overlayTextMaybeURL(donate->value, false);
|
donate->name; ++donate)
|
||||||
|
{
|
||||||
|
igTableNextColumn();
|
||||||
|
igBulletText("%s", donate->name);
|
||||||
|
igTableNextColumn();
|
||||||
|
overlayTextMaybeURL(donate->value, false);
|
||||||
|
}
|
||||||
|
igEndTable();
|
||||||
}
|
}
|
||||||
igEndTable();
|
|
||||||
}
|
}
|
||||||
igTreePop();
|
igTreePop();
|
||||||
igSeparator();
|
igSeparator();
|
||||||
@@ -181,58 +189,59 @@ static int config_render(void * udata, bool interactive, struct Rect * windowRec
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
igBeginTabBar("Configuration#tabs", 0);
|
if (igBeginTabBar("Configuration#tabs", 0))
|
||||||
|
|
||||||
if (igBeginTabItem("About", NULL, 0))
|
|
||||||
{
|
{
|
||||||
config_renderLGTab();
|
if (igBeginTabItem("About", NULL, 0))
|
||||||
igEndTabItem();
|
{
|
||||||
}
|
config_renderLGTab();
|
||||||
|
igEndTabItem();
|
||||||
|
}
|
||||||
|
|
||||||
ConfigCallback * cb;
|
ConfigCallback * cb;
|
||||||
|
|
||||||
if (igBeginTabItem("Settings", NULL, 0))
|
if (igBeginTabItem("Settings", NULL, 0))
|
||||||
{
|
{
|
||||||
ll_lock(cfg.callbacks);
|
ll_lock(cfg.callbacks);
|
||||||
ll_forEachNL(cfg.callbacks, item, cb)
|
ll_forEachNL(cfg.callbacks, item, cb)
|
||||||
|
{
|
||||||
|
igPushID_Ptr(cb);
|
||||||
|
|
||||||
|
if (igCollapsingHeader_BoolPtr(cb->title, NULL, 0))
|
||||||
|
{
|
||||||
|
int id = 0;
|
||||||
|
cb->callback(cb->udata, &id);
|
||||||
|
}
|
||||||
|
|
||||||
|
igPopID();
|
||||||
|
}
|
||||||
|
ll_unlock(cfg.callbacks);
|
||||||
|
igEndTabItem();
|
||||||
|
}
|
||||||
|
|
||||||
|
ll_lock(cfg.tabCallbacks);
|
||||||
|
ll_forEachNL(cfg.tabCallbacks, item, cb)
|
||||||
{
|
{
|
||||||
igPushID_Ptr(cb);
|
igPushID_Ptr(cb);
|
||||||
|
|
||||||
if (igCollapsingHeader_BoolPtr(cb->title, NULL, 0))
|
if (igBeginTabItem(cb->title, NULL, 0))
|
||||||
{
|
{
|
||||||
int id = 0;
|
int id = 0;
|
||||||
cb->callback(cb->udata, &id);
|
cb->callback(cb->udata, &id);
|
||||||
|
igEndTabItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
igPopID();
|
igPopID();
|
||||||
}
|
}
|
||||||
ll_unlock(cfg.callbacks);
|
ll_unlock(cfg.tabCallbacks);
|
||||||
igEndTabItem();
|
|
||||||
}
|
|
||||||
|
|
||||||
ll_lock(cfg.tabCallbacks);
|
if (igBeginTabItem("License", NULL, 0))
|
||||||
ll_forEachNL(cfg.tabCallbacks, item, cb)
|
|
||||||
{
|
|
||||||
igPushID_Ptr(cb);
|
|
||||||
|
|
||||||
if (igBeginTabItem(cb->title, NULL, 0))
|
|
||||||
{
|
{
|
||||||
int id = 0;
|
config_renderLicenseTab();
|
||||||
cb->callback(cb->udata, &id);
|
|
||||||
igEndTabItem();
|
igEndTabItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
igPopID();
|
igEndTabBar();
|
||||||
}
|
}
|
||||||
ll_unlock(cfg.tabCallbacks);
|
|
||||||
|
|
||||||
if (igBeginTabItem("License", NULL, 0))
|
|
||||||
{
|
|
||||||
config_renderLicenseTab();
|
|
||||||
igEndTabItem();
|
|
||||||
}
|
|
||||||
|
|
||||||
igEndTabBar();
|
|
||||||
|
|
||||||
overlayGetImGuiRect(windowRects);
|
overlayGetImGuiRect(windowRects);
|
||||||
igEnd();
|
igEnd();
|
||||||
|
|||||||
@@ -51,20 +51,21 @@ static void configCallback(void * udata, int * id)
|
|||||||
igCheckbox("Show timing graphs", &gs.show);
|
igCheckbox("Show timing graphs", &gs.show);
|
||||||
igSeparator();
|
igSeparator();
|
||||||
|
|
||||||
igBeginTable("graphs_split", 2, 0, (ImVec2){}, 0);
|
if (igBeginTable("graphs_split", 2, 0, (ImVec2){}, 0))
|
||||||
|
|
||||||
GraphHandle graph;
|
|
||||||
ll_lock(gs.graphs);
|
|
||||||
ll_forEachNL(gs.graphs, item, graph)
|
|
||||||
{
|
{
|
||||||
igTableNextColumn();
|
GraphHandle graph;
|
||||||
igPushID_Ptr(graph);
|
ll_lock(gs.graphs);
|
||||||
igCheckbox(graph->name, &graph->enabled);
|
ll_forEachNL(gs.graphs, item, graph)
|
||||||
igPopID();
|
{
|
||||||
}
|
igTableNextColumn();
|
||||||
ll_unlock(gs.graphs);
|
igPushID_Ptr(graph);
|
||||||
|
igCheckbox(graph->name, &graph->enabled);
|
||||||
|
igPopID();
|
||||||
|
}
|
||||||
|
ll_unlock(gs.graphs);
|
||||||
|
|
||||||
igEndTable();
|
igEndTable();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void showTimingKeybind(int sc, void * opaque)
|
static void showTimingKeybind(int sc, void * opaque)
|
||||||
|
|||||||
Reference in New Issue
Block a user