Illustrators RE 2

適当な感じて始めてしまいましたが、少々目をひいてしまったようですね。注目されるとプレッシャーがw
それもこれも日頃からIllustratorに対する積もり積もった不満が表出しているのかもしれません。
まあ、日頃のらりくらりとコーディングしてるので気を引き締めるには良いのかも。
では本日の分、インターフェース周りの諸々の実装から始めましょう。この辺りはまだまだややこしい部分は出てきません。
プロパティを取得してUIに反映させるのがメインです。

まずは下記をご覧下さい。

var charStyles= {
    styles: app.activeDocument.characterStyles,
    list: function(){
        var result = new Array();
        for (var i=0;i<this.styles.length;i++){
            result.push(this.styles[i]);
            }
        return result;
        },
    names: function(){
        var result = new Array();
        for (var i=0;i<this.styles.length;i++){
            result.push(this.styles[i].name);
            }
        return result;
        }
    }

var paraStyles = {
    styles: app.activeDocument.paragraphStyles,
    list: function(){
        var result = new Array();
        for (var i=0;i<this.styles.length;i++){
            result.push(this.styles[i]);
            }
        return result;
        },
    names: function(){
        var result = new Array();
        for (var i=0;i<this.styles.length;i++){
            result.push(this.styles[i].name);
            }
        return result;
        }
    }

function getGryph(){
    var result;
    switch(ls3.selection.index){
        case 1:
        result = AlternateGlyphsForm.DEFAULTFORM;
        break;
        case 2:
        result = AlternateGlyphsForm.EXPERT;
        break;
        case 3:
        result = AlternateGlyphsForm.FULLWIDTH;
        break;
        case 4:
        result = AlternateGlyphsForm.HALFWIDTH;
        break;
        case 5:
        result = AlternateGlyphsForm.JIS04FORM;
        break;
        case 6:
        result = AlternateGlyphsForm.JIS78FORM;
        break;
        case 7:
        result = AlternateGlyphsForm.JIS83FORM;
        break;
        case 8:
        result = AlternateGlyphsForm.JIS90FORM;
        break;
        case 9:
        result = AlternateGlyphsForm.PROPORTIONALWIDTH;
        break;
        case 10:
        result = AlternateGlyphsForm.QUARTERWIDTH;
        break;
        case 11:
        result = AlternateGlyphsForm.THIRDWIDTH;
        break;
        case 12:
        result = AlternateGlyphsForm.TRADITIONAL;
        break;
        default:
        result = AlternateGlyphsForm.DEFAULTFORM;
        break;
        }
    return result
    }

var  items0,items1 = new Array();
var items0 = charStyles.names();
var items1 = paraStyles.names();
items0.unshift(‘———-‘);
items1.unshift(‘———-‘);

var gryphfrm = [“———-“,”DEFAULTFORM”,”EXPERT”,”FULLWIDTH”,”HALFWIDTH”,
                “JIS04FORM”,”JIS78FORM”,”JIS83FORM”,”JIS90FORM”,
                “PROPORTIONALWIDTH”,”QUARTERWIDTH”,”THIRDWIDTH”,
                “TRADITIONAL”];

var allReplace = false;

var targetObj = [‘selection’, ‘document’, ‘activeLayer’];
var d = new Window (‘dialog’, ‘RE Grep for AI’, [100,100,600,430]);
    var pnl0 = d.add(‘panel’, [10,10,490,110] , ‘RegExp Strings’);
        var stTx0 = pnl0.add(‘statictext’, [10,10,60,25], ‘find’);
        var vTx0 = pnl0.add(‘edittext’, [70,10,460,45] , ”, {multiline:true});
        var stTx1 = pnl0.add(‘statictext’, [10,50,60,75] , ‘replace’);
        var vTx1 = pnl0.add(‘edittext’, [70,50,460,85], ”, {multiline:true});

     var pnl1 = d.add(‘panel’, [10,120,490,280], ‘Options’);
        var r0 = pnl1.add(‘radiobutton’, [10,10,150,41], “don’t change styles”);
        var r1 = pnl1.add(‘radiobutton’, [10,30,150,61], ‘change with styles’);
        var r2 = pnl1.add(‘radiobutton’, [10,50,150,81], ‘change only styles’);
        r0.value = true;
        var ckbx = pnl1.add(‘checkbox’,[10,70,150,101], ‘change with gryphs’);
        ckbx.value = false;
        var p0 = pnl1.add(‘panel’,[150,5,470,70], ‘search styles’)
            var ls0 = p0.add(‘dropdownlist’, [100,10,310,25], items0);
            var ls1 = p0.add(‘dropdownlist’, [100,30,310,45], items1);
            ls0.selection=0;
            ls1.selection=0;
            var stTx2 = p0.add(‘statictext’, [10,10,100,25] , ‘character style’);
            var stTx3 = p0.add(‘statictext’, [10,30,100,45] , ‘paragraph style’);
        var p1 = pnl1.add(‘panel’, [150,75,470,145], ‘replace styles’)
            var ls2 = p1.add(‘dropdownlist’, [100,10,310,25], items0);
            var ls3 = p1.add(‘dropdownlist’, [100,30,310,45], gryphfrm);
            ls2.selection=0;
            ls3.selection=0;
            var stTx4 = p1.add(‘statictext’, [10,10,100,25] , ‘character style’);
        
    var stTx5 = p1.add(‘statictext’, [10,30,100,45] , ‘alternate gryph’);
        var stTx6 = pnl1.add(‘statictext’, [10,100,100,115] , ‘select target’);
        var ls4 = pnl1.add(‘dropdownlist’, [10,120,125,140], targetObj);
        ls4.selection = 0;
    var btn0 = d.add(‘button’, [330,290,400,310], ‘cancel’, {name:’cancel’});
    var btn1 = d.add(‘button’, [410,290,480,310] , ‘apply’, {name:’ok’});
    btn1.onClick = function (){main()};
d.show();<this.styles.length;i++){ result.push(this.styles[i]);="" }="" return="" result;="" },="" names:="" function(){="" var="" result="new" array();="" for="" (var="" i="0;i<this.styles.length;i++){" result.push(this.styles[i].name);="" parastyles="{" styles:="" app.activedocument.paragraphstyles,="" list:="" function="" getgryph(){="" switch(ls3.selection.index){="" case="" 1:="" break;="" 2:="" 3:="" 4:="" 5:="" 6:="" 7:="" 8:="" 9:="" 10:="" 11:="" 12:="" default:="" items0,items1="new" items0="charStyles.names();" items1="paraStyles.names();" items0.unshift('———-');="" items1.unshift('———-');="" gryphfrm="["———-","DEFAULTFORM","EXPERT","FULLWIDTH","HALFWIDTH"," "jis04form","jis78form","jis83form","jis90form",="" "proportionalwidth","quarterwidth","thirdwidth",="" "traditional"];="" allreplace="false;" targetobj="['selection'," 'document',="" 'activelayer'];="" d="new" window="" ('dialog',="" 're="" grep="" ai',="" [100,100,600,430]);="" pnl0="d.add('panel'," [10,10,490,110]="" ,="" 'regexp="" strings');="" sttx0="pnl0.add('statictext'," [10,10,60,25],="" 'find');="" vtx0="pnl0.add('edittext'," [70,10,460,45]="" '',="" {multiline:true});="" sttx1="pnl0.add('statictext'," [10,50,60,75]="" 'replace');="" vtx1="pnl0.add('edittext'," [70,50,460,85],="" pnl1="d.add('panel'," [10,120,490,280],="" 'options');="" r0="pnl1.add('radiobutton'," [10,10,150,41],="" "don't="" change="" styles");="" r1="pnl1.add('radiobutton'," [10,30,150,61],="" 'change="" with="" styles');="" r2="pnl1.add('radiobutton'," [10,50,150,81],="" only="" r0.value="true;" ckbx="pnl1.add('checkbox',[10,70,150,101]," gryphs');="" ckbx.value="false;" p0="pnl1.add('panel',[150,5,470,70]," 'search="" styles')="" ls0="p0.add('dropdownlist'," [100,10,310,25],="" items0);="" ls1="p0.add('dropdownlist'," [100,30,310,45],="" items1);="" ls0.selection="0;" ls1.selection="0;" sttx2="p0.add('statictext'," [10,10,100,25]="" 'character="" style');="" sttx3="p0.add('statictext'," [10,30,100,45]="" 'paragraph="" p1="pnl1.add('panel'," [150,75,470,145],="" 'replace="" ls2="p1.add('dropdownlist'," ls3="p1.add('dropdownlist'," gryphfrm);="" ls2.selection="0;" ls3.selection="0;" sttx4="p1.add('statictext'," sttx5="p1.add('statictext'," 'alternate="" gryph');="" sttx6="pnl1.add('statictext'," [10,100,100,115]="" 'select="" target');="" ls4="pnl1.add('dropdownlist'," [10,120,125,140],="" targetobj);="" ls4.selection="0;" btn0="d.add('button'," [330,290,400,310],="" 'cancel',="" {name:'cancel'});="" btn1="d.add('button'," [410,290,480,310]="" 'apply',="" {name:'ok'});="" btn1.onclick="function" (){main()};="" d.show();

charStyles及びparaStyleはそのまんまドキュメントの各スタイルを得る為のモノです。実体と名前を別々に取得する所が手抜きっぽいですがスルーの方向で。
getGryph()はドロップダウンの選択結果からalternate glyphs formを選択する為のものです。
その後Array生成して頭に少し足したりしてますが、ユーザーインターフェースまわりはグローバルです。引数ちまちま渡すの面倒ですから。すごく手抜きですが。
ここまででUIは全ての項目がアクセス可能となります。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中