No hay nada nuevo bajo el sol. De alguna manera todos los programas que comenzamos a hacer ya han sido hechos con mayor o menor éxito por alguien, a veces por muchos "alguienes", pero nos da igual, es la esencia del programador, la versión adulto-profesional de "Mira mamá, mira cómo lo hago yo". Es así que hace unos meses, buscando no recuerdo qué cuestión sobre el componente gb.media, encontré en github un programita en forma de varios módulos que reflejaba el espectómetro de un audio en pantalla (:
https://github.com/prokopyl/AudioSpectrum) . Me encantó y lo convertí en un control que podéis encontrar por ahí (en la Granja de Gambas lo puse si no recuerdo mal).
Ni qué decir tiene que lo incorporé de inmediato a mi programita de reproducir sonido hecho
á lá Audacious (
https://gitlab.com/shordi/gbamp, no lo miréis ahora que está muy desactualizado) y me quedé más feliz que una perdiz en tiempo de veda.
Ahora le he estado añadiendo cosas, como incluir botones en las cabeceras de la ventana, descargar el sonido de los vídeos de youtube y el cortar un archivo en pistas, etc. y a la hora de toquetearlo me han surgido cosas que no me cuadraban de la estética, así que he empezado a retocar y retocar y me está ocurriendo un fenómeno curioso: Cuanto más estudio un problema, más vueltas le doy y más líneas de solución trabajo, más se me parece a Audacious... sin querer.
Por ejemplo: La lista de canciones y tiempos, un Gridview, muestra en las cabeceras el color del tema de escritorio elegido. Ese color puede quedar horrible según el color que hayas elegido para el fondo del programa.
Cosas que he probado:
a) Una nueva clase heredada de Gridview que permita cambiar el color de las cabeceras (descarga código fuente, investigación sobre el mismo modificaciones pertinentes, conflictos de nombres y herencias, etc. etc.)
b) Un Gridview que no contenga cabeceras y cuya línea 0, con los colores adecuados, haga ese papel (modificación de todos los eventos del Gridview, de las teclas rápidas, etc.)
y
c) por fin me caigo del guindo: las cabeceras sólo muestran las palabras "Título" y "Duración" así que lo mejor y más simple y obvio es: ¡un Gridview sin cabeceras!
Aplico la C. Conejudo. Problema solucionado... y entonces me pregunto ¿Cómo lo harían los de audacious? Claro que ellos no usan Gambas y no tienen estos límites, etc. Abro audacios y ¡oh, sorpresa! Su lista de canciones no tiene cabecera tampoco.
Otro ejemplo, más resumido:
Quiero poder modificar el tamaño de la ventana, que no tiene bordes ni cabeceras, pulsando en los bordes y las esquinas. Lo hago y descubro que sólo el borde derecho, el inferior y la esquina inferior hacen eso sin ningún problema. Los otros, al tener que cambiar la ubación del formulario al tiempo que lo redimensionan ocasionan parpadeos y otro problemitas. Solución: Resalto la esquina inferior derecha y la dejo como único punto donde pinchar y arrastrar para cambiar el tamaño.. y entonces me pregunto ¿Cómo lo hacian los de audacious? Abro audacious y ¡oh, sorpresa! sólo permiten redimensionar pulsando en la esquina inferior izquierda.
Esto me levanta la siguiente duda: Para todo lo demá que le quiero modificar al programa ¿sigo intentando hacer aquello que imagino, o directamente me lanzo a imitar sin pudor a Audacious? ¿Convierte eso mi programa en un Audacious de segunda o sigue siendo mi programa?
Crear o copiar, ése es el dilema.
Perdón por el ladrillo.
Saludos