[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