MFGドキュメント
Home
Getting Started
Reference
  • ja-JP
  • en-US
Home
Getting Started
Reference
  • ja-JP
  • en-US
  • MEP 29: ドロップダウンのウィジェット

MEP 29: ドロップダウンのウィジェット

  • Created: 2026-03-22 11:58:00
  • Updated: 2026-04-07 12:52:00
  • Status: Supported(v1.0.10)

モチベーション

ハーフトーンなどで循環パターンをドロップダウンで選ぶ、のような事をしたい。

提案: @param_i32のウィジェットにDROPDOWNを追加

以下のようなドロップダウンのウィジェット型と、文字列配列の引数を追加したい。

@param_i32 pattern(DROPDOWN, label="形", items=["四角", "丸", "星"])

こうすると、patternは0, 1, 2のどれか。デフォルトは0。

検討

ウィジェットの名前と引数が主な検討事項。

DROPDOWNかDROP_DOWNか

そもそもにdrop downなのかdropdownなのか、という問題で、 業界的には両方広く使われているので、どちらでも良い、というのが結論。

COLOR_PICKERが2つに分かれるのでDROP_DOWNもありうる。 だがCHECKBOXなので一つの方が自然という気もする。

htmlやcss界隈ではdropdown-menuなどとなる事が多いので、 CHECKBOXと同じ扱いとして一つの単語が良いのではないか。

  • Dropdowns · Bootstrap bootstrapはdropdown
  • Create a drop-down list - Microsoft Support MSのドキュメントではdrop-down list

drop-down listはdropとdownの間が空白では無いので2つの単語という訳でもなく、曖昧な所に思える。

initは無いのか?

初期値は選べても良い気はする。 一方で最初の実装で必須という気もしないし、後から追加も出来るので、 まずは必要最低限から始める、というYAGNI的な精神で、とりあえずinitは無しにしよう、という判断。

数字はマジックナンバーになるのか?

0, 1, 2, 3という数字は、いかにも定数にしたい。 概念的にはenumにしたい。 現状のenumはMFGの処理系内部には存在しているのだが、ユーザー定義は出来ない状態になっている。

現状は以下の理由からマジックナンバーである事を受け入れる

  • 国際化してない時には文字列を並べるだけで使いたい
  • enumのサポートを追加しないといけない
  • 単なる数字になるのは学習しやすい

国際化と配列

今回はじめてparamの中に配列がでてきた。 MEP 19: paramの国際化との兼ね合いも書いておく。

国際化ではダブルクオートをとって直接リソースIDとなるので、以下のようになる。

items=[$LABEL_SQUARE, $LABEL_CIRCLE, $LABEL_STAR]

全体としては以下。

@param_i32 pattern(DROPDOWN, label="形", items=[$LABEL_SQUARE, $LABEL_CIRCLE, $LABEL_STAR])
最終更新: 2026/04/08 6:19
Contributors: Kazuma Arino