var defUnits = app.preferences.rulerUnits; app.preferences.rulerUnits = Units.PIXELS; var docRef = app.activeDocument; var layRef = docRef.activeLayer; var lastPoint; var rel; try{ var selBnd = docRef.selection.bounds } catch(er){ var selBnd = false } var layBnds = layRef.bounds; var layW = layBnds[2].value - layBnds[0].value; var layH = layBnds[3].value - layBnds[1].value function lPoint (){ // Изчисляване на горна-лява точка // var layInfo = ""; layInfo += "," + "\t" + layBnds[0].value + "\t"; layInfo += "," + "\t" + layBnds[1].value + "\t"; layInfo += "," + "\t" + layW + "\t"; layInfo += "," + "\t" + layH; return layInfo; } function cPoint (){ // Изчисляване на горна-средна точка // var layInfo = ""; layInfo += "," + "\t" + ( layBnds[0].value + Math.floor ( layW / 2 ) ) + "\t"; layInfo += "," + "\t" + layBnds[1].value + "\t"; layInfo += "," + "\t" + layW + "\t"; layInfo += "," + "\t" + layH; return layInfo; } function rPoint (){ // Изчисляване на горна-дясна точка // var layInfo = ""; layInfo += "," + "\t" + ( layBnds[2].value -1 ) + "\t"; layInfo += "," + "\t" + layBnds[1].value + "\t"; layInfo += "," + "\t" + layW + "\t"; layInfo += "," + "\t" + layH; return layInfo; } var l_point = lPoint (); var c_point = cPoint (); var r_point = rPoint (); lastPoint = l_point //{ ИЗГРАЖДАНЕ НА ИНТЕРФЕЙСА var dlg = new Window ( 'dialog', 'Инфо на слоят' ); dlg.pn = dlg.add ( 'panel', undefined, 'Инфо' ); // добавяне на панел с информацията за слоя dlg.pn.orientation = 'row'; dlg.pn.g = dlg.pn.add ( 'group' ); dlg.pn.g.titleSt = dlg.pn.g.add ('statictext', undefined, 'Ред: X, Y, W, H'); // изписване реда на данните dlg.pn.g.titleEt = dlg.pn.g.add ('edittext', undefined, l_point); // поле за изписване на данните dlg.pn.g.titleEt.preferredSize = [220, 20]; dlg.pn.sep1 = dlg.pn.add ( 'panel', [undefined, undefined, 0, 20 ], '' ); dlg.pn.g2 = dlg.pn.add ( 'group' ); dlg.pn.g2.spacing = 1; dlg.pn.g2.rb1 = dlg.pn.g2.add ( 'radiobutton', undefined, 'Л' ); dlg.pn.g2.rb1.helpTip = "Горна лява точка"; dlg.pn.g2.rb1.value = true; dlg.pn.g2.rb2 = dlg.pn.g2.add ( 'radiobutton', undefined, 'С' ); dlg.pn.g2.rb2.helpTip = "Горна средна точка"; dlg.pn.g2.rb3 = dlg.pn.g2.add ( 'radiobutton', undefined, 'Д' ); dlg.pn.g2.rb3.helpTip = "Горна дясна точка"; dlg.pn.sep2 = dlg.pn.add ( 'panel', [undefined, undefined, 0, 20 ], '' ); dlg.pn.rel = dlg.pn.add ( 'button', undefined, 'Относ.' ); dlg.pn.rel.helpTip = "Относителни координати"; //} dlg.onShow = function (){ // При показване на прозореца // dlg.pn.g.titleEt.active = true; } dlg.pn.g2.rb1.onClick = function (){ // При маркиране на бут. за лява точка // lastPoint = l_point dlg.pn.g.titleEt.text = l_point dlg.pn.g.titleEt.active = true } dlg.pn.g2.rb2.onClick = function (){ // При маркиране на бут. за средна точка // lastPoint = c_point dlg.pn.g.titleEt.text = c_point dlg.pn.g.titleEt.active = true } dlg.pn.g2.rb3.onClick = function (){ // При маркиране на бут. за дясна точка // lastPoint = r_point dlg.pn.g.titleEt.text = r_point dlg.pn.g.titleEt.active = true } dlg.pn.rel.onClick = function (){ // При маркиране на чек. за относителни координати // if ( selBnd ){ var tmpTxt = lastPoint.match( /\d+/g ) tmpTxt = [ parseInt ( tmpTxt[0], 10 ), parseInt ( tmpTxt[1], 10 ), parseInt ( tmpTxt[2], 10 ), parseInt ( tmpTxt[3], 10 ) ] if ( dlg.pn.g2.rb3.value ){ rel = ",\t" + ( (tmpTxt[0]+1) - selBnd[0].value ) + "\t" } else{ rel = ",\t" + ( tmpTxt[0] - selBnd[0].value ) + "\t" } rel += ",\t" + ( tmpTxt[1] - selBnd[1].value) + "\t" rel += ",\t" + tmpTxt[2] + "\t" rel += ",\t" + tmpTxt[3] dlg.pn.g.titleEt.text = rel dlg.pn.g.titleEt.active = true } else{ alert ("Моля направете селекция") dlg.pn.g.titleEt.text = lastPoint dlg.pn.g.titleEt.active = true } } dlg.center (); dlg.show (); app.preferences.rulerUnits = defUnits;