FilterConfigItems

Derive Macro FilterConfigItems 

Source
#[derive(FilterConfigItems)]
{
    // Attributes available to this derive:
    #[track]
    #[check]
    #[color]
    #[select]
    #[file]
}
Available on crate feature filter only.
Expand description

FilterConfigItems を自動で実装するためのマクロ。

§Attributes

  • structのフィールドはすべてちょうど1つの属性を持つ必要があります。

§track

#[track(name = "サンプル整数", range = 0..=100, default = 50, step = 1.0)]
int_field: i32,
#[track(name = "サンプル小数", range = 0.0..=1.0, default = 0.5, step = 0.01)]
float_field: f64,
  • name: トラックバーの名前。省略した場合、フィールド名が使用されます。

  • range: トラックバーの範囲。閉区間で指定します(例: 0.0..=1.0)。

  • default: トラックバーの初期値。

  • step: トラックバーのステップ値。1.0, 0.1, 0.01, 0.001 のいずれかを指定します。

  • rangedefaultstepで割り切れる値である必要があります。

  • 値の型はプリミティブ、厳密にはvalue as _で変換可能な型である必要があります。

§check

#[check(name = "サンプルチェックボックス", default = true)]
bool_field: bool,
  • name: チェックボックスの名前。省略した場合、フィールド名が使用されます。

  • default: チェックボックスの初期値。

  • 値の型はboolである必要があります。

§color

#[color(name = "サンプルカラー", default = 0x48b0d5)]
color_field: aviutl2::filter::FilterConfigColorValue,
#[color(name = "サンプルカラー2", default = "#48b0d5")]
color_field2: aviutl2::filter::FilterConfigColorValue,
#[color(name = "サンプルカラー3", default = (72, 176, 213))]
color_field3: aviutl2::filter::FilterConfigColorValue,
  • name: 色選択の名前。省略した場合、フィールド名が使用されます。

  • default: 色の初期値。0xRRGGBB形式の整数、"#RRGGBB"形式の文字列、または(R, G, B)形式のタプルで指定します。

  • 値の型はFrom<aviutl2::filter::FilterConfigColorValue>を実装している必要があります。

§select

#[select(
    name = "サンプルセレクトボックス",
    items = ["オプション1", "オプション2", "オプション3"],
    default = 0
)]
select_field: usize,
#[derive(aviutl2::filter::FilterConfigSelectItems)]
enum MySelectItem {
   #[item(name = "Hoge")]
   Hoge,
   #[item(name = "Fuga")]
   Fuga,
}

#[derive(aviutl2_macros::FilterConfigItems)]
struct MyConfig {
    #[select(
        name = "サンプルセレクトボックス",
        items = MySelectItem,
        default = MySelectItem::Hoge
    )]
    select_field: MySelectItem,
}
  • name: セレクトボックスの名前。省略した場合、フィールド名が使用されます。

  • items: セレクトボックスの項目のリスト、またはaviutl2::filter::FilterConfigSelectItemsを実装したenumの名前。

  • default: セレクトボックスの初期値。itemsのインデックス、またはenumのVariantを指定します。

  • 値の型はdefaultitemsのインデックスの場合はusizedefaultがenumのVariantの場合はそのenumである必要があります。

§file

#[file(name = "サンプルファイル", filters = {
    "テキストファイル" => ["txt"],
    "すべてのファイル" => []
})]
file_field: Option<std::path::PathBuf>,
  • name: ファイル選択の名前。省略した場合、フィールド名が使用されます。

  • filters: ファイルフィルタのリスト。キーがフィルタ名、値が拡張子のリストです。

  • 値の型はOption<std::path::PathBuf>である必要があります。

§Example

#[derive(Debug, aviutl2::filter::FilterConfigItems)]
struct FilterConfig {
    #[track(name = "サンプル整数", range = -100..=100, default = 0, step = 1.0)]
    sample_integer: i32,
    #[track(name = "サンプル小数", range = -1.0..=1.0, default = 0.0, step = 0.01)]
    sample_float: f64,
    #[check(name = "サンプルチェックボックス", default = true)]
    sample_checkbox: bool,
    #[select(
        name = "サンプルセレクトボックス",
        items = ["オプション1", "オプション2", "オプション3"],
        default = 0
    )]
    sample_select: usize,
    #[color(name = "サンプルカラー", default = 0x48b0d5)]
    sample_color: aviutl2::filter::FilterConfigColorValue,
    #[file(name = "サンプルファイル", filters = {
        "テキストファイル" => ["txt"],
        "すべてのファイル" => [],
    })]
    sample_file: Option<std::path::PathBuf>,
}

§See Also