Exemple #1
0
        private void ItemCreatePopup(List <Shortcut> shortcuts)
        {
            if (ImGui.BeginPopup("addItem"))
            {
                _sh ??= new Shortcut();
                ItemBaseUI(_sh, false);

                if (ImGui.Button("Create"))
                {
                    shortcuts.Add(_sh);
                    config.Save();
                    _sh = null;
                    ImGui.CloseCurrentPopup();
                }
                ImGui.SameLine();
                if (ImGui.Button("Import"))
                {
                    try
                    {
                        shortcuts.Add(plugin.ImportShortcut(ImGui.GetClipboardText()));
                        config.Save();
                        ImGui.CloseCurrentPopup();
                    }
                    catch (Exception e) // Try as a bar instead
                    {
                        try
                        {
                            var bar = plugin.ImportBar(ImGui.GetClipboardText());
                            foreach (var sh in bar.ShortcutList)
                            {
                                shortcuts.Add(sh);
                            }
                            config.Save();
                            ImGui.CloseCurrentPopup();
                        }
                        catch (Exception e2)
                        {
                            PluginLog.LogError("Invalid import string!");
                            PluginLog.LogError($"{e.GetType()}\n{e.Message}");
                            PluginLog.LogError($"{e2.GetType()}\n{e2.Message}");
                        }
                    }
                }
                if (ImGui.IsItemHovered())
                {
                    ImGui.SetTooltip("Import a shortcut from the clipboard,\n" +
                                     "or import all of another bar's shortcuts.");
                }

                ClampWindowPos();

                ImGui.EndPopup();
            }
        }
Exemple #2
0
 public void ImportBar(string import)
 {
     try
     {
         AddBar(QoLBar.ImportBar(import));
     }
     catch (Exception e) // Try as a shortcut instead
     {
         try
         {
             var sh  = QoLBar.ImportShortcut(ImGui.GetClipboardText());
             var bar = new BarConfig();
             bar.ShortcutList.Add(sh);
             AddBar(bar);
         }
         catch (Exception e2)
         {
             PluginLog.LogError("Invalid import string!");
             PluginLog.LogError($"{e.GetType()}\n{e.Message}");
             PluginLog.LogError($"{e2.GetType()}\n{e2.Message}");
         }
     }
 }
Exemple #3
0
        private void DrawPluginConfigWindow()
        {
            ImGui.SetNextWindowSizeConstraints(new Vector2(588, 500), ImGui.GetIO().DisplaySize);
            ImGui.Begin("QoL Bar Configuration", ref configOpen);

            if (ImGui.Checkbox("Export on Delete", ref config.ExportOnDelete))
            {
                config.Save();
            }
            ImGui.SameLine(ImGui.GetWindowWidth() / 2);
            if (ImGui.Checkbox("Resizing Repositions Bars", ref config.ResizeRepositionsBars))
            {
                config.Save();
            }
            if (ImGui.IsItemHovered())
            {
                ImGui.SetTooltip("Undocked bars will automatically readjust if you change resolutions.");
            }
            if (ImGui.Checkbox("Use Hotbar Frames on Icons", ref config.UseIconFrame))
            {
                config.Save();
            }
            if (ImGui.IsItemHovered())
            {
                ImGui.SetTooltip("Might cause lag.");
            }

            ImGui.Spacing();
            ImGui.Spacing();
            ImGui.Spacing();
            ImGui.Spacing();
            ImGui.SameLine(30);
            ImGui.Text("Bar Manager");
            ImGui.Spacing();
            ImGui.Separator();

            Vector2 textsize = new Vector2(-1, 0);
            float   textx    = 0.0f;

            ImGui.Columns(3, "QoLBarsList", false);
            for (int i = 0; i < bars.Count; i++)
            {
                ImGui.PushID(i);

                ImGui.Text($"#{i + 1}");
                ImGui.SameLine();

                textx = ImGui.GetCursorPosX();

                ImGui.SetNextItemWidth(-1);
                if (ImGui.InputText("##Title", ref config.BarConfigs[i].Title, 32))
                {
                    config.Save();
                }

                textsize = ImGui.GetItemRectSize();

                ImGui.NextColumn();

                if (ImGui.Button("O"))
                {
                    ImGui.OpenPopup($"BarConfig##{i}");
                }
                if (ImGui.IsItemHovered())
                {
                    ImGui.SetTooltip("Options");
                }
                bars[i].BarConfigPopup();
                ImGui.SameLine();
                if (ImGui.Button(config.BarConfigs[i].Hidden ? "R" : "H"))
                {
                    bars[i].ToggleVisible();
                }
                if (ImGui.IsItemHovered())
                {
                    ImGui.SetTooltip(config.BarConfigs[i].Hidden ? "Reveal" : "Hide");
                }

                ImGui.NextColumn();

                if (ImGui.Button("↑") && i > 0)
                {
                    var b = bars[i];
                    bars.RemoveAt(i);
                    bars.Insert(i - 1, b);

                    var b2 = config.BarConfigs[i];
                    config.BarConfigs.RemoveAt(i);
                    config.BarConfigs.Insert(i - 1, b2);
                    config.Save();
                    RefreshBarIndexes();
                }
                ImGui.SameLine();
                if (ImGui.Button("↓") && i < (bars.Count - 1))
                {
                    var b = bars[i];
                    bars.RemoveAt(i);
                    bars.Insert(i + 1, b);

                    var b2 = config.BarConfigs[i];
                    config.BarConfigs.RemoveAt(i);
                    config.BarConfigs.Insert(i + 1, b2);
                    config.Save();
                    RefreshBarIndexes();
                }
                ImGui.SameLine();
                if (ImGui.Button("Export"))
                {
                    ImGui.SetClipboardText(plugin.ExportBar(config.BarConfigs[i], false));
                }
                if (ImGui.IsItemHovered())
                {
                    ImGui.SetTooltip("Export to clipboard without default settings (May change with updates).\n" +
                                     "Right click to export with every setting (Longer string, doesn't change).");

                    if (ImGui.IsMouseReleased(1))
                    {
                        ImGui.SetClipboardText(plugin.ExportBar(config.BarConfigs[i], true));
                    }
                }

                if (i > 0)
                {
                    ImGui.SameLine();
                    if (ImGui.Button(config.ExportOnDelete ? "Cut" : "Delete"))
                    {
                        plugin.ExecuteCommand("/echo <se> Right click to delete!");
                    }
                    if (ImGui.IsItemHovered())
                    {
                        ImGui.SetTooltip($"Right click this button to delete bar #{i + 1}!" +
                                         (config.ExportOnDelete ? "\nThe bar will be exported to clipboard first." : ""));

                        if (ImGui.IsMouseReleased(1))
                        {
                            if (config.ExportOnDelete)
                            {
                                ImGui.SetClipboardText(plugin.ExportBar(config.BarConfigs[i], false));
                            }

                            bars.RemoveAt(i);
                            config.BarConfigs.RemoveAt(i);
                            config.Save();
                            RefreshBarIndexes();
                        }
                    }
                }

                ImGui.NextColumn();

                ImGui.PopID();
            }

            ImGui.Separator();
            ImGui.Spacing();
            ImGui.SameLine(textx);
            if (ImGui.Button("+", textsize))
            {
                AddBar(new BarConfig());
            }
            ImGui.NextColumn();
            ImGui.NextColumn();
            if (ImGui.Button("Import", textsize))
            {
                try
                {
                    AddBar(plugin.ImportBar(ImGui.GetClipboardText()));
                }
                catch (Exception e) // Try as a shortcut instead
                {
                    try
                    {
                        var sh  = plugin.ImportShortcut(ImGui.GetClipboardText());
                        var bar = new BarConfig();
                        bar.ShortcutList.Add(sh);
                        AddBar(bar);
                    }
                    catch (Exception e2)
                    {
                        PluginLog.LogError("Invalid import string!");
                        PluginLog.LogError($"{e.GetType()}\n{e.Message}");
                        PluginLog.LogError($"{e2.GetType()}\n{e2.Message}");
                    }
                }
            }
            if (ImGui.IsItemHovered())
            {
                ImGui.SetTooltip("Import a bar from the clipboard,\n" +
                                 "or import a single shortcut as a new bar.");
            }

            ImGui.Columns(1); // I just wanna know who did this and where they live

            ImGui.End();
        }