TOP/拡張スクリプト/チュートリアル - カラム表示

チュートリアル - カラム表示

BMX2WAV ではリストビューでエントリ(BMS ファイル)の情報をカラムで表示していますが、 これはスクリプトによりどのような情報を表示するかが記述してあり、それにより内容が表示されています。

ここではスクリプトを編集することで、表示する内容を変更・追加をする方法について説明しています。

スクリプトファイルを追加する

BMX2WAV ではユーザが記述するスクリプトは bmx2wav.nut になります。 このファイルは初期段階では存在しないのでユーザが作成する必要があります。

カラムの順番を変更する。

BMX2WAV 本体のカラム表示が定義されているのは ファイル bmx2wav.class.nut になります。 このファイル中の以下の部分は BMX2WAV 本体のカラム表示のカラムグループ「簡易」を定義している部分です。

{
  local group = ColumnGroup( "簡易" );
  group.columns.append( ParameterColumn() );
  group.columns.append( HeaderColumn( "TITLE", HeaderColumn.compare_as_string ) );
  group.columns.append( HeaderColumn( "ARTIST", HeaderColumn.compare_as_string ) );
  group.columns.append( PlayerColumn() );
  group.columns.append( HeaderColumn( "PLAYLEVEL", HeaderColumn.compare_as_integer_desc ) );
  Main.column_groups.append( group );
}

まずはこの部分をbmx2wav.nut にコピー&ペーストしてから、以下のようにカラムの名称を変更します。

// 編集後 1
{
  // ユーザ追加に名称を変更
  local group = ColumnGroup( "ユーザ追加" );
  group.columns.append( ParameterColumn() );
  group.columns.append( HeaderColumn( "TITLE", HeaderColumn.compare_as_string ) );
  group.columns.append( HeaderColumn( "ARTIST", HeaderColumn.compare_as_string ) );
  group.columns.append( PlayerColumn() );
  group.columns.append( HeaderColumn( "PLAYLEVEL", HeaderColumn.compare_as_integer_desc ) );
  Main.column_groups.append( group );
}

編集した後に BMX2WAV を起動すると、カラムグループに「ユーザ追加」が追加されています。

BMX2WAV を終了させた後に、更に編集して TITLE を定義している行と ARTIST を定義している行を入れ替えます。

// 編集後 2
{
  local group = ColumnGroup( "ユーザ追加" );
  group.columns.append( ParameterColumn() );
  // TITLE と ARTIST の順番を入れ替える
  group.columns.append( HeaderColumn( "ARTIST", HeaderColumn.compare_as_string ) );
  group.columns.append( HeaderColumn( "TITLE", HeaderColumn.compare_as_string ) );
  group.columns.append( PlayerColumn() );
  group.columns.append( HeaderColumn( "PLAYLEVEL", HeaderColumn.compare_as_integer_desc ) );
  Main.column_groups.append( group );
}

編集した後に BMX2WAV を起動すると、 #ARTIST カラムと #TITLE カラムの順番が入れ替わっています。

BMS ヘッダのカラムを追加する

前述の順番を変更した後に、カラムグループ「ユーザ追加」に BMS のヘッダの RANK を追加します。 前述の順番を変更した部分を更に変更します。

まずは起動した BMX2WAV を終了させて、 bmx2wav.nut の該当部分を以下のように編集します。

// 編集後 3
{
  local group = ColumnGroup( "ユーザ追加" );
  group.columns.append( ParameterColumn() );
  group.columns.append( HeaderColumn( "ARTIST", HeaderColumn.compare_as_string ) );
  group.columns.append( HeaderColumn( "TITLE", HeaderColumn.compare_as_string ) );
  group.columns.append( PlayerColumn() );
  group.columns.append( HeaderColumn( "PLAYLEVEL", HeaderColumn.compare_as_integer_desc ) );
  // 以下の1 行を追加
  group.columns.append( HeaderColumn( "RANK", HeaderColumn.compare_as_integer_desc ) );
  Main.column_groups.append( group );
}

HeaderColumn のコンストラクタの引数に HeaderColumn.compare_as_integer_desc がありますが、 これはカラムヘッダーをクリックしてソートする際にどのようにソートするかを指定しています。 この場合は整数として降順に並べる旨が指定されています。

編集した後に BMX2WAV を起動すると、 #RANK のカラムが追加されていて、 BMS を登録するとその BMS の RANK が表示されます。

新たにカラムグループを追加する

自分好みに編集したカラムグループを作成します。

bmx2wav.nut に以下のように記述します。

{
  local group = ColumnGroup( "自分好み" );
  Main.column_groups.append( group );
}

編集した後に BMX2WAV を起動するとカラムグループに「自分好み」が追加されており、 それを選択すると、カラムが何も無い(ファイルパスだけ表示)されている事が確認できます。

ここに好きなカラムを追加していきます。 ここでは BMS ヘッダの TITLE と ARTIST と、親フォルダ名、変換設定、の順番で表示させるようにします。

{
  local group = ColumnGroup( "自分好み" );
  group.columns.append( HeaderColumn( "TITLE", HeaderColumn.compare_as_string ) );
  group.columns.append( HeaderColumn( "ARTIST", HeaderColumn.compare_as_string ) );
  group.columns.append( ParentDirectoryColumn() );
  group.columns.append( ParameterColumn() );
  Main.column_groups.append( group );
}

他にどんな情報を表示させる事が可能かについては Column クラス を参照してください。

TOP/拡張スクリプト/チュートリアル - カラム表示