/// For use when in a custom window, draws the menu-bar. public void DrawMenuBar() { ImGuiCli.BeginMenuBar(); ImGuiCli.PushItemWidth(ImGuiCli.GetContentRegionAvailWidth() * 0.65f); filter_.Draw(ICON_FA.FILTER + " Filter"); ImGuiCli.SameLine(); ImGuiCli.SetCursorPosX(ImGuiCli.GetWindowWidth() - ImGuiCli.CalcTextSize(ICON_FA.EYE + ICON_FA.SORT_ALPHA_DOWN + " ").X - ImGuiStyle.FramePadding.X * 3); if (ImGuiCli.Button(IsAlphabetical ? ICON_FA.OBJECT_GROUP : ICON_FA.SORT_ALPHA_DOWN)) { IsAlphabetical = !IsAlphabetical; } if (ImGuiCli.IsItemHovered()) { ImGuiCli.SetTooltip(IsAlphabetical ? "Group fields" : "Order alphabetically"); } if (ImGuiCli.Button(IsAdvanced ? ICON_FA.EYE : ICON_FA.EYE_SLASH)) { IsAdvanced = !IsAdvanced; } if (ImGuiCli.IsItemHovered()) { ImGuiCli.SetTooltip(IsAdvanced ? "Showing advanced fields" : "Hiding advanced fields"); } ImGuiCli.EndMenuBar(); }
public void DrawMenuBar() { ImGuiCli.BeginMenuBar(); if (!CurrentDirectory.EndsWith(":") && !CurrentDirectory.EndsWith(":\\")) { //ImGuiEx.PushBoldFont(); if (ImGuiCli.Button(ICON_FA.LEVEL_UP_ALT, new Vector2(32, 0))) { CurrentDirectory = System.IO.Directory.GetParent(CurrentDirectory).FullName; UpdateItems(); } if (ImGuiCli.IsItemHovered()) { ImGuiCli.SetTooltip("To parent directory"); } //ImGuiEx.PopFont(); } ImGuiCli.Text(CurrentDirectory); ImGuiCli.PushItemWidth(ImGuiCli.GetContentRegionAvailWidth() * 0.7f - 70); filter_.Draw(ICON_FA.FILTER + " Filter"); ImGuiCli.PopItemWidth(); //ImGuiEx.PushBoldFont(); ImGuiCli.SetCursorPosX(ImGuiCli.GetWindowWidth() - ImGuiCli.CalcTextSize(ICON_FA.LIST_UL + " + " + ICON_FA.STAR).X); //70); if (ImGuiCli.Button(ICON_FA.LIST_UL)) { asDetail_ = !asDetail_; } if (ImGuiCli.IsItemHovered()) { ImGuiCli.SetTooltip("Toggle details view"); } if (ImGuiCli.Button("+" + ICON_FA.STAR)) { if (!Favorites.Contains(CurrentDirectory)) { Favorites.Add(CurrentDirectory); } } if (ImGuiCli.IsItemHovered()) { ImGuiCli.SetTooltip("Add to favorites"); } //ImGuiEx.PopFont(); ImGuiCli.EndMenuBar(); }
public void Draw() { if (Objects == null || Objects.Count == 0) { ImGuiCli.Text("< no objects selected >"); return; } if (objectsDirty_) { infos = null; tables = new List <ReflectionCache.CachedPropertyInfo> [Objects.Count]; for (int i = 0; i < Objects.Count; ++i) { if (infos == null) { tables[i] = reflectCache_.GetAlphabetical(Objects[i].GetType()); if (!IsAdvanced) { tables[i] = tables[i].Where(p => p.IsAdvanced == false).ToList(); } infos = tables[i].Select(s => s.DisplayName).ToList(); } else { tables[i] = reflectCache_.GetAlphabetical(Objects[i].GetType()); if (!IsAdvanced) { tables[i] = tables[i].Where(p => p.IsAdvanced == false).ToList(); } infos = infos.Intersect(tables[i].Select(s => s.DisplayName).ToList()).ToList(); } } } if (infos.Count == 0) { ImGuiCli.Text("< no common fields to edit >"); return; } ImGuiCli.PushItemWidth(-1); bool useColumns = infos.Count > 1; if (useColumns) { ImGuiCli.Columns(infos.Count); } for (int i = 0; i < infos.Count; ++i) { ImGuiCli.Text(infos[i]); float w = ImGuiCli.CalcTextSize(infos[i]).X; if (useColumns && ImGuiCli.GetColumnWidth(i) < (w + 10) && ImGuiCli.IsItemHovered()) { ImGuiCli.SetTooltip(infos[i]); } if (useColumns) { ImGuiCli.NextColumn(); } } ImGuiCli.Separator(); ImGuiCli.PushStyleVar(ImGuiStyleVar_.ItemSpacing, 0); ImGuiCli.PushStyleVar(ImGuiStyleVar_.FramePadding, 0); for (int o = 0; o < Objects.Count; ++o) { for (int i = 0; i < infos.Count; ++i) { var cacheInfo = tables[o].FirstOrDefault(c => c.DisplayName == infos[i]); ImGuiCli.PushID(o * infos.Count + infos[i]); ImGuiCli.PushItemWidth(-1); DrawField(cacheInfo, Objects[o], false); ImGuiCli.PopItemWidth(); ImGuiCli.PopID(); if (useColumns) { ImGuiCli.NextColumn(); } } ImGuiCli.Separator(); } ImGuiCli.PopStyleVar(2); ImGuiCli.PopItemWidth(); }