BBjColorChooser::setColor

Description

In BBj 7.00 and higher, this method sets the currently displayed color in the BBjColorChooser.

Syntax

Return Value

Method

void

setColor(BBjColor color)

Parameters

Variable

Description

color

The new color to be displayed.

Return Value

None.

Example

rem 'Add a color chooser to a window

rem 'Obtain the instance of the BBjAPI object
let myAPI! = BBjAPI()

rem 'Open the SysGui device
SYSGUI = UNT
OPEN (SYSGUI) "X0"

rem 'Obtain the instance of the BBjSysGui object
let mySysGui! = myAPI!.getSysGui()

rem 'Set addWindow param values
X = 0
Y = 0
WIDTH = 350
HEIGHT = 250
TITLE$="BBj Text"

FORE_TEXT$ = "Set Foreground"
BACK_TEXT$ = "Set Background"

rem 'Set the current context
mySysGui!.setContext(0)

rem 'create the target controls for color selection
myWindow! = mySysGui!.addWindow(X, Y, WIDTH, HEIGHT, TITLE$,$00010083$)
myCEdit! = myWindow!.addCEdit(101, 10, 10, 190, 190, "Type here")

rem 'myFG! will represent the foreground color
myFG! = myWindow!.addStaticText(102, 234, 99, 32, 32, $$)
myFG!.setBackColor(myCEdit!.getForeColor())

rem 'myBG! will represent the background color
myBG! = myWindow!.addStaticText(103, 234, 141, 32, 32, $$)
myBG!.setBackColor(myCEdit!.getBackColor())

rem 'Create an invisible dialog for colorchooser in new context
mySysGui!.setContext(1)
myDialog! = mySysGui!.addWindow(X+WIDTH,Y,WIDTH,HEIGHT,"Choose Color",$00090012$)

rem 'Add a color chooser on the window
myColorChooser! = myDialog!.addColorChooser(101,0,0,350,250)

rem 'Register the CALLBACK routines
CALLBACK(ON_MOUSE_DOWN,CLICK,myWindow!.getContextID(),myWindow!.getID())
CALLBACK(ON_COLORCHOOSER_APPROVE,APPROVED,myDialog!.getContextID(),myColorChooser!.getID())
CALLBACK(ON_COLORCHOOSER_CANCEL,CANCELLED,myDialog!.getContextID(),myColorChooser!.getID())
CALLBACK(ON_CLOSE,DO_CLOSE,myWindow!.getContextID())
CALLBACK(ON_CLOSE,CANCELLED,myDialog!.getContextID())

rem 'Process Events
process_events

rem 'Callback routine called when the colorchooser's OK button is pressed
APPROVED:
    myDialog!.setVisible(0)

    rem 'If foreground colorchooser, set the foreground
    if (myColorChooser!.getApproveButtonText() = FORE_TEXT$)
        color! = myColorChooser!.getColor()
        myFG!.setBackColor(color!)
        myCEdit!.setForeColor(color!)
    else
        rem 'else if background colorchooser, set the background
        color! = myColorChooser!.getColor()
        myBG!.setBackColor(color!)
        myCEdit!.setBackColor(color!)
    endif
return

rem 'Callback routine called when the colorchooser's Cancel button is
rem 'pressed or the window is closed without selecting a color
CANCELLED:
    myDialog!.setVisible(0)
return

rem 'Callback routine called when the color squares are clicked.
CLICK:
    ev! = myAPI!.getLastEvent()
    xclick = ev!.getX()
    yclick = ev!.getY()

    rem 'If in the foreground square, popup a foreground color chooser
    if (xclick >= myFG!.getX() AND xclick <= myFG!.getX() + myFG!.getWidth() AND yclick >= myFG!.getY() AND yclick <= myFG!.getY() + myFG!.getHeight())
        myColorChooser!.setColor(myFG!.getBackColor())
        myColorChooser!.setApproveButtonText(FORE_TEXT$)
        myDialog!.setVisible(1)
    endif

    rem 'If in the background square, popup a background color chooser
    if (xclick >= myBG!.getX() AND xclick <= myBG!.getX() + myBG!.getWidth() AND yclick >= myBG!.getY() AND yclick <= myBG!.getY() + myBG!.getHeight())
        myColorChooser!.setColor(myBG!.getBackColor())
        myColorChooser!.setApproveButtonText(BACK_TEXT$)
        myDialog!.setVisible(1)
    endif
return

DO_CLOSE:
release

See Also

BBjAPI

BBjSysGui

BBjWindow

BBjColor

BBjColorChooser

See the BBj Object Diagram for an illustration of the relationship between BBj Objects.