BBjStatusBar
El objeto BBjStatusBar provee métodos para manipular un control GUI del tipo barra de estado. Esta barra puede dividir en segmentos. Cuando se crea el control comienza con un solo segmento. Posterior a su definición podemos crear segmentos adicionales con el método BBjStatusBar::setSegments. Este método pide que ingresemos un vector en el cual cada elemento debe indicar la posición final de los segmentos en orden.
La posición final de cada segmento puede ser relativa. Si la última posición final es menor que el tamaño de la barra de estado, entonces todos los segmentos serán escalados hasta completar el espacio disponible. Si colocamos segmentos enteramente fuera del rango de la barra de estado, entonces no se desplegarán. En el caso de segmentos que sean más anchos que el espacio disponible serán truncados. En la barra de estado están permitidos hasta 255 segmentos y la máxima posición final admitida es 65535.
El siguiente ejemplo crea la barra de estado en la ventana y luego define dos segmentos:
REM “[PRG40] Ejemplo de BBjStatusBar
REM “Mundo BBx (http://sites.google.com/site/mundobbx)
REM
REM “Obtiene una instancia del objeto BBjAPI
REM “=======================================
LET miAPI!=BBjAPI()
REM
REM “Abre el dispositivo SYSGUI
REM “==========================
SYSGUI=UNT
OPEN (SYSGUI) "X0"
REM
REM “Obtiene la instancia del objeto BBjSysGui
REM “=========================================
LET sysgui!=miAPI!.getSysGui()
REM
REM “Valores para crear una ventana
REM “==============================
X=10
Y=10
ANCHO=300
ALTO=200
TITULO$="Ejemplo de uso BBjStatusBar"
REM
REM “Establece el contexto actual
REM “============================
sysgui!.setContext(0)
REM
REM “Crea la ventana
REM “===============
window! = sysgui!.addWindow(X,Y,ANCHO,ALTO,TITULO$)
REM
REM “Agrega una etiqueta a la ventana
REM “================================
barra1!=window! .addStatusBar(1)
REM
REM “Crea un vector de segmentos
REM “===========================
VectorSegmentos! = miAPI!.makeVector()
REM
REM “Crea dos segmentos en la barra de estado y estable los puntos de termino
REM “para cada segmento
VectorSegmentos!.addItem(100)
VectorSegmentos!.addItem(200)
REM
REM “Asigna los segmentos en la barra de estado
REM “==========================================
barra1!.setSegments(VectorSegmentos!)
REM
REM “Asigna texto a cada uno de los segmentos
REM “========================================
barra1!.setTextAt(0, "Segmento1")
barra1!.setTextAt(1, "Segmento2")
REM
REM “Registra rutinas en CALLBACKs
REM “=============================
CALLBACK(ON_CLOSE,CIERRA_APLIC,sysgui!.getContext())
REM
REM “Procesa Eventos
REM “===============
PROCESS_EVENTS
REM
REM “Rutina Callback llamada cuando el usuario cierra la ventana de la aplicación
REM “============================================================================
CIERRA_APLIC:
RELEASE
RETURN