右寄せ左寄せなど、タイル位置を揃えるための属性 alignment の紹介です。
予備知識
この記事で使った6つのタイルをクラスタに分けたダイアログボックスに、さらにalignment属性も使ってレイアウトを変えていきます。
属性 alignment
alignment
属性 alignment は、タイル揃えのための属性です。
column では left (左寄せ)、 centered(中央揃え)、right (右寄せ)
row では、 top (上寄せ)、 centered(中央揃え)、bottom (下寄せ)
に設定できます。
alignment属性を入れていない場合は、columnはleft (左寄せ)、row では centered(中央揃え)になります。
children_alignment
属性children_alignmentは、クラスタ内のすべてのタイルを揃える属性です。
column では left (左寄せ)、 centered(中央揃え)、right (右寄せ)
row では、 top (上寄せ)、 centered(中央揃え)、bottom (下寄せ)
に設定できます。
alignment属性を入れていない場合は、columnはleft (左寄せ)、row では centered(中央揃え)になります。
alignment 属性使用例
ダイアログボックスを出すAutoLISPプログラム
ダイアログボックスを呼び出し、6つのタイルに文字を表示させるコマンドです。
(defun c:test (/ dcl_id Act)
(setq dcl_id (load_dialog "JagaDCL.dcl")) ;
(if (not (new_dialog "TestDB" dcl_id))
(progn
(princ "***ダイアログボックスが見つかりません***")
(exit)
));if
;-----------------------------------------------------------
(set_tile "A" "Tile A" )
(set_tile "B" "Tile B" )
(set_tile "C" "Tile C" )
(set_tile "D" "Tile D" )
(set_tile "E" "Tile E" )
(set_tile "F" "Tile F" )
;-----------------------------------------------------------
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
;-----------------------------------------------------------
(setq Act (start_dialog))
(unload_dialog dcl_id)
;-----------------------------------------------------------
(cond
((= Act 0)(princ "キャンセルキーを押しました"))
((= Act 1)(princ "OKを押しました"))
);cond
;----------------------------------------------------------
(princ));defun
以下のDCLファイルはこのAutoLISPから読み込むので、JagaDCL.dclという名前で、サポートファイルの検索パス内フォルダに保存してください。
属性無し
まず、 alignment 属性を付けなかった場合のダイアログボックスです。
TestDB :dialog
{label = "TITLE";
//--------------------------------------------------------
:row{
:boxed_column{label = "COLUMN 1";
:text { key = "A"; }
:text { key = "B"; }
:text { key = "C"; }
}
:boxed_column{ label = "COLUMN 3";
:text { key = "D"; }
:text { key = "E"; }
:text { key = "F"; }
}
}
//--------------------------------------------------------
ok_cancel;
}
(alignment属性が目立つように、ダイアログボックスにheight属性も付けています。)
TestDB :dialog
{label = "TITLE"; height = 20;
//--------------------------------------------------------
:column {
:boxed_row {label = "ROW 1";
:text { key = "A"; }
:text { key = "B"; }
:text { key = "C"; }
}
:boxed_row{ label = "ROW 2";
:text { key = "D"; }
:text { key = "E"; }
:text { key = "F"; }
}
}
//--------------------------------------------------------
ok_cancel;
}
属性付き
COLUMN 1 には、それぞれのタイルにalignment属性を付けています。
COLUMN 2 には、それぞれのクラスタにchildren_alignment属性を付けています。
TestDB :dialog
{label = "TITLE";
//--------------------------------------------------------
:row{
:boxed_column{label = "COLUMN 1";
:text { key = "A"; alignment = left;}
:text { key = "B"; alignment = centered;}
:text { key = "C"; alignment = right;}
}
:boxed_column{ label = "COLUMN 2"; children_alignment = right;
:text { key = "D"; }
:text { key = "E"; }
:text { key = "F"; }
}
}
//--------------------------------------------------------
ok_cancel;
}
ROW 1 には、それぞれのタイルにalignment属性を付けています。
ROW 2 には、それぞれのクラスタにchildren_alignment属性を付けています。
TestDB :dialog
{label = "TITLE"; height = 20;
//--------------------------------------------------------
:column {
:boxed_row {label = "ROW 1";
:text { key = "A"; alignment = top;}
:text { key = "B"; alignment = centered;}
:text { key = "C"; alignment = bottom;}
}
:boxed_row{ label = "ROW 2"; children_alignment = bottom;
:text { key = "D"; }
:text { key = "E"; }
:text { key = "F"; }
}
}
//--------------------------------------------------------
ok_cancel;
}
まとめ
- alignment属性では、タイルの位置揃えができる。
- column では left (左寄せ)、 centered(中央揃え)、right (右寄せ)
- row では、 top (上寄せ)、 centered(中央揃え)、bottom (下寄せ)
- alignment属性無しだと、columnはleft (左寄せ)、row では centered(中央揃え)
- alignmentはタイルごとの属性。
- children_alignmentはクラスタの属性でクラスタ内のタイルすべてに適用される。