Gambas France BETA


Pas de compte ? Incription

ToolTip

Ce sujet est résolu.

12
AuteurMessages
valaquarus#16 Posté le 4/4/2024 à 19:54:27
-- Unus Ex Altera --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.5
valaquarus#17 Posté le 5/4/2024 à 11:26:36
-- Unus Ex Altera --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.5
valaquarus#18 Posté le 5/4/2024 à 11:49:37
-- Unus Ex Altera --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.5
12