the full approach would be similar to this: choose app parse package.app/contents/info.plist for icn file name convert icn file to png get image into rev set icon of button to image
therefore in a LC button, the following works (watch for linewraps). Note: xml parsing is super simplified, and won't work with accented chars (needs conversion from utf8). Also, some type of apps do not have the icon stored in the info.plist, the fallback would be to try <appbundlename>.icns, or maybe the name of the actual executable in the "MacOS" folder. furthermore, some apps are carbon, no idea if they follow the same rules. on mouseUp lock screen --select app answer file "choose an app:" if it = "" then beep exit mouseUp end if --parse plist put it & "/Contents/" into theAppPath put url ("file:" & theAppPath & "/Info.plist") into theXML put offset("CFBundleIconFile", theXML) into theOffset repeat two times put offset(">", theXML,theOffset) + theOffset into theOffset end repeat put char theOffset +1 to offset("<", theXML,theOffset) + theOffset -1 of theXML into theName if char -5 to -1 of theName <> ".icns" then put ".icns" after theName end if --create image paths put theAppPath & "Resources/" & theName into theIconPath put specialfolderpath("temp") & "/temp.png" into theImagePath --run shell app put shell("sips -s format png -z 32 32" && theIconPath && "--out" && theImagePath) into theError if word 1 of theError <> theIconPath then --word 2 should be theImagePath beep put theError exit mouseUp end if --now let rev import import paint from file theImagePath put the id of last image into lastImport set the visible of image ID lastImport to false set the icon of me to lastImport end mouseUp _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode