Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Definir libremente el aspecto de la GUI
#1

Hola crustáceos.

A raíz de un hilo de Alberto sobre los SVG me puse a programar un ejemplo que al final terminó llevándome mas días de lo previsto.
El caso es que, aprovechando que Linux ya tiene una forma de ordenar los iconos, los listé y me puse a contrastarlos con los que usa gambas (Stock)
No me gusta Stock es complicar la cosa, así que hice otro sistema pero respetando el estándar de Linux, luego, ya que estaba, hice un método que pone Dark o Light el formulario sin tener en cuenta el tema de escritorio.
Aquí le muestro el resultado:

[Imagen: 6LHBtMw.gif]

Dejé de lado los PNG ya que Shordi hizo un programa para eso, yo me dediqué a los SVG.


Archivos adjuntos
.gz icon-svg-chiaroscuro-0.0.2.tar.gz Tamaño: 42.69 KB  Descargas: 5

1 Saludo.
[-] Los siguientes 6 usuarios dicen gracias a tincho por este post:
  • alberto-moyano, Grandamakulo, jguardon, Shell, Shordi, tercoide
    ¡Gracias!
#2

¿Y el código?

Big Grin Big Grin

No podemos regresar
    ¡Gracias!
#3

(28-06-2023, 10:18)Shordi escribió:  ¿Y el código?

Jeje, lo estoy poniendo a punto para poder usarlo para "buscar" iconos, en un toque lo subo Big Grin

Ahí esta, subí el código.
Puede que funcione como buscador de iconos del sistema para los programas, pero seguramente sera de utilidad a aquellos que deseen trabajar con iconos SVG y cambiar el aspecto del formulario en tiempo de ejecución.

Nota: El programa trabaja con los sets de iconos SVG como Papirus, Adwaita, Elementary etc. Luego en  /tmp/icons.json se creara una lista json de todos los iconos SVG instalados en el sistema.

1 Saludo.
    ¡Gracias!
#4

muy interesante che, y con eso se puede "robar" iconos del sistema para nuestros programas?

"Es mejor saber todo de muy poco que muy poco de todo" - anonimo
    ¡Gracias!
#5

(28-06-2023, 12:21)tercoide escribió:  y con eso se puede "robar" iconos del sistema para nuestros programas?

Si, esa es la idea, ya que siempre hay una parte de los iconos que son comunes, como abrir un archivo o imprimir, entonces al icono del programa le pones el .Tag = "actions/document-print" por ejemplo, y eso permite que luego puedas cambiar el "Skin" del programa en tiempo de ejecución.

1 Saludo.
    ¡Gracias!
#6

Ta chulo. Dos cositas.

Si seleccionas en el treeview superior un Tema que no tenga la sección previamente seleccionada de un tema anterior, da un error. La solución es cambiar el código de la línea 165 a:
GAMBAS
  1.       If Not TreeThemes.Exist($Section) Then
  2.  



Y cuando seleccionas un tema que no dispone de todos los iconos de la barra superior, te pasa ésto:
[Imagen: 7SVl6iX.png]

o esto:
[Imagen: hF72OMW.png]

Habría que implementar, quizá, que si no encuentra el icono en el tema elegido utilice uno de los que se incluyen en el proyecto (var/svg/actions) o algo así.

Pero, repito: Ta chulo. Buen trabajo.

Saludos

No podemos regresar
    ¡Gracias!
#7

Un último feed-back:

Los iconos no aparecen ordenados. Si añades .sort(gb.ascent) a la línea 277 de la clase icons, ya lo tienes

GAMBAS
  1.   a = File.ScanFiles("/usr/share/icons", ["svg"], 5, "-symbolic.svg").sort(gb.ascent) 



Saludos

No podemos regresar
    ¡Gracias!
#8

(29-06-2023, 10:40)Shordi escribió:  If Not TreeThemes.Exist($Section) Then

ok, lo implemente pero creo que te refieres a TreeSections no a TreeThemes. Smile

(29-06-2023, 10:40)Shordi escribió:  Habría que implementar, quizá, que si no encuentra el icono en el tema elegido utilice uno de los que se incluyen en el proyecto (var/svg/actions) o algo así.

Si, estoy dándole vueltas a eso, porque creo que hay dos escenarios el escenario de este programa que es para analizar, probar y buscar iconos disponibles en el sistema y por otra parte están los programas a los que se desea agregar estos métodos para gestionar iconos y temas. En los programas si no se encuentra el icono el en tema, le tiene que poner el del tema por defecto, el icono rojo ese no queda nada bien en un programa, en eso estoy completamente de acuerdo, en el "testing" tal vez sea útil ver el farol rojo para saber si el tema tiene el icono necesario.

(29-06-2023, 11:50)Shordi escribió:  Los iconos no aparecen ordenados. Si añades .sort(gb.ascent) a la línea 277 de la clase icons, ya lo tienes

Implementado.

Gracias por el feedback.

Creo que, si quiero hacer una clase que funcione para todos los iconos, tengo que interpretar el archivo "index.theme" antes de crear  la lista

1 Saludo.
    ¡Gracias!
#9

(29-06-2023, 11:50)Shordi escribió:  File.ScanFiles

Ey, ¿ de donde sale eso ?, forastero. Cool
No se encuentra ni en gb.util.

Saludos

"Pero no toques, por qué tocas? - Amador"
    ¡Gracias!
#10

Hola a todos.
Agregue una nueva función que permite cambiar también el idioma a voluntad independientemente del idioma del sistema, que en el caso de los programas de CAD suele ser así.
[Imagen: rZTN6JG.gif]

1 Saludo.
[-] Los siguientes 1 usuarios dice gracias a tincho por este post:
  • tercoide
    ¡Gracias!


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)