asmessage.applescript 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. on run argv
  2. set vButtons to { "OK" }
  3. set vButtonCodes to { 0 }
  4. set vDbutton to "OK"
  5. set vText to ""
  6. set vTitle to ""
  7. set vTimeout to -1
  8. repeat with i from 1 to length of argv
  9. try
  10. set vArg to item i of argv
  11. if vArg = "-buttons" then
  12. set vButtonsAndCodes to my fSplit(item (i + 1) of argv, ",")
  13. set vButtons to {}
  14. set vButtonCodes to {}
  15. repeat with j from 1 to length of vButtonsAndCodes
  16. set vBtn to my fSplit(item j of vButtonsAndCodes, ":")
  17. copy (item 1 of vBtn) to the end of the vButtons
  18. copy (item 2 of vBtn) to the end of the vButtonCodes
  19. end repeat
  20. else if vArg = "-title" then
  21. set vTitle to item (i + 1) of argv
  22. else if vArg = "-center" then
  23. -- not supported
  24. else if vArg = "-default" then
  25. set vDbutton to item (i + 1) of argv
  26. else if vArg = "-geometry" then
  27. -- not supported
  28. else if vArg = "-nearmouse" then
  29. -- not supported
  30. else if vArg = "-timeout" then
  31. set vTimeout to item (i + 1) of argv as integer
  32. else if vArg = "-file" then
  33. set vText to read (item (i + 1) of argv) as string
  34. else if vArg = "-text" then
  35. set vText to item (i + 1) of argv
  36. end if
  37. end try
  38. end repeat
  39. set vDlg to display dialog vText buttons vButtons default button vDbutton with title vTitle giving up after vTimeout with icon stop
  40. set vRet to button returned of vDlg
  41. repeat with i from 1 to length of vButtons
  42. set vBtn to item i of vButtons
  43. if vBtn = vRet
  44. return item i of vButtonCodes
  45. end if
  46. end repeat
  47. return 0
  48. end run
  49. on fSplit(vString, vDelimiter)
  50. set oldDelimiters to AppleScript's text item delimiters
  51. set AppleScript's text item delimiters to vDelimiter
  52. set vArray to every text item of vString
  53. set AppleScript's text item delimiters to oldDelimiters
  54. return vArray
  55. end fSplit