:note

ボタンフォントをドロップダウンメニューで変える

ScriptUIでダイアログやパレットを表示した後でも Button の内容は変えられるので、フォントの種類とサイズも変えられるだろうということでテスト。

DropDownList での選択が反映されるフォントとしないフォントがあって、その違いはよくわからない(スタイルがRegular, Bold, Italicくらいしか認識しない?)けど、 必要なフォントだけをフィルターして実装すればよさそう。

ただし、複数ボタンへの適用はこのままじゃできないので、コンテナ単位で Peter Kahrelさんの ScriptUI for dummies に載っているset_font関数を使う。

ボタンフォントをドロップダウンメニューで変える /images/2010/12/result_button_font.png
ボタンフォントをドロップダウンメニューで変える /images/2010/12/select_button_font.png
/**
 * button font change test
 * 
 * 2010-12-01 mg 
 */
var dlg = new Window('dialog',"switch button font");
dlg.orientation = 'row'
var btn = dlg.add('button', [0,0,200,200], 'abcde\nあいうえ\nお猪口\n1234');

dlg.grp = dlg.add('group');
dlg.grp.orientation = 'column';

var font_ddl = dlg.grp.add('dropdownlist', [0,0,120,23], app.fonts.everyItem().name);
var size_arr = [12,18,24,32,48,56];
var size_ddl = dlg.grp.add('dropdownlist', [0,0,120,23], size_arr);
font_ddl.selection = 0;
size_ddl.selection = 0;

font_ddl.onChange = function () {
  btn.graphics.font = ScriptUI.newFont(
    app.fonts[font_ddl.selection.index].fontFamily, 
    app.fonts[font_ddl.selection.index].fontStyleName,
    size_arr[size_ddl.selection.index]
    );
}
size_ddl.onChange = function () {
  btn.graphics.font = ScriptUI.newFont(
    app.fonts[font_ddl.selection.index].fontFamily, 
    app.fonts[font_ddl.selection.index].fontStyleName,
    size_arr[size_ddl.selection.index]
    );
}
dlg.show();
 
comments powered by Disqus
back to top