GMX_menu

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

Ten skrypt nie powinien być instalowany bezpośrednio. Jest to biblioteka dla innych skyptów do włączenia dyrektywą meta // @require https://update.greasyfork.org/scripts/473817/1240400/GMX_menu.js

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Greasemonkey lub Violentmonkey.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana będzie instalacja rozszerzenia Tampermonkey lub Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, musisz zainstalować rozszerzenie menedżera skryptów użytkownika.

(Mam już menedżera skryptów użytkownika, pozwól mi to zainstalować!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Musisz zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

(Mam już menedżera stylów użytkownika, pozwól mi to zainstalować!)

Autor
DianaBlessU
Wersja
0.1.1
Utworzono
24-08-2023
Zaktualizowano
25-08-2023
Rozmiar
2,82 KB
Licencja
Brak licencji

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()