menus

Attribute Macro menus 

Source
#[menus]
Available on crate feature generic only.
Expand description

汎用プラグインのメニュー登録実装を生成するマクロ。

このマクロはimplブロックに対して適用されます。 implブロック内で定義された関数が汎用プラグインのメニューとして登録されます。

ブロック内の関数はすべて以下のシグネチャのうちいずれかを持つ必要があります:

fn func1(edit_handle: &mut aviutl2::generic::EditSection) -> ()
fn func2(edit_handle: &mut aviutl2::generic::EditSection) -> Result<(), E>
where
    Box<dyn std::error::Error>: From<E>,

§Attributes

§import

汎用プラグインのインポートメニューとして登録します。

  • name: メニューに表示される名前を指定します。
  • error: エラー発生時のハンドリング方法を指定します。"alert""log""ignore"のいずれかを指定します。
    • "alert": エラー発生時にアラートダイアログを表示します。(デフォルト)
    • "log": エラー発生時にログにエラーメッセージを出力します。
    • "ignore": エラー発生時に何も行いません。

§export

汎用プラグインのエクスポートメニューとして登録します。 パラメーターはimport属性と同様です。

§layer

汎用プラグインのレイヤーメニューとして登録します。 パラメーターはimport属性と同様です。

§object

汎用プラグインのオブジェクトメニューとして登録します。 パラメーターはimport属性と同様です。

§Example

#[aviutl2::plugin(GenericPlugin)]
struct MyGenericPlugin;

#[aviutl2::generic::menus]
impl MyGenericPlugin {
    #[import(name = ".txtファイルをインポート")]
    fn import_text(edit_handle: &mut aviutl2::generic::EditSection) -> aviutl2::AnyResult<()> {
        // ...
    }

    #[export(name = ".txtファイルをエクスポート")]
    fn export_text(edit_handle: &mut aviutl2::generic::EditSection) -> aviutl2::AnyResult<()> {
        // ...
    }

    #[layer(name = "レイヤーを複製")]
    fn duplicate_layer(edit_handle: &mut aviutl2::generic::EditSection) -> aviutl2::AnyResult<()> {
        // ...
    }

    #[object(name = "オブジェクトを削除")]
    fn delete_object(edit_handle: &mut aviutl2::generic::EditSection) -> aviutl2::AnyResult<()> {
        // ...
    }
}