GUI_SO (áreas de texto, botones, barras, tablas, menús, etc)

Started by Prg, January 05, 2011, 04:30:26 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Prg

Guiso es un conjunto de elementos de interfaz gráfica para entrada y salida en bennu.

Cuenta actualmente con 22 test de ejemplo de uso, la lista es:

QuoteTest01 Ejemplo de uso de botones nativos
Test02 Ejemplo de uso de un botón booleano
Test03 Ejemplo de uso de barras de desplazamiento de valores
Test04 Ejemplo de uso de lista de botones de tipo check
Test05 Ejemplo de uso de Lineas de texto (Introducción de texto) y copiado de texto seleccionado
Test06 Ejemplo de uso de uso de Etiquetas y botones a partir de gráficos previamente cargados
Test07 Ejemplo de uso de Contenedor y reposicionamiento de los contenedores. Contenedor visible mediante gráfico a la medida
Test08 Ejemplo de uso de todos los elementos descritos anteriormente en una sola pantalla.
Test09 Ejemplo de uso de barras
Test10 Ejemplo de uso de estado dormido/despierto de elementos gui (probado sólamente con botones, pero debería funcionar con todos los elementos gui)
Test11 Ejemplo de menús. Botones que al precionarse despliegan otros
Test12 Ejemplo de uso de efectos personalizados al pasar el ratón por un botón
Test13 Ejemplo de uso de mensajes que bloquean todos los demás objetos gui hasta que se les atiende
Test14 Ejemplo de mensajes flotantes que no duermen a los demás objetos gui
Test15 Ejemplo de barra con máximo variable
Test16 Ejemplo de listas con elementos
Test17 Ejemplo de listas con Textos y listas emergentes de texto.
Test18 Ejemplo de Uso de mensajes con listas de texto y objetos
Test19 Ejemplo de listas de texto emergentes
Test20 Ejemplo de áreas de texto
Test21 Ejemplo de personalización de aspecto gráfico de gui_so
Test22 Ejemplo de menú de click derecho


Capturas









Link de la última versión

http://www.mediafire.com/?5ae5s5z44lbvts8

Gui_so cuenta con una ayuda escrita, el índice se muestra a continuación.

QuoteIndice
1 Globales de Gui so 3
1.1 gui color borde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 gui color Fondo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 gui focus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 gui fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 gui sel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.6 gui mano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.7 gui
echa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.8 gui textoo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.9 gui separacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.10 gui tiempo text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.11 gui id ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.12 gui intervalo insercion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Constantes de Gui so 4
2.1 GUI BOOLEANO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 GUI HORIZONTAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 GUI VERTICAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 GUI CUADROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.5 GUI CIRCULOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.6 GUI DORMIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.7 GUI DESPERTAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.8 GUI TODOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.9 GUI ANCHOIZQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.10 GUI ANCHODER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.11 GUI ALTOSUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.12 GUI ALTOINF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Locales de Gui so 5
4 Macros especiales de Gui so 5
4.1 gui Ttamano(a) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.2 p tipo(a) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
5 Funciones extras a los elementos gui 6
5.1 compone(fpg,gra co,ancho,alto) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2 getTam(id, núm) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2.1 GUI ANCHOIZQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2.2 GUI ANCHODER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2.3 GUI ALTOSUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2.4 GUI ALTOINF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.3 cambiaEstado(id, estado) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.4 gui inicializa(gui
echaz,gui manoz,gui textooz) . . . . . . . . . . . . . . . . . . . . 7
5.5 gui actualiza() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.6 gui gGContenedor(cnt) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.7 gui arma gB(ancho,alto,nombre,tipo) . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.8 gui actualizaZ(contenedor) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.9 gui add(contenedor,int obj) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.10 gui mueveContenedor(contenedor,int x,y) . . . . . . . . . . . . . . . . . . . . . . . 8
5.11 gui CopiaTS(elemento de texto) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.12 gui ultimaZ() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.13 gui tomaEstado(gui MDespl) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.14 gui propaga(contenedor, estado) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.15 gui mueveMensaje(Mensaje,x,y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.16 gui muestraMensaje(Mensaje, Nombre) . . . . . . . . . . . . . . . . . . . . . . . . 8
5.17 gui cierra(Mensaje) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.18 gui mataLista(gui ObjetoLista,bol) . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.19 gui de neLista(gui ObjetoLista, puntero a nueva lista, cantidad de elementos en la
lista) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.20 gui de neListaTexto(gui TextoLista, String puntero lista, tama~no) . . . . . . . . . 9
5.21 gui dentroLista( a,x,y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.22 gui espera(a) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.23 gui botonCambiaGra co(gui boton,c,d) . . . . . . . . . . . . . . . . . . . . . . . . 9
5.24 gui textoActualiza(c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.25 gui textoPega(Objeto de Texto,string s, string puntero origen) . . . . . . . . . . . 9
6 Elementos gui 10
6.1 gui LLBarra( chero, gráfi co1, gráfi co2, x, y, ancho, alto, region, direccion, valor
Mínimo, valor máximo, puntero valor) . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.2 gui contenedor(z) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.3 gui botonG( chero, gráfi co1,gráfi co 2, x,y,valor , puntero a variable) . . . . . . . . 10
6.4 gui boton(x, y, ancho, alto, string nombre, valor, puntero a variable) . . . . . . . . 10
6.5 gui check(x,y,ancho,alto,string nombre, tipo, puntero a variable, valor) . . . . . . . 10
6.6 gui CheckList(x,y,ancho,alto,tipo, cantidad, string puntero nombre, puntero point,
puntero variable, dirección) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.7 gui Barra(x,y,ancho, alto, valor Mínimo , dirección,valor máximo, puntero a la variable)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6.8 gui Etiqueta( fichero,gráfico co,x,y,descarga) . . . . . . . . . . . . . . . . . . . . . . . . 11
6.9 gui texto(fuente,x,y,ancho,string puntero texto) . . . . . . . . . . . . . . . . . . . . 11
6.10 gui MDespl(x, y, ancho, alto, String a, String puntero b,tama~no) . . . . . . . . . . 11
6.11 gui Mensaje(botón cerrar) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6.12 gui MenuOpciones() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6.13 gui BarraDesplazamientoVariable(x, y, ancho, alto, dirección, elementos, puntero a
variable, puntero a máximo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6.14 gui ObjetoLista (x, y, region, direccón, ancho, alto, ancho objeto, alto objeto,
tama~no de la barra, factor, cantidad, puntero a lista) . . . . . . . . . . . . . . . . . 12
6.15 gui TextoLista(x, y, dirección, ancho, alto, ancho objetos, alto objetos, tamaño de
la barra, cantidad, String puntero lista, puntero seleccion) . . . . . . . . . . . . . . 13
6.16 gui MDesplLista(x, y, ancho, alto, String puntero textos, tamaño) . . . . . . . . . . 13
6.17 gui MDesplListaEmer(x, y, ancho, alto, String puntero textp,tamaño) . . . . . . . 13
6.18 gui areaTexto(fuente, x, y, ancho, alto, string puntero texto, tamaño de la barra de
desplazamiento, interlineado) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.19 gui MenuDesplegado(x, y, ancho, alto, String puntero b, tamaño) . . . . . . . . . . 14
7 Isertar elementos con -1 y -2 en sus coordenadas 15
8 Rede nir los gráfi cos por defecto del Gui so 16
8.1 De nir nuestros propios efectos de los botones cuando pasa el ratóon sobre ellos . . 18

gui_so se está desarrollando en bennu y para bennu, el link del proyecto es:

http://forum.bennugd.org/index.php?topic=1752.msg34649#new
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Fede

Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

Outlaw

"Life is cheap when the bounty is high"

Milton884

Con la version pasada del BennuPack podia probar los ejemplos, pero ahora con la nuva version 2.1 de bennu pack (creo q es 2.1 el numero), me tira error en el modulo GUI_SO en la linea 667, que la variable "ancho" ya esta predefinida... me fijo abajo de todo pero..... no es asi.... me toy volviendo loco :P....

Alguien me puede dar una ayuda?

Pido porfavor q alguien q tenga el GUI_SO con los ejemplos lo ejecute un ejemplo para ver q es tal cual como digo, asi pueden ayudar.

gracias desde Ya

SplinterGU

la gui_so no es una dlc? y en tu codigo vos estas definiendo _ancho?

si es asi, seguramente no puedes hacerlo porque ya esta definido dentro del dlc, o si esta en un .h, seguramente estas incluyendo el .h en varios fuentes.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

l1nk3rn3l

por lo que veo es en la declaracion de los procesos no es igual...

declare process gui_boton(int x,y,anch,alt,string nombre,int val,*accion);
private
public graph2,graph1;
   gui_datos
end
end


y el codigo es largo .. asi que sigo viendo la TV...  :-X



KeoH


Prg

En breve lo reviso, disculpen los inconvenientes. También necesito actualizar me versión de bennu, no sabía que había nueva. Saludos
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Prg

Versión 1.3 (Beta)

http://www.mediafire.com/?hokddojbrba8r6d

Cambios


01:07 p.m. 03/10/2011
            Se corrigen algunos crash.
            Se dañan las áreas de texto (necesito rehacer el codigo para quitar los string* así que por el momento no funcionan).
            Se Agrega:
            Gui_MensajeDir(x,y,ancho,alto,filas en archivos,Nombre,Filtro de archivos,fuente);
            cuyo fin es recorrer los directorios de la pc y guardar/cargar archivos. En ubuntu no mantiene los directorios ordenados. Necesito implementar un algoritmo de ordenamiento que ordene los char* que se usan internamente.
            Véase el test 23.
            Se agrega gui_MDesplArrayChar que trabaja con "arreglos de  arreglos char" en lugar de
            arreglos de string.

            Los "arreglos de arreglos de char" son arreglos que pueden contener arreglos de caracteres. Es un char[][], pero dinámicos.
            tamMultipleArrayChar -> retorna el tamaño de un arreglo de arreglos de char.
            ArrayMultipleCharGS(arrayChar* array,int pos)-> retorna el arreglo de char que hay el la posición
            pos, pero en forma de cadena. Véase el ModulosCompuestos
            ArrayMultipleCharLibera(arrayChar* array)-> Elimina un array de arrays de char.
            ArrayMultipleCharCrea(tamanño, string[]); -> Crea un arreglo dinámico a partir de un arreglo de cadenas
            ArrayMultipleCharDefine(arrayChar* array,int pos,string cad) -> Introduce en la posición pos de un arreglo dinámico, un arreglo con los caracteres de la cadena cad
            ArrayMultipleCharRedimensiona(arrayChar* a,int cant)-> Cambia el tamaño de un arreglo dinámico eliminando la memoria de los arreglos que sobran o agregando más memoria para nuevas posiciones.
            arrayChar* ArrayMultipleChar(int cant)-> crea un nuevo arreglo dinámic con cant posiciones.
           
            Las siguientes funciones trabajan con arreglos de char, similar a las cadenas de c (Al final del arreglo se encuentra un char=0 para indicar el fin de cadena).
            char * str2arrayChar(string a)-> Transforma una cadena en un arreglo de char con memoria dinámica.
            string arrayChar2str(char * a) -> Transforma un arreglo del tipo anterior en cadena
            arrayCharFree(char *c)-> Libera la memoria del arreglo de char generado con str2arrayChar.
           

Nota test 20 y 21 no funcionan debido a que dañé las áreas de texto.
            Antes se usaban punteros a string, sin embargo al intentar eliminarlos
            se dañaron. Necesito rehacer todo el algoritmo... Será más adelante.

Se eliminan los punteros a string en gui_Texto. Se agrega la función gui_textoDefine(id,string) para cambiar la cadena dentro de éste y también se agrega gui_TomaTexto(id); para guardar la cadena que contiene este elemento gui en una string y poderla usar.

Disculpen los inconvenientes con las áreas de texto. Me tomará algo de tiempo rehacerlas, sobre todo ahora que no tengo tiempo XD.

Saludos.

en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Outlaw

Genial, y gracias por continuar con esto, que nos beneficia a todos y sobre todo extiende la funcionalidad del lenaguaje! Karma++  :)
"Life is cheap when the bounty is high"


Futu-block

Habrá que empollar, que quiero sacar una cosita de esa para caanoo y demas portatiles, pero despues de dos intentos...

josebita

¡Muchas gracias, Prg!

Te acabo de enlazar desde el twitter. Te digo lo mismo que a Outlaw: si haces un pequeño post de introducción en inglés tu librería podrá llegar a más gente. No hace falta que sea nada del otro mundo: un mal inglés a mucha gente le sirve mucho más que que sólo esté en español.
De todas maneras, karma!


Prg

Quote from: josebita on October 03, 2011, 09:39:23 PM
¡Muchas gracias, Prg!

Te acabo de enlazar desde el twitter. Te digo lo mismo que a Outlaw: si haces un pequeño post de introducción en inglés tu librería podrá llegar a más gente. No hace falta que sea nada del otro mundo: un mal inglés a mucha gente le sirve mucho más que que sólo esté en español.
De todas maneras, karma!

gracias por la idea. Espero en breve poder compartir lo que llevo en el foro de inglés.. :) Actualmente la estoy probando para identificar posibles errores. Espero en breve tener algo de tiempo y entonces seguiré tu consejo.

gracias :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)