Comunidad Gambas-es
[SOLUCIONADO] ¿Alguien sabe cómo insertar toolbuttons en la barra del título de la ventana? - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: General (https://gambas-es.org/forum-4.html)
+--- Tema: [SOLUCIONADO] ¿Alguien sabe cómo insertar toolbuttons en la barra del título de la ventana? (/thread-999.html)

Páginas: 1 2


¿Alguien sabe cómo insertar toolbuttons en la barra del título de la ventana? - Shordi - 23-08-2022

Tengo un programita en el que se "desperdicia" una línea entera con un toolbutton solamente (aunque pudieran ser tres o cuatro). Me gustaría eliminar esa linea y una opción sería hacer algo semejante a ésto:

[Imagen: lfhfbLi.png]

¿Alguien sabe cómo se podría hacer con Gambas?

Saludos


RE: ¿Alguien sabe cómo insertar toolbuttons en la barra del título de la ventana? - tincho - 23-08-2022

Intente hacerlo hace tiempo pero no encontré la manera creo que esas características GTK3 no están disponibles en gambas porque en realidad es QT "simulando" GTK3.
Lo que podes hacer es quitarle el borde al formulario y poner un panel con los iconos, pero tenes que agregar de alguna manera los eventos del raton para mover la ventana o para minimizar.
[Imagen: Cj3tg6D.png]


RE: ¿Alguien sabe cómo insertar toolbuttons en la barra del título de la ventana? - tercoide - 23-08-2022

buena tecnica!


RE: ¿Alguien sabe cómo insertar toolbuttons en la barra del título de la ventana? - vuott - 23-08-2022

(23-08-2022, 14:13)tincho escribió: quitarle el borde al formulario
Hay pero el problema que Confused no es posible mover la ventana con el ratón.


RE: ¿Alguien sabe cómo insertar toolbuttons en la barra del título de la ventana? - tincho - 23-08-2022

(23-08-2022, 15:32)vuott escribió: Hay pero el problema que Confused no es posible mover la ventana con el ratón.

Correcto, por eso decía antes que hay que agregar los eventos del ratón par amover la ventana. pero seguramente con los eventos en el panel de iconos _MouseDown() activar una variable "bMover = True" y luego con _MouseMove() mover el formulario igual que el puntero del ratón.


RE: ¿Alguien sabe cómo insertar toolbuttons en la barra del título de la ventana? - vuott - 23-08-2022

(23-08-2022, 17:55)tincho escribió: hay que agregar los eventos del ratón par amover la ventana
Uhmmm... puedes agregar este código a tu ejemplo, que adjuntaste aquí.
Para mover la ventana del Formulario con el ratón en tu ejemplo, debes hacer clic precisamente en la parte del Formulario accesible/visible.
Código:
Private x As Short
Private y As Short

Public Sub Form_MouseDown()

  x = Mouse.X
  y = Mouse.Y

End

Public Sub Form_MouseMove()

  Me.Move(Mouse.ScreenX - x, Mouse.ScreenY - y)

End



RE: ¿Alguien sabe cómo insertar toolbuttons en la barra del título de la ventana? - tincho - 23-08-2022

(23-08-2022, 20:07)vuott escribió: Uhmmm... puedes agregar este código a tu ejemplo, que adjuntaste aquí.
Para mover la ventana del Formulario con el ratón en tu ejemplo, debes hacer clic precisamente en la parte del Formulario accesible/visible.

ok, funciona pero... ¿como hago para que funcione haciendo click en cualquier parte del form?
Cambie un poco el código para que sea mas fluido el movimiento
[Imagen: EiYbAyv.gif]
Código:
Private x As Short
Private y As Short
Private bMove As Boolean = False

Public Sub Form_MouseMove()

  If bMove Then
    Me.Move(Mouse.ScreenX - x, Mouse.ScreenY - y)
  Else
    Stop Event
  Endif

End

Public Sub Form_MouseUp()

  bMove = False

End

Public Sub Form_MouseDown()

  x = Mouse.X
  y = Mouse.Y
  bMove = True

End

ok, ya logre que funcione con click en cualquier parte
Código:
Private x As Short
Private y As Short
Private bMove As Boolean = False

Public Sub X_MouseMove()

  If bMove Then
    FMain.Move(Mouse.ScreenX - x, Mouse.ScreenY - y)
  Else
    Stop Event
  Endif

End

Public Sub X_MouseDown()

  x = Mouse.X
  y = Mouse.Y
  bMove = True

End

Public Sub X_MouseUp()

  bMove = False

End



RE: ¿Alguien sabe cómo insertar toolbuttons en la barra del título de la ventana? - tercoide - 23-08-2022

(23-08-2022, 20:36)tincho escribió: ¿como hago para que funcione haciendo click en cualquier parte del form?

pero se supone que los controles dentro del Form reciben click para otra cosa, no para mover su Form Parent...


RE: ¿Alguien sabe cómo insertar toolbuttons en la barra del título de la ventana? - vuott - 24-08-2022

Me imaginé este Confused  otro código (para mover el Formulario, hay que actuar con el ratón en la parte superior, como siempre):
Código:
Private x As Short
Private y As Short
Private wn As Window
Private w As Watcher
Private tb As ToolButton
Private ta As TextArea

Public Sub _new()
  
  With wn = New Window As "Wndw"
    .W = Me.W
    .H = 40
    .X = (Screen.AvailableWidth / 2) - (.W / 2)
    .Y = (Screen.AvailableHeight / 4) - (.H / 2)
    .Border = Border.None
    .Background = &D9D9D9
    .Show
  End With
  With Me
    .X = wn.X
    .Y = wn.Y + wn.H
    .Border = Border.None
    .Margin = True
    .Padding = 5
    .Arrangement = Arrange.Fill
  End With
  
  For b As Byte = 1 To 4
    With tb = New ToolButton(wn) As "Toolb"
      .W = wn.W * 0.1
      .X = .W + (b * 60)
      .Y = wn.H * 0.15
      .H = wn.H * 0.8
      .Border = Border.Plain
      .Background = Color.Yellow
      .Text = CStr(b)
    End With
  Next

End

Public Sub Form_Open()
 
  ta = New TextArea(Me) As "TextA"
  w = New Watcher(wn) As "Osserva"
  
End

Public Sub Toolb_Click()
  
  ta.Text &= Last.Text

End

Public Sub Wndw_MouseDown()

 x = Mouse.X 
 y = Mouse.Y 
 
End

Public Sub Wndw_MouseMove()

  wn.Move(Mouse.ScreenX - x, Mouse.ScreenY - y)

End

Public Sub Osserva_Move()  ' Cuando se mueve el objeto gráfico "Window" con el ratón...

' ...también se mueve el Form:
  Me.Move(wn.X, wn.Y + wn.H)
  
End



RE: ¿Alguien sabe cómo insertar toolbuttons en la barra del título de la ventana? - tincho - 24-08-2022

Probé el código, funciona perfecto.
Movés la ventana, y con el observador ves este evento y luego movés el formulario.
Este método esta muy interesante, supongo que los controles desplegables como los combobox usaran algo similar.
Tambien esta bueno para hacer paletas de herramientas flotantes como Gimp.

[Imagen: o3kjequ.gif]