GMX_menu

A simple userscript menu manager, treats all menu items as a GMX_menu object.

Dit script moet niet direct worden geïnstalleerd - het is een bibliotheek voor andere scripts om op te nemen met de meta-richtlijn // @require https://update.greasyfork.org/scripts/473817/1240400/GMX_menu.js

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

Maker
DianaBlessU
Versie
0.1.1
Gemaakt op
24-08-2023
Bijgewerkt op
25-08-2023
Grootte
2,82 KB
Licentie
N.v.t.

A simple userscript menu manager, treats all menu items as a GMX_menu object.

Key Features:

  1. Create and access menu items via GMX_menu object, no need to care the item order.
  2. Caption text of menu item can be changed at any time.
  3. Menu item can act as a Check box.
  4. Menu items can act as a radio button group.

Usage:

    // To use this script, you need to grant GM_registerMenuCommand and GM_unregisterMenuCommand.

    // Install a new menu, (all previous menu items will be removed)

    //  The value of name must be unique in the menu.
    //  If autoRefresh is true, when the menu item is modified, the rerendering will be automatically executed, 
    //  otherwise its appearance will remain unchanged unless you manually call the GMX_menu.refresh() method.
    //  If a menu item has a checked attribute, it will be rendered as a checkable entry.
    //  If it also has a group attribute at the same time, it will be associated to a radio button group.

    const sampleOptions = {
        autoRefresh: true,
        items: [
            {name: "cmd1", text: "🥣 Radio 1", checked: true, group: "g1", callback: ()=>{alert("Radio 1 clicked!")}},
            {name: "cmd2", text: "⭐ Radio 2", checked: false, group: "g1", callback: ()=>{alert("Radio 2 clicked!")}},
            {name: "sep1", separator: true},
            {name: "cmd3", text: "🍬 Checkbox 3", checked: false, callback: ()=>{alert("Checkbox 3 clicked!")}},
            {name: "cmd4", text: "🍦 Command 4", callback: ()=>{alert("Command 4 clicked!")}},
        ]
    }
    GMX_menu.install(sampleOptions);

    // Remove menu.
    GMX_menu.uninstall()

    // Change the caption text of a menu item by name.
    GMX_menu.setText(name, text)

    // Get the check state of a menu item by name.
    // If the item is unchackable, it will returns undefined.
    GMX_menu.isChecked(name)

    // Trigger the select event of specific menu item by name.
    // The check state of the item will also be changed if it's checkable.
    GMX_menu.triggerSelect(name)

    // Select the specific item on userscript menu without excuting it's callback function.
    // Usually used to modify the check state of a specific menu item.
    GMX_menu.renderSelect(name)

    // Rebuild the whole menu by installed option.
    GMX_menu.refresh()