Exemple #1
0
 /// 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();
        }
Exemple #3
0
        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();
        }