[Gambas-user] gb.desktop.x11 (Refresh Taskbar)

herberth guzman herberthguzman at ...626...
Wed May 21 18:58:42 CEST 2014


Hi all

I want to tell mypanel works well, but I want to improve.

The update of the open windows I do by a TIMER, but I would like to do it
directly X11, someone who can help me please.

Upgrading windows open is through a TIMER, but I would like to do it
directly gb.desktop.x11, someone who can help me please.

Attached is an example of my panel.


''CODE
Public id_win_active As Integer
Public HPanel_app As Panel
Public hToggle As ToggleButton


Public Sub Form_Open()

  Dim desk_w As Integer = Desktop.W

  X11.SetWindowProperty(Atom["_NET_WM_STRUT"], Atom["CARDINAL"], [0, 0, 0,
32], Me.Id)
  X11.SetWindowProperty(Atom["_NET_WM_STRUT_PARTIAL"], Atom["CARDINAL"],
[0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 32, desk_w], Me.Id)
  X11.SetWindowProperty(Atom["_NET_WM_WINDOW_TYPE"], Atom["ATOM"],
Atom["_NET_WM_WINDOW_TYPE_DOCK"], Me.Id)

  Me.X = 0
  Me.Y = Desktop.H - Me.H
  Me.W = Desktop.W

  Desktop_Windows
  Timer1.Start
  TimTask.Start

End

Public Sub Desktop_Windows()

  Dim i As Integer

  For i = 0 To Desktop.Windows.Count - 1
    If Desktop.Windows[i].Name Then
      hToggle = New ToggleButton(PanelTask) As "ToggleTask"

      Try hToggle.Picture = Desktop.Windows[i].Icon.Stretch(22, 22).Picture
      hToggle.Text = Left$(Desktop.Windows[i].Name, 25)
      hToggle.Height = 32
      'hToggle.Font.Size = 8
      hToggle.Mouse = 13
      hToggle.Border = True
      hToggle.W = 250
      hToggle.Tooltip = Desktop.Windows[i].Name
      hToggle.Tag = Desktop.Windows[i].Id

      If Not hToggle.Text Then
        hToggle.Text = "Sin título"
        hToggle.W = 250
      Endif

      If Not hToggle.Text Then
        hToggle.Text = ("Untitled")
        hToggle.Picture = Picture["icon:/22/apps/application-default-icon"]
        hToggle.W = 250
      Endif

      If (hToggle.Picture = Picture[Null]) Then
        hToggle.Picture = Picture["icon:/22/apps/application-default-icon"]
        hToggle.W = 250
      Endif

    Endif
  Next

End

Public Sub ToggleTask_Click()

  Try id_win_active = Last.Tag
  Try Desktop.ActiveWindow = id_win_active
  Try Desktop.Windows.FromHandle(id_win_active).Minimized =
Desktop.ActiveWindow = id_win_active

End

Public Sub Timer1_Timer()

  Dim x As String

  Timer1.Delay = 1000
  Timer1.Start

  x = Format$(Now, "hh:nn")
  TextLabelDate.Text = x

End

Public Sub Refresh_Taskbar() ''is not the best but it works

  Dim i As Integer

  Desktop.Windows.Refresh()
  If (PanelTask.Children.Count - (Desktop.Windows.Count - 2)) Then
    PanelTask.Children.Clear()
    For i = 1 To Desktop.Windows.Count - 2
      hToggle = New ToggleButton(PanelTask) As "ToggleTask"
      hToggle.W = 250
      Try hToggle.Picture = Desktop.Windows[i].Icon.Stretch(22, 22).Picture
      hToggle.Text = Left$(Desktop.Windows[i].Name, 25)
      hToggle.Height = 32

      hToggle.Mouse = 13
      hToggle.Tooltip = Desktop.Windows[i].Name
      hToggle.Tag = Desktop.Windows[i].Id

      If Not hToggle.Text Then
        hToggle.Text = ("Untitled")
        hToggle.Picture = Picture["icon:/22/apps/application-default-icon"]
        hToggle.W = 250
      Endif
      If (hToggle.Picture = Picture[Null]) Then
        hToggle.Picture = Picture["icon:/22/apps/application-default-icon"]
        hToggle.W = 250
      Endif

      Try hToggle.Visible = Not CBool(Desktop.Windows[i].SkipTaskbar)

    Next
  Else

    For Each hToggle In PanelTask.Children
      hToggle.Text = Left$(Desktop.Windows.FromHandle(hToggle.Tag).Name, 25)
      If Not hToggle.Text Then
        hToggle.Text = ("Untitled")
        hToggle.Picture = Picture["icon:/22/apps/application-default-icon"]
        hToggle.W = 250
      Endif
      If (hToggle.Picture = Picture[Null]) Then
        hToggle.Picture = Picture["icon:/22/apps/application-default-icon"]
        hToggle.W = 250
      Endif

    Next
  Endif

Catch

End

Public Sub TimTask_Timer()

  Refresh_Taskbar

End

Herberth Guzmán
-------------- next part --------------
A non-text attachment was scrubbed...
Name: task-0.0.1.tar.gz
Type: application/x-gzip
Size: 6705 bytes
Desc: not available
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20140521/307b69ed/attachment.bin>


More information about the User mailing list