Controles SDL

Para las actividades educativas que suelo crear puedo usar GTK con su pizarra de dibujo o tambien puedo usar SDL. Hasta ahora siempre me he creado mis propios controles para conseguir un tema mas infantil a los botones. Es decir más redondos y con otras funcionalidades.

Con GTK la ventaja es que se puede integrar todos los widgets de GTK para menus y opciones y la pizarra para dibujar y controlar eventos.

O quizás hacerlo todo a pelo con SDL y con mayores posibilidades de crear minijuegos en las actividades y modificar facilmente los widgets. Pero eso supone hacerlo todo a pelo.

Finalmente, mi opción ha sido  SDL+Genie+Mis_Controles. Es decir he decidido crear controles para SDL.

Si bien conozco opciones de controles creadas ya en C que podrían modificarse y crear una VAPI para ser usadas por Vala o Genie; no tengo ni idea de como hacer esto. Se que es posible, pero no me apetece adaptar código. Sin embargo por esta pereza de leer código de terceros me encuentro en dificultades para diseñar mis propios controles puesto que tengo varias dudas existenciales de diseño que te las expondré más adelante.

Para que le eches un Ojo a los controles que estoy creando:

 


Estos son todos los controles que he realizado:

1.- Imagen. Son imagenes que funcionan como botones, y son arrastrables.
2.- Etiquetas. Labels, para poder escribir texto. Pueden ser arrastrables.
3.- Entradas. Entry, para introducir texto. Por ahora solo una linea.
4.- Selectores. Para elegir entre varias opciones de texto.
5.- Interruptores. Para encender o apagar una opción.
6.- Botones. Para activar eventos.

Para crear una Imagen solo necesitamos incializar SDL, e instanciar SDLK (que es mi entorno gráfico de controles) después escribir:

a: imagen
     init
     a=new imagen(1, 50,50,160,70,"Imagen.png")

 y ya tenemos una imagen, solo falta conectarla a un procedimiento propio en cada evento. Por ejemplo:
a: imagen
     init
     a=new imagen(1, 50,50,160,70,"Imagen.png")
            a.izq_pulsado.connect (on_pulsado)

def on_pulsado(num:int)
    print "El control %d ha sido pulsado",num


Con esto solo ya puedo realizar muchiiisisisimas actividades.


 El codigo lo podeis ver y descargar en gitorius / SDL-Kontrol
https://gitorious.org/sdl-kontrol/sdl-kontrol/trees/master


Principal sería el lugar donde tenemos el código de nuestra aplicación y SDLK+cadenas sería el lugar donde se encuentra el codigo de los controles.





No hay comentarios:

Publicar un comentario