Ejemplo n.º 1
0
 public static bool Selectable(string label, bool isSelected, ImGuiSelectableFlags flags)
 {
     return(Selectable(label, isSelected, flags, new ImVec2()));
 }
Ejemplo n.º 2
0
 public static bool SelectableEx(string label, ref bool isSelected, ImGuiSelectableFlags flags, ImVec2 size)
 {
     return(ImGuiNative.igSelectableEx(label, ref isSelected, flags, size));
 }
Ejemplo n.º 3
0
 public static bool Selectable(string label, bool isSelected, ImGuiSelectableFlags flags, ImVec2 size)
 => ImGuiNative.igSelectable(label, isSelected, flags, size);
Ejemplo n.º 4
0
 public static bool Selectable(string label, ref bool selected, ImGuiSelectableFlags flags = ImGuiSelectableFlags.None, ImVec2 size = default) => SelectableBoolPtr(label, ref selected, flags, size);
Ejemplo n.º 5
0
 public static bool Selectable(string label, bool selected = false, ImGuiSelectableFlags flags = ImGuiSelectableFlags.None, ImVec2 size = default) => SelectableBool(label, selected, flags, size);
Ejemplo n.º 6
0
 public abstract byte igSelectableBoolPtr(byte *label, byte *p_selected, ImGuiSelectableFlags flags, Vector2 size);
Ejemplo n.º 7
0
        public void Draw(ref bool show)
        {
            ImGui.SetNextWindowSize(new Vector2(800, 500), ImGuiCond.Appearing);
            ImGui.PushStyleColor(ImGuiCol.ChildBg, Themes.GetThemeColourUINT(Themes.eThemeColour.Frame));
            if (ImGui.Begin("Logged Events", ref show))
            {
                //string label = $"{msgs.Length} log entries displayed from ({activeCount}/{_LogFilters.Length}) sources";

                Vector2 boxSize            = new Vector2(75, 40);
                Vector2 marginSize         = new Vector2(70, 40);
                ImGuiSelectableFlags flags = ImGuiSelectableFlags.DontClosePopups;
                uint tableHdrBG            = 0xff333333;

                var textFilterCounts = Logging.GetTextFilterCounts();
                List <Tuple <string, LogFilterType> > filters = new List <Tuple <string, LogFilterType> >()
                {
                    new Tuple <string, LogFilterType>("Debug", LogFilterType.Debug),
                    new Tuple <string, LogFilterType>("Info", LogFilterType.Info),
                    new Tuple <string, LogFilterType>("Alert", LogFilterType.Alert),
                    new Tuple <string, LogFilterType>("Error", LogFilterType.Error)
                };

                if (ImGui.BeginTable("LogFilterTable", filters.Count + 1, ImGuiTableFlags.Borders, new Vector2(boxSize.X * (filters.Count + 1), 41)))
                {
                    ImGui.TableNextRow();
                    ImGui.TableSetColumnIndex(0);
                    ImGui.TableSetBgColor(ImGuiTableBgTarget.CellBg, tableHdrBG);
                    if (ImGui.Selectable("Message", false, flags, marginSize))
                    {
                        rowLastSelected[0] = !rowLastSelected[0];
                        filters.ForEach((filter) => { _LogFilters[(int)filter.Item2] = rowLastSelected[0]; });
                    }
                    foreach (var filter in filters)
                    {
                        if (ImGui.TableNextColumn())
                        {
                            ImGui.Selectable($"{filter.Item1} ({textFilterCounts[filter.Item2]})", ref _LogFilters[(int)filter.Item2], flags, boxSize);
                        }
                    }
                    ImGui.EndTable();


                    if (ImGui.BeginPopupContextItem("FlterTableRightCtx", ImGuiPopupFlags.MouseButtonRight))
                    {
                        if (ImGui.MenuItem("Clear All Source Filters"))
                        {
                            Array.Clear(_LogFilters, 0, _LogFilters.Length);
                        }
                        if (ImGui.MenuItem("Apply All Source Filters"))
                        {
                            _LogFilters = Enumerable.Repeat(true, _LogFilters.Length).ToArray();
                        }
                        ImGui.EndPopup();
                    }
                    ImGui.SameLine();

                    ImGui.BeginGroup(); //filter text box
                    {
                        ImGui.SetCursorPosY(ImGui.GetCursorPosY() + 4);
                        ImGui.Indent(8);
                        ImGui.Text("Filter");
                        ImGui.SameLine();
                        ImGui.SetNextItemWidth(Math.Min(ImGui.GetContentRegionAvail().X - 50, 350));
                        ImGui.InputText("##IT1", textFilterValue, (uint)textFilterValue.Length);
                        if (_textFilterLen > 0)
                        {
                            ImGui.SameLine();
                            if (ImGui.Button("Clear"))
                            {
                                textFilterValue = new byte[textFilterValue.Length];
                            }
                        }

                        ImGui.EndGroup();
                    }
                    WriteLogContentTable();
                }
                ImGui.End();
            }
            ImGui.PopStyleColor();
        }