; --------------------------------------------------------------------------------
; @Title: Example for dialog with multiple choose boxes
; @Description: Shows a dialog with choose boxes
; @Keywords: choosebox, dialog, practice
; @Author: REI
; @Copyright: (C) 1989-2014 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id: dialog_choosebox.cmm 8102 2015-02-06 11:38:59Z mobermaier $


DIALOG
(
  HEADER "CHOOSEBOX Demo"
  POS 1. 0. 28. 1.
  TEXT "Select Options:"

;choosebox group for Selection A  
  POS 0. 1. 29. 1.
  LINE "Selection A:"
  POS 1. 2. 10. 1.
  OptionA.1: CHOOSEBOX "OptionA1" ""
  OptionA.2: CHOOSEBOX "OptionA2" ""


;choosebox group for Selection B
  POS 0. 4. 29. 1.
  LINE "Selection B:"
  POS 1. 5. 10. 1.
  OptionB.1: CHOOSEBOX "OptionB1" ""
  OptionB.2: CHOOSEBOX "OptionB2" ""
  OptionB.3: CHOOSEBOX "OptionB3" "GOTO action_B3"
  POS 14. 5. 10.
  OptionB.4: CHOOSEBOX "OptionB4" "DIALOG.OK ""Thank you for choosing option B4"""
  OptionB.5: CHOOSEBOX "OptionB5" ""
  OptionB.6: CHOOSEBOX "OptionB6" ""
  
;buttons OK (Default) and Cancel
  POS 1. 9. 10. 1.
  DEFBUTTON "OK" "CONTinue"
  POS 14. 9. 10. 1.
  BUTTON    "Cancel" "GOTO cancel"
;define action when window is closed
  CLOSE "GOTO cancel"
)

;diable OptionB6
  DIALOG.DISABLE OptionB.6

;set default selections
setdefaults:
  DIALOG.Set OptionA.1
  DIALOG.Set OptionB.2
;STOP command halts script execution 
waitforok:
  STOP
;script will continue here when "OK" button is clicked
  GOTO dialog_ok



;script continues here when Cancel is clicked"
cancel:
  DIALOG.END
  DIALOG.OK "Cancelled"
ENDDO



;script continues here when "OptionB3" is selected
action_B3:
  PRINT "Option B3 was selected"
; return to dialog exit point
  GOTO waitforok



dialog_ok:
;get selections
  IF DIALOG.BOOLEAN(OptionA.1)
    &SelectionA="OptionA1"
  IF DIALOG.BOOLEAN(OptionA.2)
    &SelectionA="OptionA2"

  IF DIALOG.BOOLEAN(OptionB.1)
    &SelectionB="OptionB1"
  IF DIALOG.BOOLEAN(OptionB.2)
    &SelectionB="OptionB2"
  IF DIALOG.BOOLEAN(OptionB.3)
    &SelectionB="OptionB3"
  IF DIALOG.BOOLEAN(OptionB.4)
    &SelectionB="OptionB4"
  IF DIALOG.BOOLEAN(OptionB.5)
    &SelectionB="OptionB5"
  IF DIALOG.BOOLEAN(OptionB.6)
    &SelectionB="OptionB6"

;check for illegal selection combinations
  IF ("&SelectionA"=="OptionA1")&&("&SelectionB"=="OptionB5")
  (
    DIALOG.OK "OptionB5 not allowed when OptionA1 is selected"
    GOTO setdefaults
  )
;print result 
  DIALOG.OK "SelectionA: &SelectionA" "SelectionB: &SelectionB"
;close dialog window  
  DIALOG.END
ENDDO
