BBjWindow::addSplitter

Description

In BBj 22.10 and higher, this method adds a BBjSplitter control to the BBjWindow.

Syntax

Return Value

Method

BBjSplitter

addSplitter()

BBjSplitter addSplitter(byte[] flags)
BBjSplitter addSplitter(int id)
BBjSplitter addSplitter(int id, byte[] flags)
BBjSplitter addSplitter(int id, number x, number y, number width, number height)

BBjSplitter

addSplitter(int id, number x, number y, number width, number height, byte[] flags)

Parameters

Variable

Description

id

Control ID number. It must be an integer between 1 and 32767 and be unique within a given top-level window.

x Horizontal position of the upper-left corner of the control in current units.
y Vertical position of the upper-left corner of the control in current units.
width Width of the control in current units.
height Height of the control in current units.

flags

Control flags, as follows:

Flag Description
$0001$ Sets the control to be initially disabled.
$0010$ Sets the control to be initially invisible.
$0100$ Sets the initial orientation to VERTICAL. The default orientation is HORIZONTAL. Orientation can be changed at any time with setOrientation.
$0800$ Draws a recessed client edge around the control.
$1000$ Draws a raised edge around the control.

Return Value

Returns the created BBjSplitter control.

Remarks

If the ID parameter is not specified, a control ID is assigned dynamically using getAvailableControlID().

If the x, y, width, and height parameters are not specified, they're all initialized to 0. This is typically for use with DWC windows that dynamically arrange their contents (window creation flag $00100000$).

Example

rem ' BBjWindow::addSplitter Example

rem ' BBjSplitter.txt
sysgui = unt
open (sysgui)"X0"
sysgui! = bbjapi().getSysGui()
window! = sysgui!.addWindow(25,25,600,600,"BBjSplitter",$00090083$)
status! = window!.addStatusBar(100)
window!.setCallback(window!.ON_CLOSE,"eoj")
window!.setCallback(window!.ON_RESIZE,"resize")

tree! = window!.addTree(101)
tree!.setTreeEditable(1)
node = 0
tree!.setRoot(node,"Root")
for branch = 1 to 4
    node = node + 1
    tree!.addExpandableNode(node,parent,"Node "+str(node))
    branch_node = node
    for leaf = 1 to 4
        node = node + 1
        tree!.addNode(node,branch_node,"Node "+str(node))
    next leaf
next branch

list$ = ""
for i = 0 to 99
    list$ = list$ + str(i) + $0a$
next i
list! = window!.addListBox(102,list$)

side! = window!.addSplitter(103)
side!.setOrientation(BBjSplitter.VERTICAL)
side!.setPosition(250)
side!.setFirstControlID(list!.getID())
side!.setSecondControlID(tree!.getID())
side!.setName("Side BBjSplitter")
side!.setCallback(side!.ON_CONTROL_SCROLL,"scroll")

print "HORIZONTAL =",BBjSplitter.HORIZONTAL
print "VERTICAL =",BBjSplitter.VERTICAL

print side!.getName(),":"
print "getOrientation",side!.getOrientation()
print "getPosition",side!.getPosition()
print "getFirstControlID",side!.getFirstControlID()
print "getFirstControl ",side!.getFirstControl()
print "getSecondControlID",side!.getSecondControlID()
print "getSecondControl ",side!.getSecondControl()

text$ = ""
restore 0
while 1
    dread para$,end=*break
    text$ = text$ + para$ + $0a$
wend
cedit! = window!.addCEdit(104,text$,$8106$)

splitter! = window!.addSplitter(105,25,25,550,550)
splitter!.setOrientation(BBjSplitter.HORIZONTAL)
splitter!.setPosition(150)
splitter!.setFirstControl(side!)
splitter!.setSecondControl(cedit!)
splitter!.setName("Main BBjSplitter")
splitter!.setCallback(side!.ON_CONTROL_SCROLL,"scroll")

print splitter!.getName(),":"
print "getOrientation",splitter!.getOrientation()
print "getPosition",splitter!.getPosition()
print "getFirstControlID",splitter!.getFirstControlID()
print "getFirstControl ",splitter!.getFirstControl()
print "getSecondControlID",splitter!.getSecondControlID()
print "getSecondControl ",splitter!.getSecondControl()

process_events

eoj:
release

resize:
    event! = sysgui!.getLastEvent()
    width = event!.getWidth()
    height = event!.getHeight()
    splitter!.setSize(width-50,height-50)
    print event!.getEventName(),width,height
    position = int(splitter!.getWidth()*0.25)
    splitter!.setPosition(position)
    position = int(splitter!.getHeight()/2)
    side!.setPosition(position)
return

scroll:
    event! = sysgui!.getLastEvent()
    control! = event!.getSplitter()
    orientation = event!.getOrientation()
    switch orientation
        case 0; orientation$="HORIZONTAL"; break
        case 1; orientation$="VERTICAL"; break
        default; orientation$=str(orientation); break
    swend
    position = event!.getPosition()
    message$ = control!.getName()+" "+orientation$+" "+str(position)
    print message$
    status!.setText(message$)
return

rem ' Sample text
data "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam cursus congue urna ac ultrices. Phasellus quis tortor arcu. Vestibulum sed luctus lectus. Morbi vitae malesuada nibh. Nullam euismod fermentum neque ac elementum. Fusce adipiscing lorem eget metus sodales ultricies. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis commodo molestie nisi, non consectetur nisl ultricies sit amet. Suspendisse potenti. Nunc nec sollicitudin lacus. Donec in purus nibh. Suspendisse eget neque id tortor lacinia ultricies. Etiam porttitor neque ipsum, egestas laoreet sapien."
data "Donec at felis ac nisi mollis eleifend sit amet sed lorem. Fusce bibendum velit in orci sagittis volutpat sed sit amet dolor. Nunc et nunc ac tortor facilisis adipiscing. Curabitur vel eros non libero pulvinar lacinia. Curabitur egestas tincidunt mauris a lacinia. Pellentesque consectetur faucibus odio quis sodales. Integer fermentum sem ut nunc rhoncus adipiscing. Ut nec accumsan dui. Sed at ligula dolor, vel tempor nulla. Nunc vel massa nunc, a suscipit magna. Proin suscipit molestie nisi eu viverra. Donec arcu justo, elementum at sodales vel, ornare vel justo. Curabitur lacinia fringilla hendrerit. Ut dapibus mi a purus dapibus eget sagittis ligula imperdiet. Phasellus auctor tellus arcu, euismod condimentum dui. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris et venenatis odio."
data "Sed ac scelerisque augue. Integer mi lorem, pharetra in ullamcorper sit amet, accumsan eget justo. Donec sem turpis, adipiscing laoreet sollicitudin sed, vestibulum id elit. Pellentesque feugiat ultrices arcu id viverra. Fusce tempor lacinia dui in rhoncus. Quisque dictum nisl a nulla iaculis sit amet ullamcorper neque consequat. In consequat sapien eget lacus condimentum placerat. Morbi consequat euismod orci quis tristique. Etiam non massa massa, a aliquam urna. Ut at fringilla odio."
data "Aenean pellentesque, augue in pulvinar dictum, ipsum justo blandit sem, ut fringilla nibh eros quis orci. Mauris aliquet sollicitudin vulputate. Nullam porta varius lorem eget ornare. Aliquam cursus quam vel libero venenatis eu scelerisque urna semper. Pellentesque et mi a est aliquam feugiat. Praesent tempor, metus at iaculis volutpat, ipsum odio semper purus, ut rutrum leo est et elit. Nulla tempus cursus tempus. Nulla eget orci dui, et pretium purus. Pellentesque luctus eleifend venenatis. Sed sagittis blandit justo, at elementum urna sagittis non. Quisque justo arcu, accumsan nec tincidunt ac, tempus convallis tortor. Vestibulum vulputate mattis lectus, vitae ultrices mauris posuere ac. Cras ullamcorper, ante et ultrices ullamcorper, ante ligula varius elit, in scelerisque sem arcu et massa. Etiam faucibus, turpis vitae consectetur pharetra, lacus ante accumsan nisl, sodales aliquam sem lectus sit amet odio. Integer ullamcorper risus a justo congue ac tristique sem interdum. Nullam vitae venenatis eros. Duis id mi ut dolor mattis vulputate. Proin adipiscing orci pretium nulla accumsan placerat. Duis ac porttitor augue."
data "Suspendisse et orci metus, nec dictum nisl. Duis sit amet metus arcu. Pellentesque mattis rutrum tristique. Curabitur vitae magna dolor. Ut pellentesque cursus turpis non pharetra. Praesent turpis est, varius et pellentesque eget, feugiat ultricies mi. Nam pellentesque sollicitudin tortor, eget malesuada sem fringilla non. Curabitur rhoncus augue at augue blandit facilisis et eu arcu. Sed molestie enim augue, eu placerat libero. Donec sed sapien sed eros feugiat egestas dictum sit amet nunc. Suspendisse elementum volutpat est sed adipiscing. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In molestie congue ultricies. Donec non risus in dui pretium posuere. Phasellus fringilla felis a neque ultricies vel dictum arcu pulvinar. Donec in arcu quam. Donec in tristique eros. Donec tempus elementum dui in sodales."
data "Praesent adipiscing venenatis ullamcorper. Maecenas consectetur cursus commodo. Phasellus faucibus consectetur elit accumsan sodales. Ut nec velit sed neque imperdiet sodales a at augue. In hac habitasse platea dictumst. Vestibulum quis mi nisi. Aliquam hendrerit convallis lorem at malesuada. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam elementum sem a dolor placerat imperdiet. Cras adipiscing orci rutrum velit pellentesque malesuada ut at elit. Nullam sed viverra massa. Praesent lobortis, lorem et bibendum sodales, neque augue ornare ante, at gravida ante libero nec nibh. Aliquam id nunc elit. Vivamus placerat vehicula enim, laoreet ultrices odio ultrices sit amet. Suspendisse potenti. Etiam nec erat ac nisl vestibulum tempor. Nulla facilisi."
data "Pellentesque sit amet nulla sit amet ante sagittis elementum. Cras vestibulum ligula vitae nisl consequat pharetra. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce nec erat turpis, a consectetur neque. Mauris et sem orci. Duis tempus, arcu eget vestibulum egestas, ipsum magna laoreet enim, nec dapibus felis mi id leo. Nulla facilisi. Nullam volutpat feugiat porttitor. Aenean scelerisque congue est vel blandit. Integer placerat mollis metus in ullamcorper. Maecenas nec arcu est. Cras eget odio tellus, sed posuere quam. Quisque in nunc id neque ornare tristique nec a eros. Nunc varius luctus eros, sit amet consectetur elit porttitor vitae. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec interdum, est vitae iaculis tempus, lacus est auctor ipsum, a fermentum orci ipsum ut libero. Vestibulum accumsan tincidunt gravida. In ultrices adipiscing elit eget vulputate. Proin felis dui, lacinia eget sagittis suscipit, viverra nec eros."
data "Phasellus egestas sem eu purus faucibus porttitor. Cras metus orci, dapibus ultrices blandit quis, porta nec elit. Etiam aliquet tempor eros. Quisque fringilla faucibus diam ac fermentum. Etiam vel elit molestie mauris semper accumsan ac eget justo. Nam malesuada vehicula dolor, sit amet interdum sem varius id. Phasellus pulvinar interdum dolor pharetra posuere. In tristique molestie dui non varius. Phasellus tincidunt odio quis ante luctus quis varius dolor sagittis. Integer dignissim pretium justo, vitae iaculis ipsum imperdiet sed. In hac habitasse platea dictumst. Aliquam elementum laoreet nisl in pellentesque. Aliquam in dui eget felis vulputate eleifend sit amet rutrum turpis."
data "Phasellus accumsan mollis quam pellentesque tincidunt. Integer luctus ultrices ipsum, nec scelerisque tortor consequat et. Nulla lorem diam, laoreet non semper pellentesque, consectetur vel elit. Duis varius posuere dignissim. Ut tempus nisl et libero elementum bibendum. Morbi ligula lacus, tristique sed ornare id, venenatis sed arcu. Aenean a volutpat ante. Integer porttitor, turpis at dignissim feugiat, urna quam posuere justo, id fermentum lectus libero interdum sapien. Suspendisse dapibus sodales tortor. Maecenas vulputate, lectus vitae pharetra posuere, ante odio accumsan felis, accumsan consectetur erat nisi a augue."

See Also

BBjAPI

BBjSysGui

BBjControl

BBjWindow

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