ImmediateGUI

An IMGUI inspired GUI Framework for javascript thats designed to be as simple to use as IMGUI.

此腳本不應該直接安裝,它是一個供其他腳本使用的函式庫。欲使用本函式庫,請在腳本 metadata 寫上: // @require https://update.cn-greasyfork.org/scripts/535798/1671620/ImmediateGUI.js

作者
TetteDev
版本
0.0.1.20251004131406
建立日期
2025-05-12
更新日期
2025-10-04
尺寸
78.7 KB
授權條款
未知

Example Images (and pseudo code how they were made)

Example

const $$ = new ImmediateGUI({
    theme: 'dark',
    position: 'left',
    width: 400,
    draggable: true,
    title: 'Example GUI',
    titleLeftAligned: true,
});

$$.BeginTabs(['Tab 1', 'Tab 2', 'Tab 3'], 0);
    // $$.SetActiveTab(0) is implicitly called when the first tab is created
    $$.Button("Tab 1 Button 1", () => { console.log('Tab 1 Button 1 clicked'); });

    $$.SetActiveTab('Tab 2'); /* Same as calling .SetActiveTab('1') as the second tab is the tab with the text 'Tab 2' */
        $$.Button("Tab 2 Button 1", () => { console.log('Tab 1 Button 1 clicked'); });
        $$.Textbox("Tab 2 Textbox 1", "Tab 2 Textbox 1");
        $$.ToggleSwitch("Tab 2 Toggle", true);

    $$.SetActiveTab(2);
        $$.TextArea("Tab 3 TextArea 1");
        const pb = $$.ProgressBar(0, 0, 100, true);
        setInterval(() => {
            const value = pb.getValue(); /* pb.value */
            if (value >= pb.max) {
                pb.setValue(pb.min);
                //pb.value = pb.min;
            } else {
                pb.setValue(value + 1);
                //pb.value = value + 1;
            }
        }, 500);
$$.EndTabs();
$$.Header("Example Header", 5);
$$.ToggleSwitch("Dark Mode", true, '', (value) => { $$.SetTheme(value ? 'dark' : 'light'); });
$$.BeginRow(0);
    $$.Textbox("Row Textbox 1");
    $$.Button("Row Button 1");
    $$.Button("Row Button 2");
$$.EndRow();
$$.Image("https://duckduckgo.com/assets/logo_header.v109.svg", "Example Image", 100, 100);
$$.Button("Example Button", null);
$$.Textbox("Example Textbox");
$$.TextArea("Example TextArea");
$$.Label("Example Label");
$$.ProgressBar(64, 0, 100, true);
$$.ColorPicker('#000000');
$$.DatePicker();
$$.Dropdown(["Option 1", "Option 2", "Option 3"], "Option 1");
$$.NumberInput("Example Number Input", 0, 0, 100);
$$.Slider(0, 100, 25);
$$.Checkbox("Example Checkbox", true);
$$.BeginSection("Example Section (Non collapsable)", false);
$$.Button("Control inside section");
$$.Textbox("Textbox inside section");
$$.EndSection();
$$.BeginSection("Example Section (Collapsable)", true);
$$.Button("Control inside section");
$$.EndSection();
$$.BeginIndentation(1);
    $$.Button("Indented Control (Level 1)");
$$.EndIndentation();
$$.BeginIndentation(2);
    $$.Button("Indented Control (Level 2)");
$$.EndIndentation();
$$.BeginIndentation(3);
    $$.Button("Indented Control (Level 3)");
$$.EndIndentation();
$$.BeginIndentation(4);
    $$.Button("Indented Control (Level 4)");
$$.EndIndentation();
$$.BeginIndentation(2);
    $$.Button("Indented Control (Level 2 again)");
$$.EndIndentation();
$$.Label("Example Separator");
$$.Separator();
$$.BeginSection("Example Radio Button Group", true);
    $$.RadioButtons(['Option 1', 'Option 2', 'Option 3', 'Option 4', 'Option 5'], 'Option 1');
$$.EndSection();
$$.Button("Spawn Modal", () => {
    $$.ShowModal("Example Modal", "Example Modal Header", {
        type: 'success',
        buttons: [
            { text: 'OK', callback: () => { console.log('OK clicked'); }, primary: true },
            { text: 'Cancel', callback: () => { console.log('Cancel clicked'); } },
        ],
    });
});
$$.Button("Switch Theme", () => { $$.SetTheme($$.options.theme === 'dark' ? 'light' : 'dark'); });
$$.Show();

Documentation (AI Generated) can be found here: https://github.com/TetteDev/ImmediateGUI-Documentation/blob/main/README.md