rem ' slider.txt sysgui = unt open (sysgui)"X0" sysgui! = bbjapi().getSysGui() window! = sysgui!.addWindow(100,100,520,240,"Horizontal BBjSlider",$2009008f$) window!.setCallback(sysgui!.ON_CLOSE,"eoj") slider! = window!.addHorizontalSlider(100,10,10,500,50) rem slider!.setBackColor(sysgui!.makeColor(255,255,232)) slider!.setCallback(sysgui!.ON_CONTROL_SCROLL,"scroll") slider!.setCallback(slider!.ON_GAINED_FOCUS,"event") slider!.setCallback(slider!.ON_LOST_FOCUS,"event") slider!.setCallback(slider!.ON_MOUSE_ENTER,"event") slider!.setCallback(slider!.ON_MOUSE_EXIT,"event") slider!.setCallback(slider!.ON_POPUP_REQUEST,"event") slider!.setCallback(slider!.ON_RIGHT_MOUSE_DOWN,"event") popup! = sysgui!.addPopupMenu() item1! = popup!.addMenuItem(-1,"Popup Item 1") item2! = popup!.addMenuItem(-1,"Popup Item 2") item3! = popup!.addMenuItem(-1,"Popup Item 3") slider!.setPopupMenu(popup!) window!.addStaticText(201,5,105,60,25,"Minimum:",$8000$) minimum = slider!.getMinimum() minimum! = window!.addInputN(101,70,100,60,25,$$,"-###,##0",$$,minimum,minimum) minimum!.setCallback(sysgui!.ON_EDIT_MODIFY,"minimum") window!.addStaticText(202,5,135,60,25,"Maximum:",$8000$) maximum = slider!.getMaximum() maximum! = window!.addInputN(102,70,130,60,25,$$,"-###,##0",$$,maximum,maximum) maximum!.setCallback(sysgui!.ON_EDIT_MODIFY,"maximum") window!.addStaticText(203,5,165,60,25,"Value:",$8000$) value = slider!.getValue() value! = window!.addInputN(103,70,160,60,25,$$,"###,##0",$$,0,value) value!.setCallback(sysgui!.ON_EDIT_MODIFY,"value") label! = window!.addStaticText(204,130,105,125,25,"Tick Spacing",$8000$) font! = label!.getFont() font! = sysgui!.makeFont(font!.getName(),font!.getSize()+2,font!.BOLD) label!.setFont(font!) window!.addStaticText(205,130,135,60,25,"Major:",$8000$) major = 20 major! = window!.addInputN(104,195,130,60,25,$$,"-###,##0",$$,major,major) major!.setCallback(sysgui!.ON_EDIT_MODIFY,"major") slider!.setMajorTickSpacing(major) window!.addStaticText(206,130,165,60,25,"Minor:",$8000$) minor = 5 minor! = window!.addInputN(105,195,160,60,25,$$,"-###,##0",$$,minor,minor) minor!.setCallback(sysgui!.ON_EDIT_MODIFY,"minor") slider!.setMinorTickSpacing(minor) labels! = window!.addCheckBox(106,270,100,120,25,"Paint Labels",$0004$) labels!.setCallback(sysgui!.ON_CHECK_ON,"labels_on") labels!.setCallback(sysgui!.ON_CHECK_OFF,"labels_off") slider!.setPaintLabels(labels!.isSelected()) ticks! = window!.addCheckBox(107,270,130,120,25,"Paint Ticks",$0004$) ticks!.setCallback(sysgui!.ON_CHECK_ON,"ticks_on") ticks!.setCallback(sysgui!.ON_CHECK_OFF,"ticks_off") slider!.setPaintTicks(ticks!.isSelected()) snap! = window!.addCheckBox(108,270,160,120,25,"Snap To Ticks",$0004$) snap!.setCallback(sysgui!.ON_CHECK_ON,"snap_on") snap!.setCallback(sysgui!.ON_CHECK_OFF,"snap_off") slider!.setSnapToTicks(snap!.isSelected()) height$ = ""; for height = 0 to 99; height$ = height$ + str(height) + $0a$; next height height! = window!.addListButton(109,390,100,120,250,height$,$$) height!.selectIndex(slider!.getHeight()) height!.setCallback(sysgui!.ON_LIST_CHANGE,"height") labels! = window!.addCheckBox(110,390,130,120,25,"Custom Labels") labels!.setCallback(sysgui!.ON_CHECK_ON,"custom_labels") labels!.setCallback(sysgui!.ON_CHECK_OFF,"default_labels") inverted! = window!.addCheckBox(111,390,160,120,25,"Inverted") inverted!.setCallback(sysgui!.ON_CHECK_ON,"inverted_on") inverted!.setCallback(sysgui!.ON_CHECK_OFF,"inverted_off") slider!.setInverted(inverted!.isSelected()) enabled! = window!.addCheckBox(112,390,190,120,25,"Enabled",$0004$) enabled!.setCallback(enabled!.ON_CHECK_ON,"setEnabled") enabled!.setCallback(enabled!.ON_CHECK_OFF,"setEnabled") statusbar! = window!.addStatusBar(99,$$) vector! = bbjapi().makeVector() vector!.add(530) statusbar!.setSegments(vector!) statusbar!.setTextAt(0,"Labels: "+slider!.getLabels().toString()) dim event$:tmpl(sysgui) process_events eoj: release scroll: event! = sysgui!.getLastEvent() event$ = sysgui!.getLastEventString() e$ = sysgui!.getLastEvent().toString(), e$ = e$(1,pos("@"=e$)-1) print e$," code=",event.code$," context=",str(event.context)," id=",str(event.id)," flags=",str(event.flags)," x=",str(event.x)," y=",str(event.y)," pos=",str(event!.getPosition())," adj? ",event!.isAdjusting() value = event!.getPosition() value!.setValue(value) return minimum: n = minimum!.getValue() if n<>minimum then slider!.setMinimum(n) minimum = n value!.setValue(slider!.getValue()) endif return maximum: n = maximum!.getValue() if n<>maximum then slider!.setMaximum(n) maximum = n value!.setValue(slider!.getValue()) endif return value: slider!.setValue(value!.getValue()) return major: n = major!.getValue() if n<>major then slider!.setMajorTickSpacing(n) major = n value!.setValue(slider!.getValue()) statusbar!.setTextAt(0,"Labels: "+slider!.getLabels().toString()) endif return minor: n = minor!.getValue() if n<>minor then slider!.setMinorTickSpacing(n) minor = n value!.setValue(slider!.getValue()) statusbar!.setTextAt(0,"Labels: "+slider!.getLabels().toString()) endif return labels_on: slider!.setPaintLabels(1) return labels_off: slider!.setPaintLabels(0) return ticks_on: slider!.setPaintTicks(1) return ticks_off: slider!.setPaintTicks(0) return snap_on: slider!.setSnapToTicks(1) return snap_off: slider!.setSnapToTicks(0) return custom_labels: labels! = new java.util.TreeMap() n = rnd(10) for i=1 to n labels!.put(rnd(100),chr(rnd(26)+asc("A"))) next i slider!.setLabels(labels!) statusbar!.setTextAt(0,"Labels: "+slider!.getLabels().toString()) return default_labels: labels! = new java.util.TreeMap() slider!.setLabels(labels!) statusbar!.setTextAt(0,"Labels: "+slider!.getLabels().toString()) return inverted_on: slider!.setInverted(1) return inverted_off: slider!.setInverted(0) return setEnabled: slider!.setEnabled(enabled!.isSelected()) return height: height = height!.getSelectedIndex() slider!.setSize(slider!.getWidth(),height) return event: event! = sysgui!.getLastEvent() event$ = event!.toString(), event$ = event$(1,pos("@"=event$)-1) control! = event!.getControl() control$ = control!.toString(), control$ = control$(1,pos("@"=control$)-1) print control$," ",event$ return