Sub Class_Globals
Dim HSV1 As HorizontalScrollView
Dim lista As List
Public btnH() As Button
Private retorno As Object
Dim ancho_alto_boton As Int
Dim separacion As Int
End Sub
'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize (HSV As HorizontalScrollView, Lista_botones As List, target As Object)
HSV1 = HSV
lista = Lista_botones
retorno = target
separacion = 10dip 'separación entre botones
'Determina el tamaño del botón según la altura del HSV y la separación entre botones
ancho_alto_boton = HSV1.Height - (2 * separacion)
'Determina el ancho del Panel del HSV según el número, tamaño y separación de los botones
HSV.Panel.width=(Main.intTotalCategorias * (ancho_alto_boton + separacion)) + separacion
Dim UnaCategoria () As String
Public btnH(Main.intTotalCategorias) As Button 'Aunque ya se dimensionó en Class_Globals, ahora se le da el tamaño adecuado
For Categoria = 0 To Main.intTotalCategorias - 1
UnaCategoria=lista.Get(Categoria) 'Recupera de la Lista de Botones los datos de cada uno
DibujaBotonH (HSV1, btnH(Categoria), Categoria, UnaCategoria(1)) 'Pasa como parámetros el HSV, un botón, nº del botón y texto del botón
Next
End Sub
Sub DibujaBotonH2 (numero As Int)
Dim ListaCategorias () As String
ListaCategorias=lista.Get(numero)
DibujaBotonH (HSV1, btnH(numero), numero, ListaCategorias(1))
End Sub
Sub DibujaBotonH (Hscroll As HorizontalScrollView, boton As Button, numero As Int, texto As String)
Dim x, y As Int
boton.Initialize("btnH")
boton.Tag = numero 'se almacena el número de orden de cada botón
x = separacion + (ancho_alto_boton + separacion) * numero
y = separacion
HSV1.Panel.AddView(boton, x, y, ancho_alto_boton, ancho_alto_boton)
boton.Text = texto
If Main.Num_boton_categoria_escogida = numero Then
boton.TextColor=Colors.yellow 'Texto amarillo para el botón "seleccionado"
Else
boton.TextColor=Colors.White 'Texto blanco par el resto de botones
End If
End Sub
Sub BorraBoton (numero As Int)
For Each btnborrar As View In HSV1.Panel
If btnborrar.Tag = numero Then 'Determina el botón a borrar
btnborrar.RemoveView
Return
End If
Next
End Sub
Sub btnh_click
Dim boton_pulsado As Button
boton_pulsado = Sender
'Se comprueba si el númro del botón pulsado es distinto al seleccionado anteriormente
If Main.Num_boton_categoria_escogida <> boton_pulsado.Tag Then
CambiaBoton(boton_pulsado.Tag) '
CallSub2 (retorno, "botonH_Click", boton_pulsado.tag)
End If
End Sub
Sub CambiaBoton (nuevo As Int)
Dim categoria_escogida () As String
categoria_escogida=lista.Get(nuevo)
btnH(Main.Num_boton_categoria_escogida).TextColor=Colors.White 'Texto de la categoría anterior pasa a blanco
Main.ID_categoria_escogida = categoria_escogida(0)
Main.Texto_categoria_escogida = categoria_escogida(1)
Main.Num_boton_categoria_escogida = nuevo
btnH(nuevo).TextColor=Colors.Yellow 'Texto de la nueva categoría pasa a amarillo
End Sub