3.4. Check Boxes & Radio Buttons (cx-create-toggle-button)

This section describes how you can add a check boxes and radio buttons to your interface.

3.4.1. Description

This section discusses the ability to add check boxes and radio buttons to your dialog box. Check boxes and radio buttons are normally grouped in a construct called a button box. The button box allows check boxes and radio buttons to be stacked on top of each other in a single spaced format. Button boxes also control whether or not the button you are adding is a check box or a option button. The difference between a check box and a option button is that multiple check boxes in a button box can be selected at the same time. Radio buttons are mutually exclusive, so only one option button in the button box can be selected at a time. Button boxes are created with the cx-create-button-box macro. Check boxes and radio buttons are created with the cx-create-toggle-button macro. The state of a check box or option button can be set with the cx-set-toggle-button macro and queried with the cx-show-toggle-button macro.

3.4.2. Usage

This section explains the arguments used in the various check box/option button macros

3.4.2.1. cx-create-button-box

(cx-create-button-box parent label radio-mode)

ArgumentTypeDescription
parentobjectThe name of the table that you are adding the button box to
labelstringThe name of the button box to be displayed on the GUI
radio-modesymbol/BooleanAllows choosing between check boxes and option buttons

3.4.2.2. cx-create-toggle-button

(cx-create-toggle-button parent label row column)

ArgumentTypeDescription
parentobjectThe name of the button box that you are adding the check box/option button to
labelstringThe name of the check box/option button to be displayed on the GUI

3.4.2.3. cx-set-toggle-button

(cx-set-toggle-button togglebutton value)

ArgumentTypeDescription
togglebuttonobjectThe variable you used to create the check box/option button
valuebooleanThe Boolean value that you want to set the check box/option button to

3.4.2.4. cx-show-toggle-button

(cx-show-toggle-button togglebutton)

ArgumentTypeDescription
togglebuttonobjectThe variable you used to create the check box/option button

3.4.3. Check Box Example

This example shows how the cx-create-button-box, cx-create-toggle-button, cx-set-toggle-button and cx-show-toggle-button macros work. In the cx-create-button-box line the radio-mode argument is set to #f, which indicates that check boxes are being used, not radio buttons. Once the two check boxes have been created, the initial value of checkBox1 is set to #f via the statement (cx-set-toggle-button checkBox1 #f). Next, the value of a random Boolean variable isBool is set to #t via the (set! isBool #t) statement. After isBool is set to #t, it is next set to the value of checkBox1 through the use of a cx-show-toggle-button statement.

Finally, the value of checkBox2 is set to the value of isBool. Since checkBox2 isn’t checked when the dialog box is opened, we know that the cx-show-toggle-button statement works because it changed the value of isBool to #f. This dialog box does not do anything when the OK button is clicked because we have substituted Boolean values for the apply-cb and update-cb arguments, which would normally be function calls. For more information on the apply-cb and update-cb functions, see cx-create-panel.

(define (apply-cb) #t)
(define update-cb #f)

(define checkBox1)
(define checkBox2)
(define isBool)

(define my-dialog-box (cx-create-panel "My Dialog Box" apply-cb update-cb))

(define table (cx-create-table my-dialog-box "This is an example Dialog Box"))

(define buttonBox (cx-create-button-box table "Button Box" 'radio-mode #f))

(set! checkBox1 (cx-create-toggle-button buttonBox "Check Box 1"))
(set! checkBox2 (cx-create-toggle-button buttonBox "Check Box 2"))

(cx-set-toggle-button checkBox1 #f)
(set! isBool #t)
(set! isBool (cx-show-toggle-button checkBox1))
(cx-set-toggle-button checkBox2 isBool)

(cx-show-panel my-dialog-box)

To view additional examples of check boxes, see Comprehensive Examples.

3.4.4. Option Button Example

This example shows how the cx-create-button-box, cx-create-toggle-button, and cx-set-toggle-button macros work. In the cx-create-button-box statement the radio-mode argument is set to #t which indicates that radio buttons are being used, not check boxes. Once all four radio buttons are created, a cx-set-toggle-button macro is used to set radioButton2 to #t, meaning that this option button will be selected when the dialog box is opened. Since these are radio buttons and not check boxes, this is the only button in the button box that can be selected. If you select any other button, radioButton2 will automatically be deselected.

(define (apply-cb) #t)
(define update-cb #f)

(define radioButton1)
(define radioButton2)
(define radioButton3)
(define radioButton4)

(define my-dialog-box (cx-create-panel "My Dialog Box" apply-cb update-cb))

(define table (cx-create-table my-dialog-box "This is an example Dialog Box"))

(define buttonBox (cx-create-button-box table "Button Box" 'radio-mode #t))

(set! radioButton1 (cx-create-toggle-button buttonBox "Radio Button 1"))
(set! radioButton2 (cx-create-toggle-button buttonBox "Radio Button 2"))
(set! radioButton3 (cx-create-toggle-button buttonBox "Radio Button 3"))
(set! radioButton4 (cx-create-toggle-button buttonBox "Radio Button 4"))

(cx-set-toggle-button radioButton2 #t)

(cx-show-panel my-dialog-box)

To view additional examples of radio buttons, see Comprehensive Examples.