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

Nuevas Versiones de PicPanel y PicButton
#1

Aunque hace unas semanas or presenté los nuevos controles PicPanel y PicButton, a raíz de la colaboración con Harpo respecto al redondeo de paneles, he actualizado ambas clases para que contengan esa nueva característica. En concreto a Picpanel le he añadido la propiedad Radius, que establece el radio de las cuatro esquinas y luego una propiedad por cada una de ellas (TopLeftRadius, TopRightRadius, BottomRightRadius y BottomLeftRadius) para poder establecerlas individualmente.

El nuevo PicButton sólo dispone de Radius.

Los he probado con GTK3 y con QT5 y funcionan bien en ambos entornos. Los colores por defecto los he intentado aproximar lo más posible a los estándar y los he probado con Escritorios claros y oscuros y más o menos me funcionan bien... aunque eso me gustaría que lo probaseis en vuestras máquinas a ver qué tal quedan.

Ena demo, el aspecto del formulario test para Escritorios oscuros es éste:
[Imagen: xfz9hzO.png]

y para Escritorios Claros es éste:
[Imagen: VtFZBgq.png]

Le he limitado a ambos controles la cantidad de Radio que se puede dar a las esquinas, que antes se desmadraba. Ahora es la mitad del borde más corto del control, con lo se obtienen óvalos o círculos, pero sin desmadrarse demasiado.

No lo cuelgo aquí que como tiene imágenes incrustadas pesa demasiado para el foro. Lo podéis descargar de:

https://gitlab.com/shordi/PicPanel

Saludos

No podemos regresar
[-] Los siguientes 6 usuarios dicen gracias a Shordi por este post:
  • ferchobahia, Grandamakulo, Harpo, jguardon, Shell, tincho
    ¡Gracias!
#2

En Manjaro se ve así:
[Imagen: dod1Cvr.png][Imagen: sWBGpmZ.png]

1 Saludo.
[-] Los siguientes 2 usuarios dicen gracias a tincho por este post:
  • Grandamakulo, jguardon
    ¡Gracias!
#3

Eso tiene muy buena pinta. Lo único es que no creo que lo vaya a utilizar, soy bastante tradicional para las GUI's.

Gracias por compartir!

Saludos

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
[-] Los siguientes 1 usuarios dice gracias a jguardon por este post:
  • Shordi
    ¡Gracias!
#4

Estoy haciendo un editor de texto usando un PicPanel modificado, va quedando así.

[Imagen: 3OAc5a8.png]
[Imagen: UR6e8fX.png]

1 Saludo.
[-] Los siguientes 4 usuarios dicen gracias a tincho por este post:
  • Grandamakulo, jguardon, Shell, Shordi
    ¡Gracias!
#5

Ya nos lo enseñarás!! Big Grin Big Grin Big Grin

No podemos regresar
    ¡Gracias!
#6

Tiene buena pinta, gran trabajo.
Solo una recomendación si quiere optimizar código, en vez de asignar el DrawingArea a la propiedad _Container asignar el Panel interno.

GAMBAS
  1. 'Me._Container = $hPicPanel
  2. Me._Container = $Content



Con esto UserContainer asigna las propiedades de "contenedor" al panel, no sería necesario hacer Reparent de los hijos ni definir propiedades puente como Arrangement, Padding, etc.

Un saludo, Harpo.
[-] Los siguientes 1 usuarios dice gracias a Harpo por este post:
  • Shordi
    ¡Gracias!
#7

(09-03-2023, 19:05)Shordi escribió:  Ya nos lo enseñarás!! Big Grin Big Grin Big Grin

Hace un tiempo hice un editor rudimentario (que nunca termine) con el control TextEditor y ayer empece a aislar todo lo que resulte útil en un formulario independiente. No se en que derivara todo esto, probablemente en nada. Big Grin

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

Cita:Con esto UserContainer asigna las propiedades de "contenedor" al panel, no sería necesario hacer Reparent de los hijos ni definir propiedades puente como Arrangement, Padding, etc.

Lo estuve pensando, pero luego no me decidí por miedo a liarla... Gracias por el tip.

Saludos

No podemos regresar
    ¡Gracias!
#9

No es que sea en este proyecto en concreto, pero suele pasar cuando se usan controles diseñados por el usuario que
el editor de Gambas suele mostrar el mensaje que no ha encontrado el control.

Lo que hice fue compilar, pero seguía mostrándose el mensaje. Luego le di a recargar en el icono que veis
con las dos flechas y el mensaje desapareció.

[Imagen: 7FBgcdA.png]

Si que queda un poco desplazado, no centrado, pero supongo que eso debe ser cuestión de alguna propiedad, que solo es un test.
por lo demás muy chulo.

Saludos

"El buen perfume en frasco pequeño se vende"
[-] Los siguientes 1 usuarios dice gracias a Shell por este post:
  • Shordi
    ¡Gracias!
#10

Shordi
Estoy usando PicPanel n un proyecto, pero lo modifique un poco para usar arc en vez de curve ya que en los arcos (y en los chaflanes) se produce una aberración debido a los pixeles de la pantalla supongo.
Este es el código:

GAMBAS
  1. Public Sub PicPanel_Draw()
  2.  
  3.   Dim iColor, iMargin As Integer
  4.   Dim iFlag As Integer = Style.StateOf(Me)
  5.   Dim n, i As Integer
  6.   Dim ax As Variant[] = [[Rad(0), Rad(270)], [Rad(270), Rad(90)], [Rad(180), Rad(90)], [Rad(90), Rad(90)]]
  7.   Dim vx As Integer[][] = [[0, 0], [$hPicPanel.w, 0], [$hPicPanel.w, $hPicPanel.h], [0, $hPicPanel.h], [0, 0]]
  8.  
  9.   'Enabled / Disable
  10.   If iFlag And Style.Disabled Then
  11.     iColor = Color.Merge(Me.Background, $iBorderColor, 0.75)
  12.   Else
  13.     iColor = $iBorderColor
  14.  
  15.   Paint.Begin($hPicPanel)
  16.   Paint.MoveTo($Radius[0], $Radius[0])
  17.  
  18.   Paint.Arc($Radius[0], $Radius[0], $Radius[0], Rad(180), Rad(90), False) ' r0
  19.   Paint.Arc($Radius[1], $hPicPanel.h - $Radius[1], $Radius[1], Rad(90), Rad(90), False) ' r1
  20.   Paint.Arc($hPicPanel.w - $Radius[2], $hPicPanel.h - $Radius[2], $Radius[2], 0, Rad(90), False) ' r2
  21.   Paint.Arc($hPicPanel.w - $Radius[3], $Radius[3], $Radius[3], Rad(270), Rad(90), False)  ' r3
  22.  
  23.   Paint.MoveTo($Radius[0], 0)
  24.   Paint.LineTo($hPicPanel.w - $Radius[1], 0)
  25.  
  26.   Paint.MoveTo($hPicPanel.w, $Radius[1])
  27.   Paint.LineTo($hPicPanel.w, $hPicPanel.h - $Radius[2])
  28.  
  29.   Paint.MoveTo($hPicPanel.w - $Radius[2], $hPicPanel.h)
  30.   Paint.LineTo($Radius[3], $hPicPanel.h)
  31.  
  32.   Paint.MoveTo(0, $hPicPanel.h - $Radius[3])
  33.   Paint.LineTo(0, $Radius[0])
  34.  
  35.   Paint.LineJoin = 1
  36.   Paint.Brush = Paint.Color($iBorderColor)
  37.  
  38.   Paint.stroke(True)
  39.   Paint.End
  40.  
  41.   'Content Adjust to bigger Radius
  42.   For Each n In $Radius
  43.     i = Max(n, i)
  44.   Next
  45.   iMargin = Int(i / 3)
  46.   With $Content
  47.     .X = iMargin
  48.     .Y = iMargin
  49.     .H = $hPicPanel.h - (iMargin * 2)
  50.     .W = $hPicPanel.w - (iMargin * 2)



[Imagen: XKIzD9Q.png]

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


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)