Skip to main content
Participant
June 7, 2016
Question

buttons desappear when i set the size of the alert window

  • June 7, 2016
  • 1 reply
  • 226 views

Good morning all,

My question of the day :

My project works fine (onclick-button name or ID ), but now i would like to set the height of the alert window containing my set of buttons.

i set the window location at the top of the screen like this:

win.frameLocation = [800,0];

then my buttons are created dynamically (the number of buttons can change)

i set the size of the window for exemple with:

win.size = [1024, 50];

but the buttons desappear ...

i tried to place the code before or after the button creation , but it doesn't work...

well.. before i dive in a "no ending" exploration due to my poor knowledge in js , could you give me a track or a direction to explore ...

Thank you !

the code:

//==========================================================================

var mainFolder = "myBibScript"; // nom du dossier pricipale (root folder of the project)

var mainPath = "/Volumes/myTools/scripts - macros/jsPalette/myBibScript/" ; // chemin du dossier pricipale (path)

var scriptFolder= new Folder(mainPath+"scpt/");  // dossier des scripts dans le dossier principale (scripts folder in the root folder)

var files = scriptFolder.getFiles("*.*");

var ui = // dialog resource object

    "dialog {\

        gButtons: Group { \

            orientation: 'row', alignment: 'right'\

             } } \

        } \

    }";

var win = new Window(ui);

//positionne la fenêtre (window position)

win.frameLocation = [800,0];

//color background

g = win.graphics;

myBrush = g.newBrush(g.BrushType.SOLID_COLOR, [0.45, 0.75, 0.75, 1]);

g.backgroundColor = myBrush;

win.scptFiles = new Array();        //  tableau des fichiers scripts

myScriptName= new Array();      //  tableau des noms des scripts

// boucle le dossier des scripts (loop  the scripts folder)

var counter = 0;

    for (var loop=0; loop < files.length; loop++) {                             // Add items dynamically

        var f = files[loop];

        if (typeof f.open == "undefined")    continue;                           // Skip folder

        if ( -1 != f.fsName.indexOf(".DS_Store"))    continue;              // Skip Mac's hidden file

var fName=f.fsName.substring(scriptFolder.fsName.length+1);      //extract filename only

var fNameShort =fName.replace(".jsx", "");                                     // nom sans l'extension (remove extension)

 

 

// creation des icones boutons (create icon buttons)

var f = File(mainPath+"/img/"+fNameShort+".jpg")

var myBtn=win.gButtons.add("iconbutton" , undefined , ScriptUI.newImage(f),{style: "toolbutton" , toggle: false});

  

//remplissage du tableau de "title" avec l'index (counter) des boutons créés

// i use numbers for "titles" in place of names to have a short line displayed

  

win.scptFiles[counter++] = myBtn

   myScriptName[counter]=fNameShort

   myBtn.title=counter

myBtn.size = [48, 38];

win.gButtons.children[counter-1].onClick = gButtonsOnClick

    

}

function gButtonsOnClick() {

var myScriptTitle=this.title;        // index du bouton cliqué

myScriptFile=myScriptName[myScriptTitle]          // nom de l'image/script correspondant à l'index

win.close()             

var idAdobeScriptAutomationScripts = stringIDToTypeID( "AdobeScriptAutomation Scripts" );

    var desc635 = new ActionDescriptor();

    var idjsCt = charIDToTypeID( "jsCt" );

    desc635.putPath( idjsCt, new File( scriptFolder+"/"+myScriptFile+".jsx") );

    var idjsMs = charIDToTypeID( "jsMs" );

    desc635.putString( idjsMs, """[ActionDescriptor]""" );

executeAction( idAdobeScriptAutomationScripts, desc635, DialogModes.NO);

}

win.show();

//==========================================================================

This topic has been closed for replies.

1 reply

Participant
June 8, 2016

Well.. i finally found a solution , not really “elegant” but it solves my problem for this project,

i give negative values to the margins of the buttons group:

win.gButtons.margins=[0,-14, -8,-6];

before:

after: