#[derive(FilterConfigItems)]
{
// Attributes available to this derive:
#[track]
#[check]
#[color]
#[select]
#[file]
}
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のいずれかを指定します。 -
range、defaultはstepで割り切れる値である必要があります。 -
値の型はプリミティブ、厳密には
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を指定します。 -
値の型は
defaultがitemsのインデックスの場合はusize、defaultが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>,
}