valaquarus | #16 Posté le 4/4/2024 à 19:54:27 |
---|
-- Unus Ex Altera --![](images/avatars/avatar-327.png) | Bonsoir Linuxos,
ceci fonctionne sous Neon KDE avec une limitation, on ne sais pas ce qu'il advient des TrayIcon "cachés" :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| PRIVATE SUB DefTrayIcon()
TrayIcon1 = NEW TrayIcon AS "TrayIcon1" TrayIcon1.Tag = "- Cliquer gauche :\tfenêtre.\n- Cliquer droit :\tmenu.\n- Roulette :\t\tstations." TrayIcon1.Tooltip = "" TrayIcon1.Picture = Picture.Load("icon:/32/administrator") TrayIcon1.PopupMenu = "Menu1" $iCount = TrayIcons.Count - 1
END
PUBLIC SUB TrayIcon1_Scroll(Delta AS FLOAT, Orientation AS INTEGER)
DIM pos AS INTEGER
pos = CInt(Delta) * Orientation replaceTray() ComboBox1.Index -= pos
END
PRIVATE SUB replaceTray()
DefTrayIcon() TrayIcons[$iCount - 1].Hide TrayIcons[$iCount].Show
END
|
Si on remplace Hide par Delete cela plante. Sous Gnome, les TrayIcon ne fonctionnent pas bien, non plus. Je le sais par expérience car plusieurs de mes projets ne fonctionnent pas chez mon père dont la machine est sous Gnome Ubuntu et Wayland par dessus le marché.
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3 |
valaquarus | #17 Posté le 5/4/2024 à 11:26:36 |
---|
-- Unus Ex Altera --![](images/avatars/avatar-327.png) | Ceci fonctionne mieux encore sans création de plusieurs TrayIcon et modification des tooltip à la "volée"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| PUBLIC SUB ComboBox1_Click() 'sélection dans la liste des radios
ind = ComboBox1.Index $sStationChoisie = saStationUrl[ind] ComboBox1.Text = ComboBox1.List[ind]
ToggleButton1.Value = FALSE WAIT 'pour attendre la bascule ToggleButton1.Value = TRUE
END
PRIVATE SUB DefTrayIcon()
TrayIcon1.Tag = "- Cliquer gauche :\tFenêtre.\n- Cliquer droit :\tMenu.\n- Roulette :\t\tStations." TrayIcon1.Tooltip = TrayIcon1.Tag & "\n" & "- Radio :" & "\t" & ComboBox1.Text '<-------------' mise à jour suivant toute modification de l'index du combobox TrayIcon1.Picture = Picture.Load("icon:/32/administrator") TrayIcon1.PopupMenu = "Menu1" TrayIcon1.Show()
END
PUBLIC SUB TrayIcon1_Scroll(Delta AS FLOAT, Orientation AS INTEGER)
DIM pos AS INTEGER
pos = CInt(Delta) * Orientation ComboBox1.Index -= pos DefTrayIcon() '<-------------' le placement juste après la modification de l'index du combobox permet d'avoir le ToolTip mis à jour
END
|
La partie instanciation est renvoyée à la procédure _new :
1
2
3
4
5
6
| PUBLIC SUB _new() 'initialisations globales
TrayIcon1 = NEW TrayIcon AS "TrayIcon1" 'instanciation du TrayIcon DefTrayIcon() 'définition du TrayIcon
END
|
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3 |
valaquarus | #18 Posté le 5/4/2024 à 11:49:37 |
---|
-- Unus Ex Altera --![](images/avatars/avatar-327.png) | Encore mieux, en déplaçant la partie instanciation de la procédure _new à la procédure Form_Open, juste après la définition de la radio, on a bien le ToolTip alimenté correctement dès le début du programme. Cette fois-ci c'est bien en Résolu.
Pour obtenir plus rapidement l'icône sans attendre au moins une seconde il suffit de laisser de laisser l'instanciation et la définition du TrayIcon en _new et l'appel à la définition en Form_Open aussi.
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3 |